在asm中推送连续的字节

时间:2015-01-29 05:05:31

标签: assembly

好吧,在汇编中无法推送无符号字节;我们需要推一个字(扩展标志)。

我可以做"推送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位段中分离,所以,我该怎么办呢?

1 个答案:

答案 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