代码如下:
data segment
D=4524H ;定义D为常量
value dw 1234H ;定义value为变量
data ends

code segment
assume cs:code,ds:data
start: mov ax, data
mov ds, ax
mov ax, [value]
mov ax, ds:[value]
mov ax, [D]
mov ax, [4524H]
mov ax, ds:[4524H]
mov ax, ds:[D]
mov ah, 4ch
int 21h
code ends

end start

测试如下:
汇编语言中关于常量和变量的寻址方式

mov ax, [value]
mov ax, ds:[value]
由图可知,这两种被认为直接寻址方式,而且常量D的定义没有占用字节,所以value的偏移地址是0000h。

汇编语言中关于常量和变量的寻址方式
mov ax, [D]
mov ax, [4524H]
由图可知,如果不加段前缀,这两种被认为立即寻址方式,可见常量D在汇编语言中被看作立即数。

汇编语言中关于常量和变量的寻址方式
mov ax, ds:[4524H]
mov ax, ds:[D]
由图可知,加了段前缀ds:后,就是直接寻址了,在汇编源程序中,用立即数作为偏移地址采用直接寻址方式要加段前缀,
在dubug 命令下,可以不加段前缀,系统默认在ds段。

由此可见,常量与变量在汇编语言寻址方式中的一些区别。

参考资料:汇编语言等号=伪指令 http://m.biancheng.net/view/3477.html
汇编语言的符号、标号和变量符号 转自: https://blog.csdn.net/benny5609/article/details/2470132#commentBox

相关文章:

  • 2022-01-05
  • 2021-11-29
  • 2022-12-23
  • 2022-01-17
  • 2021-04-29
  • 2021-12-12
  • 2021-05-26
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-11-06
  • 2021-12-09
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案