欢迎来到天天文库
浏览记录
ID:51594172
大小:2.00 MB
页数:111页
时间:2020-03-25
《计算机组成原理第7章.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第7章8086/8088汇编语言程序设计7.1引言7.2顺序程序设计7.3分支结构程序设计7.4循环结构程序设计7.5字符串操作程序设计7.6宏、条件汇编与重复汇编7.7子程序设计7.88086/8088微处理器的其他指令与应用2021/9/201.汇编语言的基本概念与学习汇编语言的重要性汇编语言是一种面向机器(处理器)的程序设计语言,是机器语言的符号化表示。汇编语言的执行语句与机器指令有着一一对应的关系,即一个执行语句对应一条机器指令。按照某种机器汇编语言的语法规则编写的源程序必须翻译成相应的机器语言才能在计算机上运行。这个翻译过程称
2、为汇编。从汇编语言到机器语言的翻译程序叫汇编程序。本课程介绍的汇编程序是微软公司开发的MASM。交叉汇编、反汇编7.1引言2021/9/201.汇编语言的基本概念与学习汇编语言的重要性学习汇编语言有助于加深对计算机组成、寻址方式和指令集的理解,全面、客观地评价计算机/处理器的性能。使用汇编语言可以直接操作、控制计算机的底层硬件。相对于高级语言源程序经过编译得到的目标程序,汇编语言源程序经汇编得到的目标程序具有代码精练、占用存储空间小、执行速度快的特点,甚至还可以降低机器的功耗。不同的机器有不同的汇编语言,不同的汇编语言有不同的语法规则。
3、本课程只介绍8086/8088汇编语言。7.1引言2021/9/202.8086/8088汇编语言的基本语法合法的字符英文字母A~Z/a~z(汇编语言不区分字母大小写)数字0~9符号+、–、*、/、=、<、>、(、)、[、]、;、,、、:、’、”、_、@、$、&、#、?、!数据分为常量和变量在汇编期间,常量的值完全确定。在程序运行期间,常量的值不会发生变化。在汇编语言中,变量名代表的是该变量在计算机中的存储地址(和类型)。7.1引言2021/9/202.8086/8088汇编语言的基本语法常量二进制整数,例如:01010101B八进制
4、整数,例如:567O、567Q十进制整数,例如:1234十六进制整数,例如:12H,0ABH字符,例如:‘O’、“GOOD”十进制实数,例如:12.34E–5十六进制实数,例如:1A2B345R7.1引言2021/9/202.8086/8088汇编语言的基本语法符号常量用途:提高程序的可读性、降低发生错误的可能性通过“EQU”或“=”语句来定义例如:PIEQU3.141592ALPHT=PI*3一个符号用“EQU”定义后就不允许对其再次定义,而用“=”定义的符号可以对其再次定义符号常量及其数值保存在汇编程序管理的符号表中,在汇编过程中,
5、一旦遇到符号就用它的数值替换。7.1引言2021/9/202.8086/8088汇编语言的基本语法变量两种类型:寄存器变量和主存变量寄存器变量就是寄存器名。例如:AX(AH
6、AL),BX(BH
7、BL),CX(CH
8、CL),DX(DH
9、DL),SI,DI,BP,SP,CS,DS,ES,SS,IP主存变量简称为变量,变量名具有段地址、偏移地址和类型三个属性。变量的类型有:DB、DW、DD、DQ和DT。7.1引言2021/9/20一个实现字节型变量X+YZ的源程序汇编语言源程序,在结构上与高级语言源程序是相似的,都是先定义变量,再编写对变量
10、进行处理的语句。汇编语言的语句是计算机指令的助记符,功能单一,一行只能书写一个语句/指令,且用“回车”来标志结束,不需要在语句末尾加任何标点符号。著名诗人艾青:诗是艺术的语言——最高的语言,最纯粹的语言。您认不认为:编汇编语言程序就想写诗一样?2021/9/20一个实现字节型变量X+YZ的源程序注释处理语句(也称指令性语句)说明语句(也称伪指令性)2021/9/202.8086/8088汇编语言的基本语法上例的伪指令有段定义伪指令、变量定义伪指令和段值设置伪指令段定义伪指令由语句“段名SEGMENT”开始,以语句“段名ENDS”结束。
11、变量定义伪指令的格式是:变量名变量类型变量初值序列[;注释]段值设置伪指令ASSUME,放在代码段的开始处ASSUMECS:CODE,DS:DATA7.1引言2021/9/20ASSUME伪指令仅仅告诉汇编程序:段寄存器与程序段的对应关系。段地址的真正设定还需要由指令性语句对段寄存器赋值来完成。不过代码段的段寄存器CS的赋值由DOS的装入模块自动完成,所以程序只需对数据段的段寄存器DS或附加数据段的段寄存器ES赋值。MOVAX,DATA;数据段DATA的段地址送入AXMOVDS,AX;AX中的内容送入数据段段寄存器DS2021/9/20
12、可见,一个段到底是数据段还是代码段与其名字无关,取决于程序把哪个段对应到哪个段寄存器。所以当源程序有多个段时,要小心编程,以免出错。2021/9/202.8086/8088汇编语言的基本语法上例的指令性语句
此文档下载收益归作者所有