- 1、本文档共15页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三章 汇编语言程序设计程序是一组为完成某种功能而按一定顺序(由算法确定)编排的指令序列。
本章将首先介绍8086宏汇编语言的基本语法及常用伪指令,然后用实例说明8086宏汇编语言源程序的设计方法。
机器语言:当指令和数据都用二进制代码表示时计算机能够直接识别与执行高级语言:是完全独立于机器的通用语言,效率低。面向过程、面向对象必须译成机器语言。
汇编语言:汇编语言是一种用符号表示的、面向CPU指令系统的程序设计语言。是用指令的助记符、符号地址、标号等编写程序的语言 。用汇编语言编写程序能够直接利用硬件系统的特性(如寄存器、标志、中断系统等),直接对位、字节、字、寄存器或存储单元、I/O端口进行处理,同时也能直接使用CPU指令系统提供的各种寻址方式,编制出高质量的程序。
程序目标代码占用内存少,执行速度快,效率高,具有实时性汇编程序的作用
将源程序翻译成机器语言程序。
按用户要求自动分配存储区域(如程序区、数据区等)。
自动地把各种进制数 → 二进制数。
把字符 → ASCII码。
计算表达式的值。
自动对源程序进行检查,指出语法错误(如非法格式、未定义的助记符、标号、漏掉操作数等)
一、汇编语言的程序结构与语句格式
(一)、汇编语言源程序的框架结构
1、源程序的结构特点
(1)、按逻辑段组织源程序源程序由若干个逻辑段组成每段由伪指令SEGMENT开始、由ENDS结束。(2)、在代码段起始处用ASSUME伪指令说明各个段Reg与逻辑段的关系,并在程序起始处设置段Reg的初值(代码段CS除外)。
(3)、每段由若干语句行组成,每行只有一条语句且不能超过128个字符,允许有后续行。整个源程序以END结束,它通知汇编程序停止汇编。END后的START标号为程序运行时的起始地址。
(4)、每条语句由4个字段构成。各字段间用空格分开。
(5)、源程序中设有返回DOS的指令语句,使程序执行完后返回DOS系统的命令接受状态。
2、源程序与PC DOS的接口
(3)、置DS和ES的值使之指向PSP的开始处,即PSP的段地址→ DS和ES。
(4)、将用户程序的段基址、第一条指令的偏移地址设置CS、IP;同时设置SS、SP。
(5)、运行用户程序
(二)、 8086汇编语言的语句
(1)、指令语句:可执行语句,对应CPU指令系统规定的一条指令。汇编时,汇编程序为之产生一一对应的机器目标代码。
(2)、伪指令语句:汇编时给汇编程序提供与硬件有关的汇编信息,本身并不产生目标代码,CPU不执行,是指示汇编程序进行汇编的操作。
2、语句格式(注意:方括号表示该内容可有可无。)
指令语句的一般格式:[标号:] [前缀] 指令助记符 [操作数] [;注释]
伪指令语句的一般格式:[名字] 伪指令定义符 [操作数] [;注释]
(1)、标号和名字
标识符字段由各种有效字符组成,一般表示符号地址,具有段基址、偏移量、类型三种属性。很多情况下标识符字段是语句中的可选部分,主要为便于程序的读写方便而使用。标识符字段通常有:
标号 后跟冒号,在程序中作为JMP、LOOP指令的转移目标,与具体的指令地址相联系。
名字 用于定义常量名、变量名、过程名、段名等。
注意:标号和名字必须符合汇编语言对标识符的规定
以字母开头,由字母(不分大小写)、数字(0~9)及部分特殊字符(?@ $和下划线_等)组成,字符串长度不超过31个。
标识符不能是汇编语言中有特定意义的保留字、助记符、Reg等,如:CPU的内部寄存器名AH、AL、AX等。
(2)、助记符、定义符
规定指令或伪指令的操作功能,是语句中唯一不可缺少的部分。
对于指令,汇编程序将其翻译成机器语言指令,如MOV AX, 100表示B8 00 01;
对于伪指令,汇编程序据其要求的功能进行处理,如data SEGMENT表示data与一段地址对应。
注意:前缀仅可出现在指令助记符前。
(3)、操作数
指令语句中提供给指令的操作对象、存放位置。操作数可以是0个、1个或2个,2个时用逗号“,”分开。(INC BX; MOV AX,DATA;)
伪指令语句中操作数的格式和含义随伪操作指令不同而不同。
(4)、注释
以“;”开始,给以编程说明。汇编程序对“;”后的内容不做处理。注释对汇编不起任何作用,不对应于任何机器码,仅增强源程序的可读性。
二、8086汇编中的伪指令符号定义语句
格式:符号名 EQU 表达式
例: PORT EQU 40H ;用PORT代替40H号端口
COUNT EQU CX ;用COUNT代替CX寄存器
注:EQU语句不能重新
文档评论(0)