在Linux環境中,如果我寫了一些NASM代碼如下:Linux NASM:調用sys_exit時,ebx中的值是多少?
mov eax, 1 ; system call 1 - sys_exit
mov ebx, 0
int 0x80
...什麼是EBX價值?
在Linux環境中,如果我寫了一些NASM代碼如下:Linux NASM:調用sys_exit時,ebx中的值是多少?
mov eax, 1 ; system call 1 - sys_exit
mov ebx, 0
int 0x80
...什麼是EBX價值?
這是進程的退出碼 - 您的片段或多或少exit(0)
見this link的(有些過時)名單。
一般而言,Linux x86的系統調用接口使用EAX存儲系統的呼叫號碼,然後函數參數以下寄存器從向右
有一個這裏列出大多數Linux系統的非常漂亮的系統調用表要求:
該表沒有列出的參數是什麼,只有他們的類型 - 這就是爲什麼我經過它在我的谷歌搜索結果:) – Erik 2011-03-13 21:00:22
我使用該表相當多的自己,當我被注射系統從調試器調用。它的緊湊格式使其非常實用。如果你需要高層次的細節,你可以使用'man'。 – 2011-03-14 12:29:27
%EBX是exit系統調用的狀態代碼
這意味着,無論是存儲在%ebx將返回到操作系統。因此,在終端上執行應用程序後,發出以下命令:
echo $?
將打印您的應用程序的返回碼。的Programming from the Ground Up
20,21,22頁解釋了這個非常好。
來吧,試試吧,設置'%ebp' 11或其他一些隨機數和運行應用程序後做** **回聲事情。 – karlphillip 2011-03-13 21:05:06
你可以擴大縮寫「SO」嗎?我的智力宏不斷用StackOverflow.com取代它:P – 2011-03-13 21:39:02
我的意思是操作系統,對不起。修復。 – karlphillip 2011-03-13 22:52:49
mov eax, 1 ;
是sys_exit代碼
mov ebx, 0 ;
EBX的值可以是0或1,0表示正常退出,1表示錯誤。
感謝您的參考。 – karlphillip 2011-03-13 21:09:29