汇编语言mov ax, [bx]是什么意思,不太理解中括号在此处的用法
可以改写成movax,bx吗?可以解释下这个程序中"[]"的用法吗datasegmentbufdb'ABCDEF'numdw72,-5,100hpoindw0dataen...
可以改写成mov ax,bx吗?可以解释下这个程序中"[ ]"的用法吗
data segment
buf db 'ABCDEF'
num dw 72,-5,100h
poin dw 0
data ends
code segment
assume cs:code,ds:data
start:mov ax,data
mov ds,ax
mov dx,[num] ; =mov dx,num 编译后均为 mov dx,[0006] (DX=0048)
mov si,offset num
lea si,num ;
mov ax,[si] ;
lea ax,[si] ;
lea di,4[si] ;
mov al,buf ;
mov ah,offset buf ;ah=00
mov poin,offset buf ;编译后为 mov word ptr [000C],0000
exit: mov ah,4ch
int 21h
code ends
end start 展开
data segment
buf db 'ABCDEF'
num dw 72,-5,100h
poin dw 0
data ends
code segment
assume cs:code,ds:data
start:mov ax,data
mov ds,ax
mov dx,[num] ; =mov dx,num 编译后均为 mov dx,[0006] (DX=0048)
mov si,offset num
lea si,num ;
mov ax,[si] ;
lea ax,[si] ;
lea di,4[si] ;
mov al,buf ;
mov ah,offset buf ;ah=00
mov poin,offset buf ;编译后为 mov word ptr [000C],0000
exit: mov ah,4ch
int 21h
code ends
end start 展开
4个回答
展开全部
这两条指令是相同的,都是直接寻址:
mov dx,num 按照变量名称,取来它的内容;
mov dx,[num] 按照变量地址,取来它的内容。
如果想要用间接寻址,则:
MOV BX, OFFSET NUM 取NUM的偏移地址;
MOV DX, [BX] 间接寻址,取来NUM的内容。
另外:
MOV BX, OFFSET NUM 取NUM的偏移地址;
和
LEA BX, NUM
又是完全相同的,都是传送NUM的偏移地址到BX。
mov dx,num 按照变量名称,取来它的内容;
mov dx,[num] 按照变量地址,取来它的内容。
如果想要用间接寻址,则:
MOV BX, OFFSET NUM 取NUM的偏移地址;
MOV DX, [BX] 间接寻址,取来NUM的内容。
另外:
MOV BX, OFFSET NUM 取NUM的偏移地址;
和
LEA BX, NUM
又是完全相同的,都是传送NUM的偏移地址到BX。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
mov ax, [bx] 指把寄存器ax中的内容传送到偏移地址为bx的内存中!
mov ax, bx 指把寄存器ax中的内容传送到bx中!
mov ax, bx 指把寄存器ax中的内容传送到bx中!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询