[工学]第3章指令系统和程序编写2.pptVIP

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

第3章 指令系统和程序编写 X0 .set 0H X1 .set 6H X2 .set 5H X3 .set 5H X4 .set 3H X5 .set 5H .text bcd_sec: LDP #6 ;数据地址:300H~37fH SPLK #X0,0H ;将X0放300H单元 SPLK #X1,1H ;将X1放301H单元 SPLK #X2,2H ;将X2放302H单元 SPLK #X3,3H ;将X3放303H单元 SPLK #X4,4H ;将X4放304H单元 SPLK #X5,5H ;将X5放305H单元 LAR AR0,#5 LAR AR2,#310h LAR AR3,#305H LOOP: MAR *,AR2 LT * MPY #10 SPL * LACL *,AR3 ADDC *-,AR1 BANZ LOOP RET * * 3.3 伪指令 汇编语言包括指令性语句和指示性语句(伪指令)。指令性语句就是上面介绍的用各种助记符表示的机器指令,每条指令都有其机器代码或指令代码;伪指令语句(汇编指令)是指示性语句,简称伪指令。 伪指令一般不产生指令代码。主要说明源程序的起止、分段情况、安排各类信息的存储结构以及有关的变量说明等。 几个常用汇编伪指令如下: ⑴ 定义段的伪指令 定义段的伪指令把汇编语句程序的各部分与适当的段联系起来。 ① .asect:创建具有绝对地址的初始化命名段。.asect定义的段可以包含代码和数据。在绝对段内,用户可以使用.label伪指令来定义可重定位标号。 ② .bss:为未初始化的变量在.bss段内保留空间。 ③ .sect:定义初始化命名段并把后续代码或数据与该段联系。用.sect定义的段可包含代码或数据。 ④ .text:标示.text段内代码部分。.text段通常包含可执行代码。 ⑤ .usect:在未初始化命名段内保留空间。.usect伪指令和.bss伪指令相类似,但是它允许用户与段.bss分开保留空间。 ⑵ 初始化常数的伪指令 ① .bes和.space:在当前段中保留特定的位。当使用 .space的标号时,它指向保留位的第一个字。当使用.bes标号时,它指向保留位的最后一个字。 ② .byte:将一个或多个8位的数值置入当前段连续的字中。 ③ .field:将单个数值置入当前字规定的位数中。 ④ .bfloat和.float:计算单精度32位IEEE格式浮点数,并会存入当前段两个连续的字中:先存储低字,后存储高字。 ⑤ .int和.word:将一个或多个16位值置入当前段的连续字中。 ⑥ .long和.blong:将32位数值放入当前段的连续两个字块中。 ⑦ .string:将8位字符从一个或多个字符串置入当前段。 ⑶ 调准段程序计数器的伪指令 ① .align:把SPC调准在128个字的边界。 ② .even:调准SPC,使其指向下一个完整字。 ⑷ 引用其他文件的伪指令 ① .copy和.include:告诉汇编器开始从其他文件中读入源语句。 ② .def:识别在当前模块中定义且可以被其他模块使用的符号。 ③ .global:声明外部符号以便在链接时可将其用至其他模块。 ④ .ref:识别在当前模块中使用,但在其他模块中定义的符号。 ⑸ 条件汇编伪指令 ① .if/.elseif/.else/.endif:告诉汇编器根据表达式的值有条件地汇编代码块。 .if expression:标志条件块的开始。如果.if条件为“真”,那么汇编后面的代码块。 .elseif expression:如果.if条件为“假”且.elseif位“真”,那么汇编后面的代码块。 .else:如果.if为“假”,那么汇编后面的代码块。 .endif:标志条件块的末尾并结束条件块。 ② .loop/.break/.endloop:告诉汇编器根据表达式的值来重复地汇编代码块。 .l

文档评论(0)

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

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

1亿VIP精品文档

相关文档