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