汇编语言 简单问题

BUFDW3000H…MOVAX,BUF书上说这里BUF和写成[BUF]效果是一样的,即把BUF的值3000H作为偏移地址而不是作为操作数。BUF不是一个变量么,为什么这... BUF DW 3000H

MOV AX,BUF
书上说这里BUF和写成[BUF]效果是一样的,即把BUF的值3000H作为偏移地址而不是作为操作数。
BUF不是一个变量么,为什么这里不是把3000H赋值给AX,而是把BUF作为地址用呢?那不是说变量都只能用作地址了?
展开
 我来答
daq001
2010-11-26
知道答主
回答量:5
采纳率:0%
帮助的人:0
展开全部
MOV AX,BUF
BUF 不是立即数

如果要把变量值传给AX可以使用OFFSET
MOV AX, OFFSET BUF

操作数就包含在指令中,它作为指令的一部分,跟在操作码后存放在代码段。这种操作数称为立即数。

-----------------------------
一个是立即寻址 MOV AX,3000H
一个是直接寻址 MOV AX,[BUF]
怎么会是一样的呢!
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lflkj77
2010-11-28 · TA获得超过3930个赞
知道小有建树答主
回答量:1783
采纳率:100%
帮助的人:1154万
展开全部
ORG 0h ;是0h
AJMP start;

start: ORG 100h
INC p1
ACALL delay
JMP start

delay: mov r1, #0ffh
loop: mov r2, #0ffh ;是0ffh
loop2: djnz r2, loop2
sjmp start
djnz r1, loop
end

LJMP addr16 ; PC〈—— addr16
AJMP addr11 ; PC〈—— PC+2 , PC10-0〈—— addr11
SJMP rel ; PC〈—— PC+2 , PC 〈—— PC+rel
JMP @A+DPTR ; PC〈—— A+DPTR
第一条指令称为长转移指令(Long Jump);
第二条指令叫作绝对转移指令(Absolute Jump);
第三条指令称作短转移指令(Short Jump);
第四条指令是变址寻址转移指令(散转指令)。
显然,每条指令均以改变程序计数器PC(Program Counter)中的内容为宗旨

为了给存储单元设置起始偏移地址,可以用ORG伪指令.

ORG 表达式 //表达式的值范围必须在0 ~ +65535

伪指令ORG可设置于代码段、数据段的任何地方.
mydata SEGMENT ;段定义,段名为mydata
ORG 100H ;置mydata段的起始偏移地址为100H
X DB 12H , ? , 30H
Z DD 9C56H

mydata ENDS
你的串号我已经记下,采纳后我会帮你制作
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chengaohe0120
2010-11-26 · TA获得超过982个赞
知道小有建树答主
回答量:1034
采纳率:50%
帮助的人:964万
展开全部
错了,这里的mov ax,buf和
mov ax,[buf]
mov ax,3000h
都是一样的。你可以自己写个程序调试一下
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式