汇编语言 mov ax, [ bp ] 在求物理地址时 为什么使用ss为段地址而不实用ds为段地址

2025-02-25 20:08:13
推荐回答(5个)
回答1:

1)MOVAX,ES:[1000H]AX=9ABCH地址:31000H算法:ES*10H+1000H声明的段寄存器ES2)MOVAX,[BX]AX=3412H地址:21000H算法:DS*10H+BX默认段寄存器DS3)MOVAX,[BX][SI]AX=?地址:21001H算法:DS*10H+BX+SI默认段寄存器DS这道题是不是你哪里敲错了,你题中没有这个21001H地址4)MOVAX,[BP+DI]AX=9A78H地址:41002H算法:SS*10H+BP+DI默认段寄存器SS方括号里面代表地址,比如movax,[bx]就等于movax,[1000h],冒号代表段前缀,冒号前面的是段寄存器,将以指明的段寄存器寻址,段寄存器*10H+后面的地址即是物理地址,如果没有指明段前缀,将以默认的段寄存器寻址,BX,SI,DI这3个寄存器默认的段寄存器是DS,BP的默认段寄存器是SS

回答2:

源操作数在SS寄存器中,是堆栈段中这是因为:如果指令中出现寄存器BP进行间接寻址时,则默认在堆栈段中,此时的操作数的物理地址=16×SS+SP此题的物理地址=16×SS+SP+DI望采纳啊

回答3:

这是设计cpu时默许的设置方式,必须遵守。

bx、si和ds配合适用;di和es配合使用;bp和ss配合使用。

回答4:

不为什么。
Intel 当年就是这么定的。

回答5:

大学本科毕业没找到工作怎么办?