1
我試圖把參數(這將總是是一個單一的數字),它從一個字符串轉換爲 一個int,並打印出來在屏幕上。傳遞參數,並打印出來
當我運行我的程序與
./test 3
我得到一個非常大的負值...
這是我有:
SECTION .data
str1: db "argument = %d",0,10
SECTION .text
global main
extern printf
main:
enter 0,0
pusha
mov eax, dword [ebp+12]
add eax, 4
mov bl,[eax] ; put the one bit into bl
sub ebx, '0' ; subtract null terminating string to convert to int
push ebx
push str1
call printf ; print the string
add esp, 8
popa
leave
ret
我增加了行'xor ebx,ebx',但仍然沒有給我正確的答案 – jean 2014-11-04 14:06:47
你沒有提到你在哪個操作系統上。在Windows中,您必須調用「GetCommandLine」。你爲什麼認爲它會在[ebp + 12]?您是否使用調試器來檢查您是否真正閱讀了正確的值? http://www.network54.com/Forum/632471/message/1307235592/Getting+command+line+arguments+using+the+Win32+API – Devolus 2014-11-04 15:23:09