汇编语言 简单问题
BUFDW3000H…MOVAX,BUF书上说这里BUF和写成[BUF]效果是一样的,即把BUF的值3000H作为偏移地址而不是作为操作数。BUF不是一个变量么,为什么这...
BUF DW 3000H
…
MOV AX,BUF
书上说这里BUF和写成[BUF]效果是一样的,即把BUF的值3000H作为偏移地址而不是作为操作数。
BUF不是一个变量么,为什么这里不是把3000H赋值给AX,而是把BUF作为地址用呢?那不是说变量都只能用作地址了? 展开
…
MOV AX,BUF
书上说这里BUF和写成[BUF]效果是一样的,即把BUF的值3000H作为偏移地址而不是作为操作数。
BUF不是一个变量么,为什么这里不是把3000H赋值给AX,而是把BUF作为地址用呢?那不是说变量都只能用作地址了? 展开
3个回答
展开全部
MOV AX,BUF
BUF 不是立即数
如果要把变量值传给AX可以使用OFFSET
MOV AX, OFFSET BUF
操作数就包含在指令中,它作为指令的一部分,跟在操作码后存放在代码段。这种操作数称为立即数。
-----------------------------
一个是立即寻址 MOV AX,3000H
一个是直接寻址 MOV AX,[BUF]
怎么会是一样的呢!
BUF 不是立即数
如果要把变量值传给AX可以使用OFFSET
MOV AX, OFFSET BUF
操作数就包含在指令中,它作为指令的一部分,跟在操作码后存放在代码段。这种操作数称为立即数。
-----------------------------
一个是立即寻址 MOV AX,3000H
一个是直接寻址 MOV AX,[BUF]
怎么会是一样的呢!
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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
你的串号我已经记下,采纳后我会帮你制作
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
你的串号我已经记下,采纳后我会帮你制作
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
错了,这里的mov ax,buf和
mov ax,[buf]
mov ax,3000h
都是一样的。你可以自己写个程序调试一下
mov ax,[buf]
mov ax,3000h
都是一样的。你可以自己写个程序调试一下
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询