我正在尝试将值pushl $(%ecx - 1)
推送到堆栈。
所以我尝试了这个指令:
as
但是我从fact.s: Assembler messages:
fact.s:49: Error: register value used as expression
收到以下错误。
movl %ecx, %edx
subl $1, %edx
pushl %edx
作为一种解决方法,我做了以下事情:
%edx
但是有没有办法在不使用额外寄存器的情况下完成它(在这种情况下为>>> import pandas as pd
>>> df = pd.DataFrame({'foo': [1, 2, 3], 'bar': [1.0, 2.0, 3.0], 'baz': ['qux', 'quux', 'quuux']})
>>> df.dtypes
bar float64
baz object
foo int64
dtype: object
)?并在一个指令?
答案 0 :(得分:5)
没有额外的寄存器?当然。 DEC /推/ INC。一条指令?没有。
decl %ecx
pushl %ecx
incl %ecx
答案 1 :(得分:5)
两条指示:
pushl %ecx
subl $1, (%esp) # or decl (%esp)