Assembly (asm x86)是否有类似于add的指令,但涉及寄存器和堆栈顶部的第一个值?

Assembly (asm x86)是否有类似于add的指令,但涉及寄存器和堆栈顶部的第一个值?,assembly,x86,stack,cpu-registers,Assembly,X86,Stack,Cpu Registers,例如,我有注册值为50的EAX。在堆栈40、30、20中有一组其他值,我想添加到寄存器中。我在寻找一条指令,将50+40+30+20的结果放入EAX,而不将值弹出到另一个寄存器,然后将它们添加到EAX中。你的意思是像添加EAX、[esp]/添加EAX、[esp+4]/添加EAX、[esp+8] 如果要在添加值后弹出这些值,请添加esp,12 在x86上,使用普通指令和寻址模式对堆栈进行随机访问非常简单;您不必使用像push和pop这样的堆栈指令 16位模式无法使用[sp]作为基址寄存器,但幸运的

例如,我有注册值为50的EAX。在堆栈40、30、20中有一组其他值,我想添加到寄存器中。我在寻找一条指令,将50+40+30+20的结果放入EAX,而不将值弹出到另一个寄存器,然后将它们添加到EAX中。你的意思是像添加EAX、[esp]/添加EAX、[esp+4]/添加EAX、[esp+8]

如果要在添加值后弹出这些值,请添加esp,12

在x86上,使用普通指令和寻址模式对堆栈进行随机访问非常简单;您不必使用像push和pop这样的堆栈指令


16位模式无法使用[sp]作为基址寄存器,但幸运的是,那些黑暗的日子早已过去。但即使这样,您也可以相对于[bp]寻址堆栈内存,并且您通常知道bp和sp之间的距离。

没有这样的指令。