ARM考试程序_原创文档.pdfVIP

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

1题;文件名:TEST5.S

;功能:计算1+2+...+N的值

;说明:N≥0,当N=0时结果为0;当N=1时结果为1。

NEQU100;定义N的值为100

AREAExample5,CODE,READONLY;声明代码段Example5

ENTRY;标识程序入口

CODE32;声明32位ARM指令

ARM_CODELDRSP,=0x40003F00;设置堆栈指针

ADRR0,THUMB_CODE+1

BXR0;跳转并切换处理器状态

LTORG;声明文字池

CODE16;声明16位Thumb指令

THUMB_CODELDRR0,=N;设置子程序SUM_N的入口参数

BLSUM_N;调用子程序SUM_N

BTHUMB_CODE

;名称:SUM_N

;功能:计算1+2+...+N的值

;入口参数:R0N的值

;出口参数:R0运算结果

;占用资源:R0

;说明:当N=0时结果为1;当N=1时结果为1。

;若运算溢出,结果为0。

SUM_N

PUSH{R1-R7,LR};寄存器入栈保护

MOVSR2,R0;将N的值复制到R2,并影响条件码标志

BEQSUM_END;若N的值为0,则返回。(此时R0没有被更改)

CMPR2,#1

BEQSUM_END;若N的值为1,则返回。(此时R0没有被更改)

MOVR1,#1;初始化计数器R1=1

MOVR0,#0;初始化结果寄存器R0=0

SUM_L1ADDR0,R1;R0=R0+R1

BCSSUM_ERR;结果溢出,跳转到SUM_ERR

CMPR1,R2;将计数器的值与N比较

BHSSUM_END;若计数器的值≥N,则运算结束

ADDR1,#1

BSUM_L1

SUM_ERRMOVR0,#0

SUM_ENDPOP{R1-R7,PC};寄存器出栈,返回

END

2题;文件名:TEST4.S(不一样)

;功能:计算X的n次方的值

;说明:X和n均为无符号整数

XEQU9;定义X的值为9

nEQU8;定义n的值为8

AREAExample4,CODE,READONLY;声明代码段Example4

ENTRY;标识程序入口

CODE32;声明32位ARM指令

STARTLDRSP,=0x40003F00;设置堆栈(满递减堆栈,使用STMFD/LMDFD

指令)

LDRR0,=X

LDRR1,=n

BLPOW;调用子程序POW,返回值为R0

HALTBHALT

文档评论(0)

***** + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档