2011-03-13 47 views

回答

6

這是進程的退出碼 - 您的片段或多或少exit(0)

this link的(有些過時)名單。

+0

感謝您的參考。 – karlphillip 2011-03-13 21:09:29

1

一般而言,Linux x86的系統調用接口使用EAX存儲系統的呼叫號碼,然後函數參數以下寄存器從向右

  1. EBX
  2. ECX
  3. EDX
  4. ESI
  5. EDI

有一個這裏列出大多數Linux系統的非常漂亮的系統調用表要求:

http://bluemaster.iu.hio.no/edu/dark/lin-asm/syscalls.html

+1

該表沒有列出的參數是什麼,只有他們的類型 - 這就是爲什麼我經過它在我的谷歌搜索結果:) – Erik 2011-03-13 21:00:22

+0

我使用該表相當多的自己,當我被注射系統從調試器調用。它的緊湊格式使其非常實用。如果你需要高層次的細節,你可以使用'man'。 – 2011-03-14 12:29:27

3

%EBX是exit系統調用的狀態代碼

這意味着,無論是存儲在%ebx將返回到操作系統。因此,在終端上執行應用程序後,發出以下命令:

echo $? 

將打印您的應用程序的返回碼。的Programming from the Ground Up

20,21,22頁解釋了這個非常好。

+0

來吧,試試吧,設置'%ebp' 11或其他一些隨機數和運行應用程序後做** **回聲事情。 – karlphillip 2011-03-13 21:05:06

+0

你可以擴大縮寫「SO」嗎?我的智力宏不斷用StackOverflow.com取代它:P – 2011-03-13 21:39:02

+0

我的意思是操作系統,對不起。修復。 – karlphillip 2011-03-13 22:52:49

0

mov eax, 1 ;是sys_exit代碼

mov ebx, 0 ; EBX的值可以是0或1,0表示正常退出,1表示錯誤。