只有用软件来编译为单片机可执行的1,0文件
单片机才能运行。
所以要c语言编译为汇编语言是我们所用到的编译器做的事情,比如说
keil
iar
gcc
等的编译器他们都支持C语言编译为汇编语言
并可生成单片机可执行文件。不同的单片机所用的编译器或许不同
把C语言代码转换为MIPS:以下是c语言代码:
while (candidate_gcd <= min)
{
if (((a mod candidate_gcd) == 0) &&((b mod candidate_gcd) ==
0))
{
current_gcd = candidate_gcd
}
candidate_gcd = candidate_gcd + 1
}
以下为转换为mips后的代码:
首先设置变量:
candidate_gcd = $t0
min = $t1
a mod candidate_gcd = $t2
b mod candidate_gcd = $t3
current_gcd = $t4
$t6 = 0
$t5
代码如下:(绿色为注释)
Label3: //设置标签Label3
ble $t0,$t1,Label //当$t0 小于等于$t1 时,跳到标签Label
Label: //设置标签Label
Add $t5,$t2,$t3 //将$t2 和$t3 相加赋值给$t5
Li $t6,0 //给$t6 赋值为0
Leq $t5, $t6,Label1 //判断如果$t6=$t5=0,跳到标签Label1
Label1: //设置标签Label1
Move $t4, $t0 //$t4=$t0
Addi $t0, $t0,1 //$t0=$t0+1(自加加)
J Label3 //跳到标签Label3,这里其实就是实现c 语言
中的while 无限循环
如果你用TC 那么就是tcc -S -I(你的include文件夹) -L(你的lib文件夹) (你的文件)例如,include在C:\tc\include lib在C:\tc\lib 要编译文件hello.c
tcc -S -IC:\tc\include -LC:\tc\lib hello.c会在当前目录下生成一个hello.asm文件直接打开即可
(注意!!!-S -I -L 全都是大写,区分大小写)
如果你用gcc 那么就是gcc -S (你的文件)
例如hello.c gcc -S hello.c
会在当前目录下生成一个hello.S文件,直接用记事本打开不好看,最好用word打开(windows下的gcc,如果是linux直接vi hello.S 或 cat hello.S 或 less hello.S即可)
(注意!!!-S 是大写,区分大小写)