汇编基础:寄存器与简单算术运算
1. 汇编程序基本指令回顾
在之前的学习中,我们接触到了一些基本的汇编指令,如 movq 和 syscall 。以退出程序的示例代码为例:
movq $60, %rax
movq $3, %rdi
syscall
-
movq指令用于在64位数据块(8字节)间移动数据。它有两个操作数,第一个是“源”,第二个是“目标”,用逗号分隔。例如movq $3, %rdi,可以理解为“将数字3移动到%rdi寄存器”。 -
syscall指令用于执行系统调用,它会让Linux内核接管,执行特定的系统任务。在上述代码中,%rax存储系统调用号(60表示退出系统调用),%rdi存储程序的退出状态码。
2. 指令操作数与执行顺序
- 操作数类型 :
movq指令的源操作数可以是寄存器、内存地址或具体数字。使用$符号表示使用的是一个具体数字。目标操作数通常是寄存器。 - 执行顺序 :程序中的指令按顺序依次执行,从
_start标记的位置开始。现代处理器可能会进行指令重排或同时执行多条指令,
超级会员免费看
订阅专栏 解锁全文
1784

被折叠的 条评论
为什么被折叠?



