x386,有没有办法使用另一个寄存器推送?

时间:2013-06-04 14:10:54

标签: assembly

我的意思是当您执行PUSH 10时,它类似于DEC ESP; MOVE [ESP], 10

但是有没有办法在一个命令中执行DEC EDX; MOV [EDX], 10? 和其他寄存器相同,EDX,EAX ......

2 个答案:

答案 0 :(得分:2)

std
mov EDI, offset ...
mov AL, 10
; Single instruction (save AL to ES:EDI, post-decrement of EDI)
stosb

答案 1 :(得分:2)

不是我知道,但你可以使用宏:

PUSHEAX MACRO Value
DEC EAX
MOV [EAX], Value
ENDM

或者

PUSHREG MACRO Reg, Value
DEC Reg
MOV [Reg], Value
ENDM