- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
练 习 1. 编写程序段,将字节单元D1存放的数据的第1位,第3位取反,而其余位不变,变换后的数据存放在D2单元。 2. 设在数据段中有X,Y两变量(字节单元),试编写程序段计算(只写有关功能的指令). 字符串的定义 例 DATA SEGMENT S1 DB ‘STUDENT’ DATA ENDS 53H 54H 55H 44H 45H 4EH 54H S1 0000H 0001H 0002H 0003H 0004H 0005H 0006H 注意字符串在内存中的存放顺序和字相区别。 定义字符串时,内存中存的是字符的ASCII码。 ORG、 $的作用 DATA SEGMENT A1 DB 1,-1 ORG 1000H A2 DW 1,$+2 DATA ENDS MOV AX,A2+2; 00H FFH …… 01H 00H 04H 10H A1 0000H 0001H 0002H 1000H 1001H 1002H 1003H A2 AX=1004H 符号$的含义 汇编语言中,$表示汇编的当前地址。 汇编程序在汇编时为每一段分配一个汇编地址计数器,用$表示。对每一段进行汇编时,把地址计数器初始化为零,每分配一个字节的内存单元$的值就加1 。 注意:在所有的伪指令中,除了数据定义语句会分配内存单元外,其它的伪指令都不分配内存单元。 例 DATA SEGMENT ARRAY DB10H,24H,5AH,0C7H,98H,’ABCDE’ COUNT EQU $-ARRAY MAX DB ? DATA ENDS 开始汇编时,给每一个段分配一个汇编地址寄存器($),每分配一个字节的内存单元,汇编地址计数器的值就加1. 最初,$=0,分配数据10H后,$=0+1=1,分配数据24H后,$=1+1=2,…,分配字符E后,$=10,而变量ARRAY为一符号地址,即为0000H,故$-ARRAY=10-0=10,因此 COUNT EQU 10 五、 符号定义语句 EQU(了解) 为了使程序便于阅读和修改,我们有时使用一个符号来代表一个值,而符号代表了一定的意义,在程序中使用一个符号代表一个值进行操作,其格式为: 名字 EQU 表达式 例如: PORT EQU 3F8H 在程序中可使用 MOV DX, PORT 对DX进行赋值,实际上PORT就是一个常量。 例:CNT EQU 12 ... MOV AX,CNT;指令执行后AX=12 五、 符号定义语句 EQU 格式: 名字 EQU exp 名字是由程序员取定的,表达式exp可以计算得出一个具体的数值,程序中就用这个名字来表示表达式的实际计算值。 例: COUNT EQU 20 MOV AL,COUNT;AL=20=14H 若需对已赋值的名字撤销原赋值并赋以新值,则需用PURGE伪指令语句撤销原赋值,再用EQU伪指令赋新值。PURGE伪指令的格式为: PURGE 名字 例: COUNT EQU 20 …… MOV AL,COUNT …… PURGE COUNT COUNT EQU 10 …… MOV BL,COUNT AL=20 BL=10 =伪指令 格式: 名字=exp =伪指令的功能EQU类似,差别是=伪指令可随时对名字赋新值,而不必使用PURGE伪指令来撤销。 3.2.4 指令性语句 指令性语句的格式为: [标号 :] 操作码 [ 操作数1 ,操作数2] [;注释] 设置宏指令的目的:若指令序列需要多次重复使用,为简化书写,可将该指令序列用一条指令来代替,用来代替若干条指令序列的一条指令就是宏指令。 (1)宏定义 格式: 宏名字 MACRO [形式参数] …… ENDM 3.2.5 宏指令 (2)宏调用 格式: 宏名字 [实参数] 其中,实参与形参一一对应。 (3)宏展开 汇编时,用实参取代形参,用宏体取代宏指令,称为宏展开。 宏指令与子程序的差别 宏指令与子程序都能简化源程序的书写。但二者是有差别的,具体如下: (1)宏指令不能节省目标程序需占用的内存单元;而子程序的目标代码在整个目标程序可只出现一次,可节省内存单元。 (2)宏指令的程序执行时间比子程序的执行时间
文档评论(0)