汇编语言(一)
CPU是由一串二进制编码的机器语言控制的,包括下面的信息:
- 指令编好(我们称之为操作码)
- 操作数是什么(如果有的话)
- 以及将操作的结果存储在哪里(如果产生了结果)
汇编语言,是一种更加人性化的机器语言表示形式,使用了一些助记符代码来表示机器码指令,并使用符号名称来引用寄存器和一些其他的存储位置。
好,我们直接进入正题,下面是在ARM架构CPU中如何相加两个数字的汇编代码(*c=*a+*b):
; *a = x0, *b = x1, *c = x2
ldr w0, [x0] ; 从x0指向的位置加载4个字节到w0
ldr w1, [x1] ; 从x1指向的位置加载4个字节到w1
add w0, w0, w1 ; 将w0和w1相加并将结果保存到w0
str w0, [x2] ; 将w0的内容写入x2指向的位置
下面是在x86汇编中进行同样操作的示例:
; *a = rsi, *b = rdi, *c