X86 匯編/例
< X86 汇编
世界你好之匯編程序
源碼
編輯; 程序名: 嗨.asm
; 源文件编码: UTF-8
; FASM语法下的'世界你好'汇编程序
format ELF executable 3
entry 开始
segment readable executable
开始:
mov eax,4 ;系统函数号(sys_write)
mov ebx,1 ;文件描述符, 1=stdout
mov ecx,问候语
mov edx,问候语长度
int 0x80 ;呼叫操作系统内核
mov eax,1 ;调用系统退出函数(sys_exit)
mov ebx,0
int 0x80
segment readable writeable
问候语 db '世界你好!',0xA
问候语长度 = $-问候语
編譯運行與調試
編輯1. 編譯
fasm之使用簡單明了:
fasm 源码文件名 {输出可执行文件名, 默认值源文件名} {-m 编译时使用最大内存KB} {-p 编译遍数, 默认值100}
花括號參數可選, 輸出可執行文件格式在源碼中指定.
編譯結果顯示:
- 編譯錯誤
或
- 編譯成功總結信息
$ fasm 嗨.asm
flat assembler version 1.71.63 (16384 kilobytes memory)
3 passes, 164 bytes.
2. 運行
$ ./嗨
世界你好!
3. 調試
- 用fdbg單步調試
$ fdbg 嗨
0000000008048074 > mov eax,00000004
s
0000000008048079 > mov ebx,00000001
s
000000000804807E > mov ecx,08049096
s
0000000008048083 > mov edx,0000000E
s
0000000008048088 > int 80
s
世界你好!
000000000804808A > mov eax,00000001
s
000000000804808F > mov ebx,00000000
s
0000000008048094 > int 80
s
WEXITSTATUS: 00h