ARM汇编语言从1+2+......+100
来源:互联网 发布:下拉菜单获取数据库 编辑:程序博客网 时间:2024/06/06 17:10
Thumb 汇编指令实验的参考程序代码清单
;文件名:test.s
;功能:计算1+2+3+…+N 的值
N EQU 50 定义N的值为50
AREA testcode,CODE,READONLY 区域名为testcode,代码,只读
ENTRY 入口
CODE32
ARM_CODE LDR SP,=0x40003F00 sp=0x40003F00
ADR R0,THUMB_CODE+1 将分支目标地址送R0,使R1的bit[0]=1
BX R0 分支并且转换为thumb状态
LTORG
CODE16 汇编以下代码为thumb指令
THUMB_CODE
LDR R0,=N 伪指令R0=50
BL SUM_N 跳转到SUM_N执行
B THUMB_CODE 跳转到THUMB_CODE,thumb模式
;名称:SUM_N
;功能:计算1+2+3+…+N 的值
;入口参数:R0( N 的值 )
;出口参数:R0( 运算结果 )
SUM_N
PUSH {R1-R7,LR}
MOVS R2,R0 R0的内容放入R2
BEQ SUM_END 相等转到SUM_END
CMP R2,#1 R2与1比较,设置标志位
BEQ SUM_END 相等转到SUM_END
MOV R1,#1 将1送入R1
MOV R0,#0 将0送入R0
SUM_L1 ADD R0,R1 R0=R0+R1
BCS SUM_ERR
CMP R1,R2 R1与R2比较,设置标志位
BHS SUM_END
ADD R1,#1 R0=R0+1
B SUM_L1 转到SUM_L1
SUM_ERR MOV R0,#0__ 将0送入R0
SUM_END POP {R1-R7,PC}
END
ARM 汇编指令实验的参考程序代码清单:
;文件名:add.s
;功能:计算1+2+3+…+N 的值
N EQU 5; 定义N的内容为5
AREA Example,CODE,READONLY 定义区域,区域名为Example,代码,只读
ENTRY 入口
CODE32
START
LDR R0,=N R0=5
MOV R2,R0 R2=R0
MOV R0,#0 R0=0
MOV R1,#0 R1=0
LOOP
CMP R1,R2 比较R1与R2
BHI ADD_END
ADD R0,R0,R1 R0=R0+R1
ADD R1,R1,#1 R1=R1+1
B LOOP 转到loop
ADD_END
B START 转到start
END
程序说明:
请问ARM代码中BHI NEXT1是什么意思?代码段如下 CMP R1,R2; BHI NEXT
请微博专家回答 检举
- ARM汇编语言从1+2+......+100
- ARM汇编语言(1)
- ARM汇编语言指令(2)
- ARM汇编语言指令(2) .
- ARM汇编语言指令(1)
- ARM汇编语言指令(1)
- ARM汇编语言
- 【ARM 汇编语言】
- ARM汇编语言
- ARM汇编语言
- ARM汇编语言(2)实例分析(Block Copy)
- arm汇编语言中bne 1b
- ARM汇编语言面试题
- ARM汇编语言伪指令
- ARM汇编语言伪指令
- ARM汇编语言中的程序结构
- ARM汇编语言伪指令
- ARM汇编语言源程序格式
- scala + intellij idea 环境搭建及编译、打包
- Ackerman函数
- 开始奋斗的程序媛
- Unbuntu之安装SVN
- oracle 日期操作 汇总
- ARM汇编语言从1+2+......+100
- Gym 100803G Flipping Parentheses
- Hive-HQL数据定义DDL
- 罗马数字转整数
- Mifare 卡之电子钱包
- 凸函数在凸集内部的多维凸组合仍然凸函数
- 多线程
- Qt从零开始制作串口调试助手-(第一章、工程文件建立)-Creator_Ly
- 习题2-5 分数化小数 解题报告