贵州大学微机原理PPT及复习PPT 3-1汇编语言与编程课件

上传人:我*** 文档编号:144134539 上传时间:2020-09-06 格式:PPT 页数:40 大小:753.50KB
返回 下载 相关 举报
贵州大学微机原理PPT及复习PPT 3-1汇编语言与编程课件_第1页
第1页 / 共40页
贵州大学微机原理PPT及复习PPT 3-1汇编语言与编程课件_第2页
第2页 / 共40页
贵州大学微机原理PPT及复习PPT 3-1汇编语言与编程课件_第3页
第3页 / 共40页
贵州大学微机原理PPT及复习PPT 3-1汇编语言与编程课件_第4页
第4页 / 共40页
贵州大学微机原理PPT及复习PPT 3-1汇编语言与编程课件_第5页
第5页 / 共40页
点击查看更多>>
资源描述

《贵州大学微机原理PPT及复习PPT 3-1汇编语言与编程课件》由会员分享,可在线阅读,更多相关《贵州大学微机原理PPT及复习PPT 3-1汇编语言与编程课件(40页珍藏版)》请在金锄头文库上搜索。

1、热能与动力工程,第3章汇编语言与编程,热能与动力工程,汇编语言的由来,汇编语言:汇编语言的语句和其语法规则。 一、机器指令 机器指令:它是计算机能识别的一组二进制代码,用于指出计算机所要进行的操作以及操作对象,是在设计CPU时,就已确定的编码。例如: 1. 把数“16”送到寄存器AL中,用下列机器指令实现: 10110000 00010000 操作码 操作数,热能与动力工程,3.1.1,2. 把数“4”与寄存器AL的内容相加,结果仍放在AL中,用下列机器指令实现: 00000100 00000100 操作码 操作数 3. 把寄存器AL的内容送到地址为6的单元中,用下列机器 指令实现: 1010

2、0010 00000110 00000000 操作码 操作数地址 不同的机器操作,由不同的代码指令实现。一个计算机能够执行的所有代码指令的集合,就是该计算机的指令系统。,热能与动力工程,3.1.1,二、机器语言与机器语言程序 1. 机器语言:把指令系统及书写代码程序的语法规则称为机器语言。 2. 机器语言程序:用机器语言编写的程序称为机器语言程序。 三、汇编语言 由于机器指令难于使用,人们采用符号代替二进制代码,于是产生了符号化的汇编语句。例如: 机器指令 汇编语句 10110000 00010000 MOV AL,16 00000100 00000100 ADD AL,4 10100010

3、00000110 00000000 MOV ADDR6,AL,热能与动力工程,3.1.1,四、高级语言 这里仍用相同的两个数的加法运算为例,用机器语言、汇编语言、高级语言实现的语句如下: 机器指令 汇编语句 高级语言 10110000 00010000 MOV AL,16 00000100 00000100 ADD AL,4 ADDR6=16+4 10100010 00000110 00000000 MOV ADDR6,AL 1. 与汇编语言相比,高级语言有两个主要优点: 使用方便。易读、易写、易调试,因而容易学习,编程速度也快。 便于移植。程序很容易从一种计算机换到另一种计算机上运行。,热能

4、与动力工程,3.1.1,2. 与高级语言相比,汇编语言的优点是: 效率高。其程序比相同功能的高级语言程序所占的内存少,运行速度快。 能将计算机的全部功能提供给用户使用。这是因 为,汇编语言能最直接最充分地描述计算机语言,使 用汇编语言就是使用机器语言。 五、汇编语言的应用领域 要求执行效率高,反应快的领域,如操作系统内核、工业控制、实时系统; 系统频繁使用的子程序或程序段; 与硬件资源密切相关的软件开发,如设备驱动程序等; 受内存容量限制的应用领域,如小型控制仪器、仪表。,热能与动力工程,3.1.1 汇编语言的源程序格式,汇编语言源程序由语句序列构成。每条语句一般占一行。分号(;)后面为注释。

