[置顶] 汇编语言与C语言的理解

时间:2022-05-06 01:26:40

汇编语言的基础知识重点内容
0、学习汇编语言的意义:
基本上所有的处理器的终端,在启动代码的时候都是要使用到汇编语言的
汇编语言的效率可以很高

1、汇编语言框架

.section .data
<初始化的数据>
.section .bss
<未初始化的数据>
.section .text //代码段
.global __start
__start:
<汇编代码>

对应于C语言的:

Int  main()
{
Return 0;
}

2、简单的赋值操作
C语言:

int a,b;
a = 1;
b = 3;
b = a-2;

汇编语言:

mov r1,#1
sub r1,r2,#2

3、选择操作
C语言:

if(a>b)
a= a+b;
else
a= a-b;

汇编语言:

Mov  r1 ,#10
Mov r2,#8
Cmp r1,r2
Bgt branch1
Add r3,r1,r2
//比较的结果都是在程序状态寄存器里面的
branch1:
Sub r3,r1,r2
End
Nop

4、循环语句:
C语言

int i = 0;int j = 0;
for(;i<10;i++){

j++;

}

return 0;

汇编语言

Init
Mov r1,#0
Mov r2,#0

LOOP
CMP r1,#10
BHS LOOP_END
ADD r2,#1
ADD r1,#1
B LOOP
LOOP_END
NOP

END

5、调用简单的函数
汇编语言

Bl  funcl
BL 的指令:实现一个函数
Funcl:
Mov r1,#2
Mov r2,#3
Mov pc //需要修改我们的PC指针