资源描述:
《微机原理及应用-ch7.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第七章汇编语言程序设计的基本方法和技巧7.1概述7.2伪指令和宏指令7.38086汇编语言程序设计的基本语法7.4汇编语言程序设计的基本方法和技巧7.7IBM-PC-DOS系统的功能调用可执行目标文件:“.EXE”目标代码文件:“.OBJ”,没有确定的物理地址,“.ASM”若有错,给出信息源程序文件:“.ASM”“.asm”——编辑edit汇编得到结果,观察结果是否正确,错误链接若干.OBJ调试MS-DOS下7.1概述7.2伪指令和宏指令格式:[名字]定义符[参数1][;注释]一、伪指令语句无冒号作用:指导汇编程序进行汇编,不产生目标代码,不占用内存功能:提
2、供如下信息:如何分段,段的定义,段间关系,模块定义,模块间关系,数据定义,开始汇编,结束汇编不可缺省常数、字符串、常量名、变量名,标号,专用符号1.符号定义伪指令等值语句符号名EQU表达式功能:为一个表达式赋予一个符号名表达式类型:常数或数值,地址,变量、标号、寄存器、指令助记符e.g.COUNTEQU5NUMEQUCOUNT+5e.g.ADDREQUDS:[DI+7]e.g.LABLEEQUSTART+BETCNTEQUBXCBDEQUSUB注:EQU定义的符号名不能被重新定义等号语句符号名=表达式e.g.NUM=6…NUM=NUM+2注:与EQU区别在于
3、符号名可以重新定义2.数据定义伪指令数据定义语句符号名Dn表达式DB、DW、DD、DQ、DT字节、字、双字、4字、5字的变量。(1)数值常数:十进制、八进制、十六进制、二进制等,缺省形式是十进制;(2)字符常量,用单引号括起来,被存储的是该字符的ASCII码;(3)符号常量,必须是预先已定义的符号;(4)符号“?”,表示预留空间,内容不定;表达式类型:数据复制语句nDUP(表达式)重复的次数重复的内容e.g.定义赋初值的变量xxDB1,-1,0fcHyyDW1,-1,0fcHzzDD1,-1,0fcH注意:(1)DB定义的数据,每个数据元素占据1个存储单元;
4、DW定义的数据,每个数据元素占据2个存储单元;(2)字数据存储时,低字节存储在低地址单元中,高字节存储在高地址单元中;e.g.定义字符串变量(只能用DB定义)str1DB'TsingHua'str2DB'INPUT:',0dH,0aH,'$'注意:3个及其以上的字符,只能用DB定义str1DW‘abcd’;错str2DD‘abcd’;错str1DW‘ab’,‘cd’;对,每组字符串中前一字符作高字节,后一字符作低字节。str2DD‘ab’;对,前一字符存放于第二字节,后一字符存放于第一字节,两个高字节存放00H。str1str25473696e6748756
5、1494e5055543a0d0a24‘T’‘s’‘i’‘n’‘g’‘H’‘u’‘a’‘I’‘N’‘P’‘U’‘T’‘:’0dH0aH‘$’e.g.利用DW伪指令可存放偏移地址,DD伪指令可存放偏移地址和段地址XXDWOFFSETXLISTDDLABELOFFSETX为XX在其段内的偏移地址LABEL为双字,一字为偏移地址,一字为段地址e.g.表达式中出现‘?’,分配并保留存储空间ABCDB?,?DEFDW?,50,?----32H00H--ABCDEFe.g.数据复制D1DB3DUP(11,?)D2DW2DUP(4,?)D3DB2DUP(‘AB’,2,DU
6、P(8))0BH-0BH-0BH-D104H00H--04H00H--D241H42H08H08H41H42H08H08HD33.段定义伪指令段名SEGMENT[定位类型][组合类型][‘类别’]…段名ENDS[定位类型]说明段的起始地址应有怎样的边界值BYTE:********************B,即段可以从任何地址开始;WORD:*******************0B,即段的起始地址必须为偶地址;PARA:****************0000B,即段从节边界开始,每16个字节为1小段,所以,其起始地址必为16的倍数。PAGE:*******
7、*****00000000B,即段从页边界开始,每256个字节为1页,所以,其起始地址必为256的倍数。[组合类型]说明程序连接时的段合并方法PUBLIC:将同类别名段组装在一起形成一个逻辑段;STACK:与PUBLIC一样,只用于堆栈段。在汇编及连接后,系统自动为SS及SP分配值,在可执行程序中,SP初值指向栈底。COMMON:同名段从同一个内存地址开始装入。所以,各个逻辑段将发生覆盖。连接以后,该段长度取决于同名段中最长的那个,而内容有效的是最后装入的那个。MEMORY:与PUBLIC同义,只不过MEMORY定义的段装在所有同名段的最后。若连接时出现多个
8、MEMORY,则最先遇到的段按组合类型MEMORY处