logo - 刷刷题
下载APP
【简答题】

指出下列ARM汇编程序的功能: X EQU 9 ; 定义 X 的值为 9 n EQU 8 ; 定义 n 的值为 8 AREA Example4,CODE,READONLY ; 声明代码段 Example4 ENTRY ; 标识程序入口 CODE32 ; 声明 32 位 ARM 指令 START LDR SP,=0x40003F00 ; 设置堆栈 (满递减堆栈,使用 STMFD/LMDFD 指令) LDR R0,=X LDR R1,=n BL POW ; 调用子程序 POW,返回值为 R0 HALT B HALT ; 名称:POW ; 入口参数:R0 ; R1 ; 出口参数:R0 运算结果 ; 占用资源:R0、R1 ; 说明:本子程序不考虑溢出问题 POW STMFD SP!,{R1-R12,LR} ; 寄存器入栈保护 MOVS R2,R1 ; 将指数值复制到 R2,并影响条件码标志 MOVEQ R0,#1 ; 若指数为 0,则设置 R0=1 BEQ POW_END ; 若指数为 0,则返回 CMP R2,#1 BEQ POW_END ; 若指数为 1,则返回。(此时 R0 没有被更改) MOV R1,R0 ; 设置 DO_MUL 子程序的入口参数 R0 和 R1 SUB R2,R2,#1 ; 计数器 R2 = 指数值减 1 POW_L1 BL DO_MUL ; 调用 DO_MUL 子程序,R0 = R1 * R0 SUBS R2,R2,#1 ; 每循环一次,计数器 R2 减 1 BNE POW_L1 ; 若计数器 R2 不为 0,跳转到 POW_L1 POW_END LDMFD SP!,{R1-R12,PC} ; 寄存器出栈,返回 ; 名称:DO_MUL ; 功能:32 位乘法运算。 ; 入口参数:R0 乘数 ; R1 被乘数 ; 出口参数:R0 计算结果 ; 占用资源:R0、R1 ; 说明:本子程序不会破坏 R1 DO_MUL MUL R0,R1,R0 ; R0 = R1 * R0 MOV PC,LR ; 返回 END

举报
参考答案:
参考解析:
.
刷刷题刷刷变学霸
举一反三

【单选题】汇编程序的功能是( )

A.
将汇编语言程序转换成目标程序
B.
将汇编语言程序转换成高级语言程序
C.
将高级语言程序转换为目标程序
D.
将汇高级语言程序转换为编语言程序