第9部分-Linux x86 64位彙編 AT&T彙編示例四

第9部分-Linux x86 64位彙編 AT&T彙編示例四

 

示例——輸出字符串

如下代碼示例:

.data                    # 數據段聲明
        msg : .string "Hello, world!\\n" # 要輸出的字符串
        len = . - msg                   # 字串長度
.text                    # 代碼段聲明
.global _start           # 指定入口函數
         
_start:                  # 在屏幕上顯示一個字符串
        movl $len, %edx  # 參數三:字符串長度
        movl $msg, %ecx  # 參數二:要顯示的字符串
        movl $1, %ebx    # 參數一:文件描述符(stdout) 
        movl $4, %eax    # 系統調用號(sys_write) 
        int  $0x80       # 調用內核功能
         
                         # 退出程序
        movl $0,%ebx     # 參數一:退出代碼
        movl $1,%eax     # 系統調用號(sys_exit) 
        int  $0x80       # 調用內核功能

通過as彙編器進行編譯。

# as -o hello.o hello.s

#ld -s -o hello hello.o

其中-s參數表示在鏈接時候去掉函數符號。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章