5、 源程序可以包含若干个代码段、数据段、附加段或堆栈段。 段与段之间的顺序任意。 独立运行的程序必须包含一个代码段,并指示程序执行的起始点,一个程序只有一个起始点。 所有可执行性语句必须位于某一个代码段内,说明语句性语句可根据需要位于任一段内。 通常需要一个堆栈段。,汇编语言程序结构与汇编语句,热能与动力工程,一、简化段定义格式,.model small ;定义程序的存储模式.stack 100h ;定义堆栈段(默认1KB空间).data ;定义数据段 . ;数据定义 .code ;定义代码段.startup ;程序起点 . ;程序代码.exit ;程序结束,返回DOS . ;子程序等的代码en

6、d ;汇编结束,热能与动力工程,二、 完整段定义格式,stack segment stack ;定义堆栈段,段名stack db 1024 dup(0) ;分配堆栈段的大小,为1024字节stack ends ;堆栈段结束 data segment ;定义数据段,段名data . ;数据定义data ends ;数据段结束 code segment code ;定义代码段,段名code assume cs:code, ds:data, ss:stack ;确定各个逻辑段的类型start: mov ax, data ;程序起点 mov ds, ax ;设置DS指向数据段的段地址 . ;程序代码

7、mov ax, 4c00h int 21h ;程序结束,返回DOS . ;子程序等的代码code ends ;代码段结束end start ;汇编结束,程序起始点为start,热能与动力工程,3.1.2汇编语言的格式 由汇编语言编写的源程序是由许多语句(也可称为汇编指令)组成的。每个语句由14个部分组成,其格式是: 标号 指令助记符 操作数 ;注解 标识符:给指令或某一存储单元地址所起的名字。可由下列字符组成: 字母:A z ; 数字:0 9 ; 特殊字符:?、 、一、$ 。数字不能作标识符的第一个字符,而圆点仅能用作第一个字符。标识符最长为31个字符。当标识符后跟冒号时,表示是标号。它代表该

8、行指令的起始地址;当标识符后不带冒号时,表示变量;伪指令前的标识符不加冒号。 指令助记符:表示不同操作的指令,可以是8086的指令助记符,也可以是伪指令。 操作数: 指令执行的对象。依指令的要求,可能有一个、两个或者没有。 注解:该项可有可无,是为源程序所加的注解,用于提高程序的可读性。,热能与动力工程,一、常量、变量和标号,常量表示一个固定的数值 变量实质上是指内存单元的数据 名字(变量名或子程序名等)和标号具有逻辑地址和类型的属性,热能与动力工程,1、常量,常数:由各种进制表示的数值。默认为十进制。可用伪指令.RADIX改变。.RADIX n;n为216间的数值 字符串:用单引号或双引号括

9、起来的单个或多个字符,其数值是每个字符对应的ASCII码。 符号常量:用标识符表达一个数值。符号名 EQU 数值表达式符号名 EQU 符号名 数值表达式EQU不能重复定义符号名,“”则允许。 数值表达式:由运算符连接的各种常量所构成的表达式。算术运算符:、*、/、MOD逻辑运算符:AND、OR、XOR、NOT移位运算符:SHL、SHR关系运算符:EQ、NE、GT、LT、GE、LE,热能与动力工程,2、变量,变量的定义: 变量名 伪指令 初值表 变量名表示初值表首元素的逻辑地址。可以没有变量名。 初值表是用逗号(,)分割的参数,由常量或“?”组成。 多个存储单元如果初值相同,可用DUP操作符定义

10、。重复次数 DUP (重复参数) 变量定义伪指令:DB、DW、DD、DF、DQ、DT。 字符串的定义要用DB。 可以用定位伪指令控制数据或指令的偏移地址。ORG 参数;由参数指定的偏移地址开始存放数据或指令EVEN ;由偶地址开始存放数据或指令ALIGN n ;由n的整数倍地址开始存放数据或指令符号“$”表示当前的偏移地址,热能与动力工程,3、标号,是某条指令所存放单元的符号地址,只能在代码段中。 与变量类似 有NEAR和FAR2种类型,热能与动力工程,二、运算符和表达式 在表达式中,运算符充当着重要的角色。8086宏汇编有算术运算符、逻辑运算符、关系运算符、数值回送操作符和属性操作符共5种。

