欢迎来到天天文库
浏览记录
ID:40207516
大小:515.14 KB
页数:57页
时间:2019-07-25
《微机原理-第5版(周荷琴)-第四章x》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、《微型计算机原理与接口技术》第5版第4章汇编语言程序设计本章主要内容:§4.1汇编语言程序格式和伪指令§4.2DOS系统功能调用和BIOS中断调用§4.3汇编语言程序设计方法与实例什么是汇编语言(AssemblyLanguage)?使用指令的助记符、符号地址和标号等编写的程序设计语言。每条指令都有对应的机器码,不同的CPU使用不同的汇编语言。用汇编语言编程的优点汇编程序运行速度快,实时性好,占用内存空间小,能最大限度地发挥硬件的作用。汇编语言的适用场合绝大部分系统软件都用汇编语言编写,大多数涉及快速处理、位处理和访问硬件设备的高效程序都是汇编程序。如:实时数据处理程序、实时控制
2、程序、高级绘图程序、游戏程序等。汇编语言编程的缺点和难点编程效率低,程序设计的技巧性强,要求编程人员熟悉计算机的硬件结构和指令系统;编程和调试程序周期长,在一种机器上编写的程序,不能移植到别的类型机器上。学会一种汇编语言,就能举一反三,触类旁通。学会8086汇编语言编程,就打好了学习32位高档机程序设计的基础,也便于从事单片机和嵌入式系统的设计开发。汇编语言的汇编处理过程1)按语法规则编写源程序PROG.ASM;2)用汇编程序将源程序翻译成目标文件PROG.OBJ;3)用连接程序对1个或几个.OBJ模块连接后,生成能在机器上执行的程序PROG.EXE。如果汇编过程中出错,要在纠
3、错后重新汇编;连接过程也会出现新的错误,需要反复修改。§4.1汇编语言程序格式和伪指令4.1.1汇编语言程序格式4.1.2伪指令语句4.1.3完整的汇编语言程序框架4.1.1汇编语言程序格式汇编语言程序由指令语句和伪指令语句组成。1.指令语句指令语句由4部分组成,格式:标号:指令助记符操作数;注释1)标号标号是指令的符号地址,后面须加冒号“:”。可作标号的字符:英文字母、数字或某些特殊字符,如@*_?·等。标号以英文字母或特殊字符打头,系统保留字不能做标号,如:4AB、MOV、DW、LOOP、M-D等都不是合法的标号。标号具有段基址、偏移量及类型三种属性。指令语句2)指令助记符
4、它是指令语句中不可缺少的部分,表示指令的操作码。3)操作数1条指令可包含1个或2个操作数,也可没有操作数。操作数的组成:常数二进制数,加B;10进制数,可加D或省略;16进制数,加H,AF前要加0;2-10进制BCD数,加H,要用调整指令字符或字符串用单引号‘’括起来变量程序运行期间可修改,数值可由DB、DW、DD等来定义标号如JMPNEXT存储器指令系统中已介绍表达式将专门介绍指令语句4)注释说明指令或程序的功能,增强程序可读性,可省略。注释前必须加分号“;”。2.伪指令语句伪指令语句的格式如下:名字伪指令指示符操作数;注释1)名字是给伪指令语句起的名称,格式要求与标号类似
5、,名字后不能跟冒号“:”。2)伪指令指示符是伪指令语句中不可缺少部分,常用伪指令语句:段定义语句SEGMENT和ENDS段分配语句ASSUME过程定义语句PROC和ENDP变量定义语句DB、DW、DD、DQ、DT程序结束语句END伪指令语句3)操作数有的伪指令不允许带操作数,有的可带1个或多个操作数。4)注释注释部分与指令语句的要求类似。3.表达式和运算符将常数、符号、寄存器等通过运算符连接起来的式子叫做表达式。不论是常数、变量还是标号,都可用表达式的形式给出。表4.1给出了常用表达式的运算符,还给出了一些简单的例子。常用表达式的运算符常用表达式的运算符(续)常用表达式的运算符
6、(续)如果一个表达式中有多个运算符,则要根据优先级别从高到低的顺序进行运算,优先级别相同的运算符,则按从左到右的顺序进行运算。运算符的优先级运算符1)算术运算符例4.1利用现行地址符“$”和减法运算符“-”求数组的长度。程序段:DATASEGMENT;数据段LISTDB12,38,5,29,74;LIST数组(变量)COUNTEQU$-LIST;COUNT=现行地址-;LIST的偏移地址DATAENDS┇MOVCX,COUNT;CXLIST数组长度LIST变量的起始地址偏移量为0,“$”符表示本指令的现行地址偏移量,它等于5,所以$-LIST=5-0=5,并赋予COUNT,这
7、样可很方便地求得变量长度。运算符2)逻辑运算符和关系运算符例4.2将表达式的运算结果送到寄存器中。MOVAL,NOT10110101B;AL01001010BMOVBL,10HGT20H;BL00H,因10H>20H为假,输出全0MOVBX,6EQ0110B;BXFFFFH,因6=6为真,输出全1运算符3)数值返回运算符数值返回运算符OFFSET和SEG例4.3将TABLE变量的段基址:偏移量送入DS:BX。TABLEDB40H,79H,24H,30H,19H;数字0~9的12H,02
此文档下载收益归作者所有