好吧,在汇编中无法推送无符号字节;我们需要推一个字(扩展标志)。
我可以做"推送0x0b00c8f0",但我需要创建每个单独的dword。我可以说,我需要在0之后,在c8之后和f0之后推0b。完成这4次推送后,我需要用这些字节形成双字。
我有:
push WORD 0x0b
push WORD 0x00
push WORD 0xc8
push WORD 0xf0
push 0x11111111
movsb [esp], [esp+4]
movsb [esp+1], [esp+8]
movsb [esp+2], [esp+12]
movsb [esp+3], [esp+16]
; Now esp = 0x0b00c8f0
但是ESP无法在8位段中分离,所以,我该怎么办呢?
答案 0 :(得分:0)
您的示例不起作用,因为x86处理器没有内存移动"。但是您可以将堆栈视为普通内存(不含push
):
sub esp, 4
mov BYTE [esp], 0xf0
mov BYTE [esp+1], 0xc8
mov BYTE [esp+2], 0x00
mov BYTE [esp+3], 0x0b