版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
机器指令数据处理的位置
汇编代码 | 指令前数据的位置 |
---|---|
mov bx,[0] | 内存单元 ds:0 |
mov bx,ax | cpu内部,ax寄存器 |
mov bx,1 | cpu内部,指令缓冲器 |
先来介绍下等下需要用到的名词
SA 表示段地址
EA表示偏移量
段前缀
指令mov ax,[0]
中,内存单元的段地址默认为ds,我们可以显示的在访问内存单元的指令中显示的给出内存单元的段地址所在的寄存器,例如
mov ax,ds:[0]
mov ax,cs:[0]
mov ax,ss:[0]
mov ax,es:[0]
这些出现在访问内存单元的指令中,用于显示的指明内存单元的段地址的"ds",:cs",“ss”,“es”,在汇编中成为段前缀
[bx]
mov ax,[bx]
bx中存放的数据作为一个偏移地址EA,他的默认SA为ds 上面则为 (ax) = ((ds)*16+(bx))
[si]、[di]
si和di是和bx功能相近的寄存器,si和di不能够分成两个8位寄存器来使用,下面的三组指令实现的功能相同
mov bx,0
mov ax,[bx]
mov si,0
mov ax,[si]
mov bi,0
mov ax,[bi]
[dp]
mov ax,[dp]
bx中存放的数据作为一个偏移地址EA,他的默认SA为ss 上面则为 (ax) = ((ss)*16+(dp))
下面是一张cpu寻址方式图