一个简短的问题,有人知道我有什么方法可以在装配中做这个吗?
movl $4, %ebx
movl (%ebx)(%esp), %eax
我尝试做的基本上是创建一个循环,从堆栈中额外添加下一个参数(固定大小)。
例如:
int foo( int x, int y, int z, int a){
if(x == y){
x = z;
if(y == z){
printf("%d", a);
}
}
}
不是立即将x、y、z和a加载到寄存器中,而是仅在确定前两个条件为真时才将a加载到寄存器中。
p/s:在运行中编写代码,实际上没有做任何有用的事情。
2条答案
按热度按时间8hhllhi21#
你想要这个
每次将%ebx递增1以到达下一个参数。
0yg35tkg2#
被我的编译器接受。
语法为
因为它是可选的