2013-12-20 70 views
1

我是新來的彙編語言編程。我寫了以下代碼,爲什麼簡單的退出程序不起作用?

.text 
.globl _start 

_start: 
    movl $1,%eax 
    movl $0,%ebx 
    int $0x80 

並使用as -o JustExit.o JustExit.asm命令創建目標文件。 (程序集文件名是JustExit.asm)。

這一步我使用了可執行權限,

搭配chmod 777 ./JustExit.o

當我執行程序,它說,

-su後:./ JustExit.o:無法執行二進制文件

I a米不能理解爲什麼這個簡單的'退出'程序無法正常工作。

謝謝。

回答

3

通過as組裝源代碼可生成object file,該程序「尚未」可執行。 您必須鏈接目標文件與linker(如ld),然後這些文件將生成完全正常運行的可執行文件(默認爲a.out)。

您的命令行鏈是這樣的:

$ as -o JustExit.o JustExit.asm 
$ ld JustExit.o 
$ ./a.out 

和它的作品!

相關問題