欢迎来到天天文库
浏览记录
ID:51592825
大小:209.50 KB
页数:23页
时间:2020-03-25
《黄玉清 微机原理课件4.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第4章汇编语言程序设计1一、汇编程序的功能将汇编语言源程序翻译成机器语言编写的目标程序,并可输出列表文件。检查语法并给出错误信息展开宏指令常用汇编工具:ASM和MASM源程序.ASM输入汇编程序MASM翻译目标代码(.OBJ)列表文件(.LST)交叉索引文件(.CRF)输出汇编程序的执行2二、程序的编辑、汇编与连接1.建立源文件用编辑软件完成,常见软件:Edit、记事本2.汇编源程序用汇编程序MASM对源程序进行汇编3.连接产生可执行文件用连接程序LINK对*.OBJ进行连接,产生可执行文件*
2、.EXE;4.执行程序*.EXE汇编程序的执行34.1汇编程序的格式基本定义datasegmentsbufferdb'Iamastudent!'db'$'dataends汇编程序是分段的,每个段有一个段名,以符号SEGMENT开始,以语句ENDS结束,这两者都要有名字,且名字必须相同。汇编源程序可以由若干个段组成,整个源程序以语句END结束。44.2语句行的构成[name]operationoperand[;comment][名字]操作项操作数项[;注释项]①名字项:字母、数字、特殊字符(?@_
3、$)≤31可以是标号或变量,它们均代表符号地址。②操作项:指令、伪指令和宏指令的助记符。③操作数项:由0个或多个组成,之间用“,”分开,可以是常数或表达式。④注释项:用来说明一段或一句指令的功能,前加“;”基本定义语句举例:sbufferdb'Iamastudent!'movds,ax54.3指示性语句一、符号定义语句①EQU等值语句格式:<名字>EQU<表达式>功能:把表达式的值赋给符号名。举例:NUMBEREQU8②=等号语句格式:TMP=6功能:将符号TMP赋值为6。基本定义6③PURGE
4、解除语句格式:PURGE符号1,符号2,符号3功能:解除对符号1、符号2、符号3的赋值。举例:PURGENUMBER4.3指示性语句EQU和==的区别:EQU定义后的符号名(除非解除)不允许重复定义;=对定义后的符号名可以重复定义。基本定义7例:PORT1EQU3;PORT1=3PORT2EQUPORT1+2;PORT2=5T1EQUADD;定义T1与ADD同义CONTEQUCX;定义CONT与CX同义N1=9N1=6;重复定义N1,其值最终为6PURGEPORT1;解除PORT1的赋值PORT
5、1EQU10;PORT1重新赋值为104.3指示性语句应用举例84.3指示性语句二、数据定义语句字节定义:符号DB〈表达式〉字定义:符号DW〈表达式〉四字节定义:符号DD〈表达式〉八字定义:符号DQ〈表达式〉十字节定义:符号DT〈表达式〉数据定义94.3指示性语句①、操作数是常数或表达式数据定义MY_DATADB10H,4H,27HMY_DATA100427012104.3指示性语句①、操作数是常数或表达式(续)数据定义ARRAYDW100H,-5,3*20HARRAY0100FBFF00600
6、12345114.3指示性语句①、操作数是常数或表达式(续)数据定义注意事项:☆数据定义中的数据默认值均为十进制;☆数据定义不能超过伪指令的有效范围;☆数据存放遵循“高位在高端”的原则。DATADB256COUNTDB12;循环12次MYNUMDW1234H124.3指示性语句②、操作数是字符串数据定义STRINGDB‘GOOD!’MYCHARDW‘AB’,‘CD’STRING012345474F4F442021MYCHAR012342414443134.3指示性语句数据定义注意事项:☆字符串必
7、须用单引号括起来;☆当定义的字符多余两个字符的字符串时,只能使用DB伪指令。DATA1DW‘ABCD’应改为:DATA1DB‘ABCD’②、操作数是字符串(续)144.3指示性语句数据定义③、可保留空单元,操作数为“?”ABCDB12,?,56MEDW?,98,?MCDD1248,?,0D123H④、可用复制操作符DUPMY1DB2DUP(0,1,2)MY2DB100DUP(?)含义:将括号中的数重复n(1~65535)次。15TABLE1DD0,1,2,3TABLE2DB30H,31H,32H
8、,33HTABLE3DB‘12345678910’判断下列指令是否正确:1.MOVAX,TABLE12.MOVBX,TABLE23.MOVAL,TABLE34.MOVAX,WORDPTRTABLE24.3指示性语句课堂练习☆请为XLAT指令定义一张表,以计算2n。☆164.3指示性语句三、段定义语句主要伪指令有:SEGMENT——标志段开始。ENDS——标志段结束。ASSUME——让汇编程序知道源程序的段结构,并知道在各种指令执行时访问哪一个段。ORG——设置存储单元的起始偏移地址。段定义17段
此文档下载收益归作者所有