1.用ARM汇编语言实现以下C程序段的功能 (可以自行假设变量存放的寄存器)(Keil MDK实现)
1) y=ax(b+c)
2)if(x<3)
y=3*x+66;
else if(x<100)
y=100*x+88;
else y=0;
3) for(i=0;i<10;i++)
x[i]=a[i]+b[i];
无法LDR【r7】
; x[i]=a[i]+b[i].s
; 栈配置
Stack_Size EQU 0x00000400 ; 定义栈空间大小
AREA MyStack, NOINIT, READWRITE, ALIGN=3 ; 声明栈段
Stack_Mem SPACE Stack_Size ; 分配内存空间
__initial_sp
; 异常/中断向量表(复位后,向量表位于地址 0 处)
AREA Reset, DATA, READONLY ; 声明Reset数据段
__Vectors DCD __initial_sp ; 栈顶地址(MSP初始值)
DCD Reset_Handler ; “复位”异常处理代码的起始地址
THUMB ; 表示接下来的代码为THUMB指令集
PRESERVE8 ; 表示接下来的代码保持8 字节栈对齐
AREA Init, CODE, READONLY ; 声明代码段
a DCD 1,2,3,4,5,6,7,8,9,10
b DCD 10,9,8,7,6,5,4,3,2,1
;x DCD 0