POP [BP-SI-80]正在做什么?16位组装

Adr*_*ian 0 assembly

我试图理解这个命令,我有两个不同的意见.

POP [BP-SI-80]节省从堆栈中的一些字DS:[BP-SI-80]SS:[BP-SI-80]

fuz*_*fuz 6

如果BP是内存操作数中的寄存器,则默认段为SS.这可以用段前缀覆盖.

但是,请注意,不BP-SI存在寻址模式.你可能写错了,正确的寻址模式是[BP+SI-80]或者[BP+SI+80].以下是您要比较的编码:

8f 42 b0     pop [bp+si-80]
8f 42 50     pop [bp+si+80]
Run Code Online (Sandbox Code Playgroud)

如果你的汇编程序解释80为十六进制常量,它就是

8f 42 80     pop [bp+si-80h]
8f 82 80 ff  pop [bp+si-80h]
8f 82 80 00  pop [bp+si+80h]
Run Code Online (Sandbox Code Playgroud)

请注意,[BP+SI-80h]出现两次,因为有两种方法对其进行编码.