嵌入式系统编程题汇编 (带答案 ).一。从一数到十COUNT EQU 0x30003100 ;定义变量 COUNT 的基地址AREA Example1,CODE,READONLY;声明代码段Example1 为只读ENTRY ;标识程序入口CODE32 ;声明 32 位 ARM 指令START LDR R1,=COUNT ;将 0X30003100 赋给 R1MOV R0,#0 ;执行 R0=0STR R0,[R1] ;存储 R0 寄存器的数据到R1 指向的存储单元LOOP LDR R1,=COUNT ;将 0X30003100 赋给 R1LDR R0,[R1] ;将 R1 中的数值作为地址, 取出此地址中的数据保存到 R0 中ADD R0,R0,#1 ;执行 R0=R0+1CMP R0,#10 ;将 R0 与 10 进行比较MOVHS R0,#0 ;若 R0 大于等于 10,则 R0=0STR R0,[R1] ;存储 R0寄存器的数据到R1 指向的地址单元B LOOP ;跳转到 LOOPEND ;汇编文件结束二, 9 的 8 次幂X EQU 9 ;初始化 X 为 9n EQU 8 ;初始化 N 为 8AREA Example3,CODE,READONL Y ; 生明代码段Example3 为只读ENTRY ;标识程序入口路CODE32 ;声明 32 位 ARM 指令START LDR SP,=0x30003F00 ;把 0x30003F00 赋给 SP(R13)LDR R0,=X ;把 9 赋给 R0LDR R1,=n ;把 8 赋给 R1BL POW ;跳转到POW,并把下一条指令地址存入到R14 中HALT B HALT ;等待跳转POW STMFD SP!,{R1 -R12,LR} ;将 R1-R12 入栈,满递减堆栈MOVS R2,R1 ;将 R1 赋给 R2,并影响标志位MOVEQ R0,#1 ;若 Z=1,则 R0=1BEQ POW_END ;若 Z=1, 跳转到 POW_ENDMOV R1,R0 ;将 R0 中值赋给 R1SUB R2,R2,#1 ;将 R2-1 的只赋给 R2POW_L1 BL DO_MUL ;跳转到DO -MUL ,并把下一条指令地址存入R14 中SUBS R2,R2,#1 ;将 R2-1 的值赋给 R2,并影响标志位BNE POW_L1 ;若 Z=0,跳转到 POW_L1POW_END LDMFD SP!,{R1 -R12,PC} ;数据出栈,存入到R1-R12,PC 中DO_MUL MUL R0,R1,R0 ;把 R1*R0 的值赋给 R0MOV PC,LR ;LR 中的值赋给PCEND ;汇编结束三:从一一直加到一百程序清单(一)C 语言实验参考程序#define uint8 unsigned char ;定义一个无符号字符常量uint8#define uint32 unsigned int ;定义一个无符号整形常量unint32#define N 100 ;定义一个常量 N=100( 宏定义, 100用N代替 )uint32 sum; ;定义 sum为无符号整型常量(声明一个unsigned int型的变量 sum)void Main (void );主函数{uint32 i; ;定义无符号整型常量i(声明一个 unsig...