这个(Linux、AT&T、Intel)x86 程序旨在读取三个参数并将最大的参数存储在 %ebx 中作为存在状态。当我将参数弹出到寄存器中时,结果值似乎是字节。如何获得 int 值?
[编辑——感谢哈罗德在下面的评论,我认为问题是我如何使用atoi
来获取 args 的 int 值。]
.section .text
.globl _start
_start:
popl %edi # Get the number of arguments
popl %eax # Get the program name
popl %ebx # Get the first actual argument
movl (%ebx), %ebx # get the actual value into the register (?)
popl %ecx # ;
movl (%ecx), %ecx
popl %edx #
movl (%edx), %edx
bxcx:
cmpl %ebx,%ecx
jle bxdx
movl %ecx,%ebx
bxdx:
cmpl %ebx,%edx
jle end
movl %edx,%ebx
end:
movl $1,%eax
int $0x80