关于汇编语言的问题.doc_第1页
关于汇编语言的问题.doc_第2页
关于汇编语言的问题.doc_第3页
关于汇编语言的问题.doc_第4页
关于汇编语言的问题.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

简要回答一下关于汇编语言的问题:(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 ALIGNGoto_THUMB CODE32 . Back_ARM . . . .(6)编写一个完整的程序,说明程序的结构。答: AREA example,CODE,READONLY ENTRYRun1 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,CODEThumb_Code;code ;code MOV pc,lrThumb_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用来定义局部变量。使用时,上述3种变量被限制在含有它的宏内。可以用SETA、SETL和SETS指示符分别为3种变量设定值。(11)简述条件汇编的含义和用法。答:IF指示符引入一个条件,由这个条件决定是否汇编指令和/或指示符代码1。ELSE指示符标记指令和/或指示符代码2的开始,当IF后的条件为假,则汇编指令和/或指令符代码2。ENDIF指示符标记条件汇编结束。汇编器根据条件决定是否汇编某一段代码。(12)简述重复汇编的含义和用法。答:WHILE指示符测试一个条件,由这个条件决定是否汇编指令和/或指示符代码。WEND指示符表示指令和/指示符代码结束,由WHILE再次测试条件,决定是否重复进行汇编,直到条件不成立。在使用中,WHILE和WEND配对使用,对指令和/指示符重复汇编。重复次数可以是0。在WHILEWEND内可以使用IFENDIF。WHILEWEND能被嵌套使用。(13)简述宏定义、宏调用、宏扩展的含义和用法。答:MACRO指示符标记一个宏定义的开始,MEND指示符标记这个宏定义的结束,而MEXIT指示符通知汇编器,从宏中退出。使用时,在宏的内部,像$label、$parameter这些参数,能够像其他变量那样,以同样的方法是用。每次宏调用时,都要给它们一个新的值。参数必须使用$,用来与其他符号区别。如果使用符号|作为变量,用于表示一个参数的默认值。如果变量被省略,用空串替换。(14)如何在一个被汇编的文件内包含另一个源文件或目标文件?答:INCLUDE指示符包含一个文件在正在被汇编的文件内,所包含的文件是源文件,也要被汇编,汇编后放在当前位置。INCBIN指示符包含一个文件在正在被汇编的文件内,所包含的文件时目标文件或数据文件,不要汇编,放在当前位置。(15)如何声明在其他文件定义的符号?答:IMPOPT指示符提供给汇编器一个名字,声明这个名字不是在当前汇编程序中定义的。在使用中,这个符号被看做是另一个文件定义的符号,它作为程序地址对待。如果不指定WEAK,并且在连接中没有对应的符号时,则连接器产生一个错误。如果WEAK被指定,并且在连接时没有对应符号,则:如果在分支

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论