汇编学习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 |