汇编学习2

汇编基础知识

汇编段

  • .data 已初始化的全局变量
  • .bss 未初始化的全局变量
  • .text 代码段,通常用 global _start 作为入口

数据类型

名称 位数 指令 描述
byte 8位 db 8位整数
word 16位 dw 16位整数
double word 32位 dd 32位整数,单精度浮点
quad word 64位 dq 64位整数,双精度浮点
ten word 80位 dt 扩展精度浮点
字符串定义 msg db "Hello world", 0xA

数据初始化格式

<变量名> <变量类型> <初始化变量数据>

空白数据

指令 描述
resb 保留字节
resw 保留字 (2字节)
resd 保留双字 (4字节)
resq 保留四字 (8字节)

跳转指令

指令 描述
cmp 比较两个操作数
je 相等时跳转
jne 不相等时跳转
jg 大于时跳转(有符号)
jl 小于时跳转(有符号)
jge 大于等于时
jle 小于等于时
ja 大于时跳转(无符号)
jb 小于时跳转(无符号)
jz 如果零跳转
jnz 如果非零跳转

常用系统调用号 (System Call Numbers)

系统调用 32位号 64位号
read 3 0
write 4 1
open 5 2
close 6 3
exit 1 60
fork 2 57
execve 11 59
waitpid 7 61
kill 37 62
mmap 90 9
munmap 91 11
brk 45 12
ioctl 54 16
lseek 19 8
getpid 20 39
socket 102 41
connect 104 42
accept 103 43
sendto 133 44
recvfrom 140 45
shutdown 142 48
bind 104 49
listen 105 50