标签:指令 ack strong uri jit any 语言 assembly 编译
??计算机能运行的是二进制的指令,如00000011
,为了解决可读性和方便编辑的问题,就诞生了汇编语言,所以汇编语言是二进制指令的文本形式,与二进制指令一一对应,如00000011
代表ADD
,二进制与汇编语言都是最底层的低级语言。
由CPU指令和指令对应的运算子构成一条汇编语句,如:
mov %ebx, [%esp+12]
add %eax, %ebx
?? 汇编 assembling 的过程,是由汇编器将汇编语言 assembly language (asm) 编译成二进制。
int add_a_and_b(int a, int b) {
return a + b;
}
int main() {
return add_a_and_b(2, 3);
}
通过 gcc -S example.c
将C程序得到简化的汇编程序:
_add_a_and_b:
push %ebx
mov %eax, [%esp+8]
mov %ebx, [%esp+12]
add %eax, %ebx
pop %ebx
ret
_main:
push 3
push 2
call _add_a_and_b
add %esp, 8
ret
Stack 与 帧 的概念
mov 指令:
push 指令:
add 指令:
pop 指令:
ret 指令:
以 AVX512 为例
reference:http://www.ruanyifeng.com/blog/2018/01/assembly-language-primer.html
标签:指令 ack strong uri jit any 语言 assembly 编译
原文地址:https://www.cnblogs.com/qccz123456/p/12344972.html