欢迎来到天天文库
浏览记录
ID:18797346
大小:118.00 KB
页数:37页
时间:2018-09-23
《第4章 汇编语言程序设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第四章汇编语言程序设计内容简介:本章着重介绍8086/8088汇编语言程序的基本结构、汇编语言的语法规则和程序设计的基本方法。§4.1程序设计语言概述§4.1.1计算机语言分类与特点用于计算机程序设计的语言分为:机器语言、汇编语言与高级语言三大类。(1)机器语言定义:指令和数据都用二进制代码表示、计算机能够直接识别与执行的计算机语言叫机器语言。特点:①机器语言直接面向机器,编写、阅读和交流困难,通用性差;②任何其它语言编写的程序最终都必须翻译成机器语言,计算机才能理解与执行。(2)汇编语言定义:将机器语言的指令代码、地址等用指令助记符、符号地址等来表示所形成的语言叫汇
2、编语言,也叫符号语言。特点:①面向机器,通用性差;②汇编语言源程序与编译产生的机器语言程序(目标代码程序)之间存在一一对应关系。③37汇编语言程序能直接利用硬件系统的特性,能直接对位、字节、字、寄存器或存储单元、I/O端口进行操作;④用汇编语言编写的程序占用内存空间少、执行速度快、实时性好。(3)高级语言定义:完全独立于机器的通用计算机语言。特点:①编写时不必考虑不同机器的结构特点,高级语言程序的通用性好;②不能在机器上直接执行,须经过编译或翻译才能运行;③很难利用不同CPU的特点与特性;④生成的目标代码长、占用空间多、执行时间长。§4.1.2汇编语言程序的上机与处理
3、过程LINK链接程序MASM汇编程序EDIT编写程序机器语言执行程序XXX.EXE机器语言目标程序XXX.OBJ汇编语言源程序XXX.ASM37§4.2汇编语言的程序结构与语法规则§4.2.1汇编语言程序的框架结构[举例]:打印输出字符串“THISISASAMPLEPROGRAM.”的汇编程序。STACKSEGMENTPARASTACK‘STACK’;定义堆栈段DB1024DUP(0);建立堆栈区STACKENDS;堆栈段定义结束DATASEGMENT;定义数据段MESSAGEDB‘THISISASAMPLEPROGRAM.’DATAENDSCODESEGMENTAS
4、SUMECS:CODE,DS:DATA,SS:STACKSTARTPROCFARPUSHDSMOVAX,0PUSHAXMOVAX,DATAMOVDS,AXLEABX,MESSAGELOOP1:CMPBYTEPTR[BX],‘$’JELOOP2MOVAH,5MOVDL,[BX]INT21HINCBXJMPLOOP1LOOP2:RETSTARTENDPCODEENDSENDSTART37一源程序的结构特点1源程序由若干逻辑段组成,每个逻辑段都有一个段名,由段定义语句(SEGMENT/ENDS)来加以定义;2在代码段的起始处,用ASSUME命令说明各个段寄存器与逻辑段的关系
5、。并由用户设置各段寄存器(除代码段CS外)的初值,以建立这些逻辑段的可寻址性。3每个逻辑段由若干行汇编语句组成,每行只有一条语句且不能超过128个字符,但一条语句允许有后续行,最后以回车作为语句的结束。4整个源程序必须以END语句来结束,它通知汇编程序停止汇编。END后面的标号START表示该程序执行时的起始地址。5每一条语句最多由4个字段组成,各字段之间用空格分开。6每个源程序在代码段中都必须含有返回到DOS操作系统的指令语句,以保证程序执行完毕后能自动返回到DOS状态。二源程序与PCDOS的接口为了保证程序执行完毕后能自动返回到DOS状态,可以采用以下两种方法。方
6、法一:标准序方法;方法如下:(1)将用户程序的主程序定义为FAR过程,主程序的最后一条指令为RET;37(2)在主程序的开始处加入以下三条指令PUSHDSMOVAX,0PUSHAX方法二:非标准序方法;方法如下:(1)将用户程序的主程序不定义为FAR过程(PROCFAR;ENDP;RET三句都不要);(2)在代码段结束以前加入以下两条指令MOVAH,4CHINT21H§4.2.2汇编语言的语句语句的定义:语句是汇编语言源程序的基本组成单位,它规定了一个基本的操作要求。而源程序则是完成某个特定操作任务的一个语句序列。一语句的种类与格式1语句的种类有三种基本语句:指令语句
7、、伪指令语句和宏指令语句。(1)指令语句对应于指令系统中的一条指令,是可执行语句。汇编时可以产生与之一一对应的机器目标代码。如:MOVDS,AX;汇编时产生目标代码:8EH37与D8H。(2)伪指令语句CPU不执行的语句,只是汇编时给汇编程序提供汇编信息,如定义符号、分配存储单元、将程序分段等。汇编时不产生目标代码,也叫“指示性语句”。如:SEGMENT/ENDS;就是伪指令语句,用来进行段定义。(3)宏指令语句是以某个“宏指令名字”定义的一段指令序列。汇编时,凡有宏指令语句的地方都将用相应的指令系列的目标代码插入。2语句的格式(1)指令语句的一般格
此文档下载收益归作者所有