mov esi,ss:[ebp+8]和mov esi,ds:[ebp+8]有什么区别。。

2025-04-08 16:45:15
推荐回答(1个)
回答1:

(1)CPU段寄存器的概念问题,如果没有这个概念,在这里三言两句很难说清楚,如果想搞明白,请你了解一下与些相关的一些概念。
(2)还是简单解释两句,看能不能帮到你
SS是堆栈段寄存器,DS是数据段寄存器。
因此,
SS:[EBP+8]寻址的结果指向的是堆栈段的存贮单元,
DS:[EBP+8]导址的是结果指向的是数据段的存贮单元。
例如:
假设:BP=10h
ss=100h
ds=200h
那么,在这个例子中,mov esi,ss:[bp+8]相当于 将物理地址100H*10H+10H+8的内容取到ESI
mov esi,ds:[bp+8]则是将物理地址200h*10h+10h+8的内容取到esi
(3)特例是,当SS与DS相同时,这两条指令的执行结果则是相同的。

希望能帮到你