這個(Linux,AT & T,Intel)x86程序旨在讀取三個參數,並將%ebx中最大的值存儲爲存在狀態。當我將參數彈入寄存器時,結果值似乎是字節。我如何獲得int值?將命令行參數視爲x86中的整數AT&T彙編程序
[編輯 - 感謝哈羅德的評論下面,我認爲這個問題是我如何使用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
什麼int值?你在尋找相當於'atoi'嗎? – harold 2012-04-04 14:09:00
程序運行後,命令行參數的int值類似於'./a.out 5 6 7' - 在這種情況下,退出狀態應該是7.所以如果我需要'atoi'之類的東西,這意味着值5,6等被讀入字符串? – jaybee 2012-04-04 14:30:50