汇编代码基础知识
·35 words·1 min
Compiler
TA
Optimization
汇编代码基础知识 #
额外的参考资料还有这些:
为了更好地理解汇编代码,下面介绍一些基础知识:
指令 #
pushq: 将一个64位(quad word)的值压入栈中。movq: 将一个64位的值从源操作数移动到目标操作数。cmpq: 比较两个64位的值。
这里指令末尾的q表示操作的是64位(quad word)的数据。在32位汇编中,相应的指令是pushl、movl和cmpl,末尾的l表示操作的是32位(long word)的数据。
寄存器 #
rsp: 栈指针寄存器(Stack Pointer),指向栈顶。rbp: 基址指针寄存器(Base Pointer),用于访问函数的参数和局部变量。rdi: 第一个参数寄存器,用于传递函数的第一个参数。rax: 累加器寄存器(Accumulator),常用于存储函数的返回值。
除了上述寄存器,还有其他常见的寄存器如rsi(第二个参数寄存器)、rdx(第三个参数寄存器)、rcx(第四个参数寄存器)、r8至r15(额外的通用寄存器)等。
这些寄存器的命名源于历史原因,在早期的16位汇编中,寄存器名如ax、bx、cx、dx等,分别有不同的用途。在32位和64位汇编中,这些寄存器名前加上了e(extended)或r(register),如eax、rax等,表示寄存器位数的扩展。
Related
c++编译器优化介绍
·670 words·4 mins
Compiler
TA
Optimization
组会M4-W4
·94 words·1 min
组会
Tag
Local Bundle Adjustment 阅读笔记
·227 words·2 mins
SLAM
g2o
optimizer