11、 数值回送(Value_returning)操作符可以把一些特征或存储器地址的一部分作为数值回送。共有5个:SEG(求段基值)、OFFSET(求偏移量)、TYPE(求变量类型)、LENGTH(求字节数)和SIZE(求字节数)。其中LENGTH和SIZE只对数据存储器地址操作数有效。 属性操作符可以用来建立和临时改变变量或标号的类型以及存储器操作数的存储单元类型,而忽略当前的属性。共有6个:PTR、段属性前缀、SHORT、THIS、HIGH和LOW。,热能与动力工程,3.4.3,一)、算术运算符及移位运算符 1. *,/,MOD,SHL,SHR 形式:数据1 * 数据2或数据1 / 数据2 *

12、与 /是一般乘除法。 形式:数据1 MOD 数据2 其值为数据1/数据2的余数。 形式:数据1 SHL 数据2 其值为数据1左移数据2位的值。 形式:数据1 SHR 数据2 其值为数据1右移数据2位的值。,热能与动力工程,3.4.3,2. +,- +,-为一般的加、减法。 算术运算符应用于数字数据,结果也是数字。 当算术运算符应用于存储器即地址数据时,其规则就更加严格:只有当结果有明确的、有意义的物理解释时,这些运算才有效的。 二)、关系运算符 形式:数据1 EQ 数据2 判断数据1 等于 数据2? 形式:数据1 NE 数据2 判断数据1 不等于 数据2?,热能与动力工程,3.4.3,形式:数

13、据1 LT 数据2 判断数据1 小于 数据2? 形式:数据1 LE 数据2 判断数据1 小于等于 数据2? 形式:数据1 GT 数据2 判断数据1 大于 数据2? 形式:数据1 GE 数据2 判断数据1 大于等于 数据2? 关系运算符的两个数据,或者都是 数字的,或 者是同一段的存储器地址。,热能与动力工程,伪指令,伪指令用来对汇编程序进行控制,对程序中的数据实现条件转移、列表、存储空间分配等处理,其格式和汇编指令一样,但一般不产生目的代码,即不直接命令CPU去执行什么操作。 亦即它不像机器指令那样是在程序运行期间由计算机来执行的,而是在汇编程序对源程序汇编期间由汇编程序处理的操作。,热能与动

14、力工程,定义数据伪指令 符号定义伪指令 段定义伪指令 设定段寄存器伪指令 定义过程的伪指令 宏指令 ORG伪指令 汇编结束伪指令END,热能与动力工程,定义数据伪指令 符号定义伪指令 段定义伪指令 设定段寄存器伪指令 定义过程的伪指令 宏指令 ORG伪指令 汇编结束伪指令END,热能与动力工程,定义数据伪指令 该类伪指令用来定义存贮空间及其所存数据的长度。 DB:定义字节,即每个数据是1个字节。 DW:定义字,即每个数据占1个字(2个字节)。 DD:定义双字,即每个数据占2个字。低字部分在低地址,高字部分在高地址。 DQ:定义4字长,即每个数据占4个字。 DT:定义10个字节长,用于压缩式十进

15、制数据。 例如:DATA1 DB 10H,6,78H,100 表示从DATA1单元开始连续存放10H,6,78H,100,共占4个字节地址。,热能与动力工程,定义数据伪指令 DATA1DB20H DATA2DW0240H,1000H DATA3DB(-1*3),(15/5) DATA4DD12345H DATA5DB0123 DATA6DWAB,C,D DATA7DB? DATA8DD? DATA9DB5DUP(00) DATA10DW3DUP(?),热能与动力工程,定义数据伪指令 符号定义伪指令 段定义伪指令 设定段寄存器伪指令 定义过程的伪指令 宏指令 ORG伪指令 汇编结束伪指令END,热能与动力工程,符号定义伪指令 EQU伪指令给符号定义一个值。在程序中,凡是出现该符号的地方,汇编时均用其值代替,如: COUNTEQU100;COUNT代替常数100 SUMEQU30*25;SUM代替数值表达式 CEQUCX;C代替寄存器CX MEQUMOV;M代替指令助记符MOV 需要注意的是,一个符号一经EQU伪指令赋值后,在整个程序中,不允许再对同一符号重新赋值。,热能与动力工程,定义数据伪指令 符号定义伪指令 段定义伪指令 设定段寄存器伪指令 定义过程的伪指令 宏指令 ORG伪指令 汇编结束伪指令

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号