资源描述:
《chap04汇编语言程序设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第4章汇编语言程序设计4.1概述/汇编语言的格式4.2语句行的构成4.3指示性语句(伪操作)4.4指令语句4.5汇编语言程序设计及举例4.1概述/汇编语言的格式4.1.1汇编语言程序的建立1,用编辑程序(edit.exe,写字板,记事本等)建立汇编语言源程序*.asm2,用汇编程序asm,masm,tasm把源文件转换成用二进制代码表示的目标文件*.obj,若有错误则返回修改.3,用连接程序LINK.exe把目标文件与库文件或其他目标文件连接在一起形成可执行文件*.exe,4,由DOS装入存储器,在机
2、器上运行。或用DEBUG(turbodebugger)调试程序。2021/9/1424.1.2汇编语言程序的一个例子MY_DATASEGMENT;定义数据段SUMDB?;为符号SUM保留一个字节MY_DATAENDS;定义数据段结束MY_CODESEGMENT;定义代码段ASSUMECS:MY_CODE,DS:MY_DATA;规定CS和DS的内容PORTEQU3;端口的符号名GO:MOVAX,MY_DATA;DS初始化为MY_DATAMOVDS,AXMOVSUM,0;清SUM单元CYCLE:CMPSU
3、M,100;SUM单元与100相比较JNANOT_DONE;若未超过,转至NOT_DONE2021/9/143汇编语言程序的一个例子(续)MOVAL,SUM;若超过,把SUM单元的内容…OUTPORT_VAL,AL;通过AL输出HLT;停机NOT_DONE:INAL,PORT_VAL;若未超过,输入下一个字节ADDSUM,AL;与以前的结果累加JMPCYCLE;继续循环,转至CYCLEMY_CODEENDS;代码段结束ENDGO;整个程序结束2021/9/144源程序的格式由此可见,汇编语言源程序分段
4、,每一个段有一个名字,以符号SEGMENT作为段的开始,以语句ENDS结束,两者有相同的名字。由若干段组成一个源程序,整个程序以语句END作为结束每一个段又是若干个语句行组成,语句行是源程序的基础汇编语言大小写不敏感,大小写均可,按习惯书写。以&作为续行标志一个语句行由4部分组成标号:操作符操作数;注释CYCLE:CMPSUM,100;SUM单元与100相比较2021/9/1454.2语句行的构成语句行由标记及分隔符按照一定的规则组织起来的。标记是宏汇编源程序的有意义的最小单位。4.2.1标记1.宏汇
5、编的字符集字母/数字/特殊字符:可打印字符,非打印字符:空格,制表符(tab),回车cr(0DH),换行LF(0AH)2.界符(Delimiters)界符是一些特殊字符,利用它们可以表明某个标记的结束,它们本身也有一定的意义,这一点与分隔符(空格)不同。如,:等.有了界符就不用分隔符。MOVAL,30H2021/9/146标记(续)3.常量可以是数字常量或字符常量。4.标识符(Identifiers)标识符是由程序员(用户)自由建立起来的、有特定意义的字符序列。一个标识符是由最多为31个字母、数字及规
6、定的特殊字符(?@_$)等组成的,且不能用数字打头(以免与十六进制数相混淆)。(与高级语言中变量的定义相似)5.保留字(Reservedwords)在语言中有特殊的定义,不能作为标识符使用。如:MOV,SEGMENT,EQU,AL等,同C语言的if,for,while等2021/9/1476.注释(Comment)由分号;(英文非中文)引出,用来说明语句或程序的功能。汇编程序对分号后的内容不做处理。作用:注释程序,增强程序可读性。2021/9/1484.2.2符号(Symbol)在汇编语言源程序中,为
7、了使程序具有通用性和可读性,常用符号代替存储单元,符号是一种标识符,要符合标志符的组成规则。在实际使用中的符号可以分成五类,即寄存器、变量、标号、数、其他符号等.2.变量(variable)存放在存储单元中的操作数,在程序中出现的是存储单元地址的符号,即变量名。(区别于高级语言,取地址&i)变量的3种属性:段值(segment);偏移量(offset);类型(type):字节(BYTE),字(WORD)和双字(doubleword)变量用存储器初始化命令定义VAR1DB01H2021/9/149符号(
8、续)3.标号(label)标号是某条指令所存放单元的符号地址,是转移或调用指令的目标操作数。标号与变量都是存储单元的符号地址,标号对应存储单元存放的是指令,变量对应的存储单元存放的是数据。标号的3种属性:段值(SEG),偏移量(offset)和类型(TYPE)类型:NEAR段内调用或返回FAR段间(段交叉)调用或返回2021/9/14104.2.3表达式(Expressions)表达式是由操作数和运算符组合的序列。1.操作数(Operands)操作数可以