关于汇编语言的问题.docVIP

  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文档。上传文档
查看更多
简要回答一下关于汇编语言的问题: (1)在汇编语言行格式中,symbol在指令前通常称为什么?在某些指示符前通常称为什么? 答:行格式中symbol通常是标号,在指令或伪指令前它总是标号,在某些指示符前它是表示变量或常量的符号。 (2)对某些伪指令,如何区分是ARM伪指令还是Thumb伪指令? 答:相同的伪指令出现在程序中Thumb代码区,汇编器识别为Thumb伪指令;出现在ARM代码区汇编器识别为ARM伪指令。 (3)符号与标号、标号与局部标号有哪些区别? 答:标号是一种符号,代表存储器中指令或数据的地址,在汇编期间通过计算,得到标号的地址。局部标号用在指令中,指出分支的目标处。它们不能用于数据。 (4)变量有哪几种类型? 答:数值;逻辑;串。 (5)举例说明如何从ARM指令分支到Thumb指令,如何从Thumb指令分支到ARM指令,写一个完整的汇编程序。 答:ADR R1,Goto_THEMB+1 ADR R2,Back_ARM BX R1 BX R2 . . . . . . CODE16 ALIGN Goto_THUMB CODE32 . Back_ARM . . . . (6)编写一个完整的程序,说明程序的结构。 答: AREA example,CODE,READONLY ENTRY Run1 MOV r1,#20 MOV r2,#15 SUB r1,r1,r2 ; Stop MOV r0,#0x18 LDR r1,=0x20026 SWI 0x123456 END 结构:定义区域的AREA指示符;声明汇编程序入口点的ENTRY指示符;应用程序执行;应用程序终止;源程序结束的END指示符。 (7)可以在代码区域定义数据吗?如果可以,举例说明如何定义,要注意些什么。 答:可以定义。 举例说明: AREA test,CODE Thumb_Code;code ;code MOV pc,lr Thumb_Data DATA DCB 2,5,8 使用时,如果需要在Thumb代码区域用到某一个数据定义指示符,如DCD、DCB和DCW定义数据时,必须使用DATA指示符。如果一个标号代表在Thumb代码区域的数据的地址,那么DATA指示符标记这个标号作为指针,指向在代码区域的数据。也可以在ARM代码区域使用DATA指示符标记在代码中的数据,DATA在汇编时被忽略。 (8)如何将一段代码对齐到4字节边界? 答:为了获得4字节边界对齐,如果需要,DCD指示符在第一个定义的字前,会插入最多3字节作为填充字节。 (9)简述如何使用文字池。 答:由AREA指示符定义开始的诶个区域,在代码区域结尾处或汇编结尾处,即使不写出LTORG,汇编器也执行LTORG指示符。使用LTORG确认在LDR、LDFD和LDFS伪指令范围内,文字池被汇编。打一次额的程序可能要求几个文字池。放LTORG指示符应该在无条件分支或子程序返回指令之后,使处理器不会试图把常数当作指令去执行。在文字池中,汇编器以字边界对齐数据。 (10)简述全局变量与局部变量的含义。 答:GBLA指示符声明并初始化一个全局算术变量,取值范围与数值表达式相同。GBLL指示符声明并初始化一个全局逻辑变量,取值范围为{TRUE}或{FALSE}。GBLS指示符声明并初始化一个全局串变量,取值范围与串表达式相同。使用时上述3种变量适用范围被限定在这些变量的源文件中。可以使用SETA、SETL和SETS指示符分别为3种变量设定值。也可以在汇编器命令行选项中设置全局变量。 LCLA、LCLL、LCLS用来定义局部变

文档评论(0)

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

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

1亿VIP精品文档

相关文档