- 1、本文档共121页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
5.注释 用来说明指令功能的文字,便于用户阅读。 ? 注释可位于句首或句尾,位于句首时,以“*”或“;”开始,位于句尾时,以分号“;”开始。 ? 注释可单独一行或数行; ? 注释是任选项。 11 00000 .bss sym, ; 保留空间于.bss ************************************** * 改变段,允许第五个‘mylab’定义 * ************************************** 例如: 5.5.2 汇编语言中的常数和字符串 表5-3 COFF常数与字符串 返回本节 汇编器可支持7种类型的常数(常量)。 字符常数是包括在单引号内的字符串。若单引号之间没有字符,则值为0。每个字符在内部表示为8位ASCII码。 例如: ‘a’ 内部表示为61 h ‘B’ 内部表示为42 h “‘D’ 内部表示为2744h 注意:字符常数与字符串的差别。 字符常数代表单个整数值。 字符串只是一串字符。 5.5.3 汇编源程序中的符号 汇编程序中的符号用于标号、常数和替代字符。 ? 由字母、数字以及下划线和美元符号(A~Z,a~z,0~9,_和$)等组成; ? 符号名最多可长达200个字符; ? 在符号中,第1位不能是数字,并且符号中不能含空格。 1. 标号 作为标号的符号代表在程序中对应位置的符号地址。 通常,标号是局部变量,在一个文件中局部使用的标号必须是唯一的。 标号分大小写。 例如:ABC,Abc,abc是3个不同的符号。 在调用汇编器时使用-c选项,可以不分大小写。 1. 标号 标号还可以作为.global,.ref,.def或.bss等汇编伪指令的操作数。 如: .global label lable1 NOP ADD label,B B label1 2. 局部标号 局部标号是一种特殊的标号,使用的范围和影响是临时性的。 定义方法: 注意:局部标号不能用伪指令来定义。 ① 用$n来定义。n是0~9的十进制数; ② 用NAME?定义。NAME是任何一个合法的符号名。汇编器用紧随其后一个唯一的数值代替问号。宏中定义标号不声明为全局标号。 局部标号可以被取消定义,并可以再次被定义或自动产生。 取消局部变量的方法: ① 使用.newblock伪指令; ② 使用伪指令.sect,.text或.data改变段 ; ③ 使用伪指令.include或.copy,进入include文件; ④ 达到include文件的结尾,离开include文件。 【例5-12】合法、非法局部标号$n举例。 假设符号ADDRA,ADDRB,ADDRC已经在前面作了定义。 Label1: LD ADDRA,A SUB ADDRB,A BC $1,ALT LD ADDRB,A B $2 $1 LD ADDRA,A $2 ADD ADDRC,A .newblock BC $1,ALT STL A,ADDRC $1 NOP ;将ADDRA装入累加器A ;减去地址B ;如果小于0,分支转移到$1 ;否则将ADDRB装入累加器A ;分支转移到$2 ;$1:将ADDRA装入累加器A ;$2:加上ADDRC ;取消$1的定义,使它可被再次使用 ;若小于0,分支转移到$1 ;存ACC的低16位到ADDRC .newblock .newblock BC $1,ALT ;若小于0,分支转移到$1 STL A,ADDRC ;存ACC的低16位到ADDRC $1 NOP ;错误:$1被多次
文档评论(0)