这是我的汇编程序,它只是一个交换*x和*y的函数。
因此,从main函数传递的第一个参数是x的地址,位于
8(%ebp)
,第二个参数是y的地址,位于12(%ebp)
。
该程序将交换x和y。
我需要7行才能完成这个操作。您能使其变为6行吗?
并且有一个条件,您只能使用%eax
、%ecx
和%edx
这3个寄存器。
我思考了很久,但我无法将其缩短为6行。肯定有办法,不是吗?
这可能不是什么大问题,但如果能在6行内解决,我想知道如何做到。movl 8(%ebp), %eax
movl (%eax), %ecx
movl 12(%ebp), %edx
movl (%edx), %eax
movl %ecx, (%edx)
movl 8(%ebp), %ecx
movl %eax, (%ecx)
谢谢- kevin