微机原理第4章汇编语言程序设计ppt培训课件

上传人:aa****6 文档编号:57218111 上传时间:2018-10-20 格式:PPT 页数:164 大小:1.05MB
返回 下载 相关 举报
微机原理第4章汇编语言程序设计ppt培训课件_第1页
第1页 / 共164页
微机原理第4章汇编语言程序设计ppt培训课件_第2页
第2页 / 共164页
微机原理第4章汇编语言程序设计ppt培训课件_第3页
第3页 / 共164页
微机原理第4章汇编语言程序设计ppt培训课件_第4页
第4页 / 共164页
微机原理第4章汇编语言程序设计ppt培训课件_第5页
第5页 / 共164页
点击查看更多>>
资源描述

《微机原理第4章汇编语言程序设计ppt培训课件》由会员分享,可在线阅读,更多相关《微机原理第4章汇编语言程序设计ppt培训课件(164页珍藏版)》请在金锄头文库上搜索。

1、 汇编语言程序的格式, 汇编语言程序的上机过程, 伪指令语句, 汇编语言程序设计的基本方法, 了解汇编语言程序的基本格式,及其上机过程。, 熟练掌握数据定义伪指令、段定义伪指令、符号定义伪指令、过程定义伪指令。, 熟练掌握汇编语言程序设计的一般步骤以及顺序程序、分支程序、循环程序、子程序设计的方法。,4.1 汇编语言格式与语句行,4.1.1 汇编语言的基本概念,1 机器语言与汇编语言(Machine Language and Assembly Language),由二进制代码0,1表示的指令称为机器指令,相应的程序称为机器语言程序 。,用指令助记符表示的指令称为汇编语言指令,对应的程序称为汇编

2、语言程序。,例4-1 将4位二进制数转换为ASCII码字符。当数在0000B-1001B时,对应的ASCII码为09;当数在1010B1111B时,对应的ASCII码为AF。设待转换的数据已在累加器AL中(低4位)。,编制的机器语言程序与汇编语言程序如下表所示。,2汇编语言与高级语言(Assembly Language and Computer-independent Language),汇编语言是一种依赖于计算机微处理器的语言 汇编语言一般不具有通用性和可移植性 进行汇编语言程序设计必须熟悉机器的硬件资 源和软件资源,高级语言是面向过程的语言 高级语言具有很好的通用性和可移植性,学习汇编语言

3、的必要性,利用汇编语言可以设计出效率极高的核心底层程序。 用汇编语言编写的程序一般比用高级语言编写的程序执行得快,且所占内存较少。 汇编语言程序能够直接有效地利用机器硬件资源。 学习汇编语言对于理解和掌握计算机硬件组成及工作原理是十分重要的。,4.1.2 汇编语言源程序的组成,1汇编语言源程序的结构(Program Structure),例4-2 完整的汇编语言源程序示例。,NAME HEXTOASC ;* DATA SEGMENT ; 数据段定义开始 HEX DB 5AH ASC DB 2 DUP(?) DATA ENDS ; 数据段定义结束 ;*,;* STACK SEGMENT ; 堆栈

4、段定义开始 DB 256 DUP(S) TOP EQU $-STACK STACK ENDS ; 堆栈段定义结束 ;*,;* CODE SEGMENT ; 代码段定义开始 ASSUME CS:CODE, DS:DATA, SS:STACK START: MOV AX, DATA ; 主程序开始,MOV DS, AX MOV AX, STACK MOV SS, AX MOV SP, TOP MOV BX, OFFSET ASC MOV AL, HEX MOV AH, AL MOV CL, 4 SHR AL, CL CALL NEAR PTR CONVERT HLT ; 主程序结束,CONVERT

5、 PROC ; 过程(子程序)定义开始 AND AL,0FH CMP AL,10 JB NUM ADD AL,7 NUM: ADD AL, 0 RET CONVERT ENDP ; 过程(子程序)定义结束 CODE ENDS ; 代码段定义结束 ;* END START ; 程序结束,要点总结:,汇编语言源程序由段结构组成。,一个段由 “SEGMENT”(段定义开始)和“ENDS”(段定义结束)语句来定义。,每个段都有唯一的段名,前后一致。,不同段的段名不能相同。,数据段、堆栈段和代码段的作用各不相同。,各个段都由一系列语句组成。,语句包括指令语句和伪指令语句。,2汇编语言的语句格式(Stat

6、ement Formats),汇编语言程序的每行语句由14个部分组成。指令语句和伪指令语句在格式上稍有区别,指令语句的标号后有冒号“:”,而伪指令语句的标号后则没有冒号。,指令语句的格式为,LABEL: OPERATION OPERAND ;COMMENT 标号域 指令助记符域 操作数域 注释域,伪指令语句的格式为,LABEL OPERATION OPERAND ;COMMENT 标号域 伪指令助记符域 操作数域 注释域, 一行最多可有132个字符, 指令助记符前面还可以有 前缀 。, 汇编语言程序语句中的四项,均可以用大写、小写或混合编写。, 语句的各部分之间至少用一个空格分开,3.标号(L

7、abel) (含数据变量标号和程序位置标号),(1) 数据变量标号的三种属性, 段值:即所在段的段地址。, 偏移量:即数据变量所在位置的地址与其段地址之差值。, 类型:指该数据变量是字节、字还是双字。,(2) 程序位置标号的两种属性, NEAR段内调用或转移标号。, FAR段间调用或转移标号。,4. 操作数域(Operand Fields),(1) 常数:二进制、八进制、十进制、十六进制或ASCII码字符串。,(2) 寄存器名、标号、变量,指令: MOV AL, HEX 中,AL为寄存器名,HEX为变量名。,(3) 表达式:由运算符连接起来的式子叫表达式,按一定的规则对表达式进行运算后得到一个

8、数值或一个地址。, 表达式可分为算术表达式、逻辑表达式、关系运算表达式、分析运算表达式和合成运算表达式。,例如:5*8+30, 128/100,206 MOD 128 等算术表达式。,逻辑表达式的结果可能为8位或16位二进制数,视参加运算的数的字长而定。,逻辑运算指令中可以包含有逻辑表达式,如指令 AND AL, 10101010B AND 0FH,左边第一个AND为逻辑运算指令,第二个AND为逻辑运算符,10101010B AND 0FH 为逻辑表达式,其结果在汇编时即已确定,为00001010B,故上述指令等价于 AND AL, 00001010B,例如:指令 MOV BX, 5 GT 3

9、 等价于 MOV BX, 0FFFFH,存储器操作数表示变量、符号地址、存储单元等与存储器地址有关的量。,分析运算表达式把存储器操作数分解为几个部分,如分解出段值、偏移量、类型等; 合成运算表达式则把这些组成部分综合为存储器操作数。,4.2 伪指令(指示性语句),指令语句:汇编程序把它们翻译成机器代码,命令8086执行对应操作。,伪指令语句:汇编程序并不把它们翻译成机器代码,只是用来指示、引导汇编程序在汇编时做一些操作,它本身不占用存储单元。,* 程序分段及存储器分配 * 变量定义及存储器申请 * 过程定义 * 符号定义 * 程序模块定义与通信 * 宏定义及宏调用 * 条件汇编 * 格式控制,

10、列表及其他功能,伪指令主要分为下列几类:,4.2.1 段定义伪指令SEGMENT/ENDS,定义方式: 段名 SEGMENT定位方式组合方式类别名 语句1 语句2 段名 ENDS,LINK程序除完成段与段的联合操作以外,还把联合后得到的各个段互相衔接起来,段与段的衔接方式叫做定位方式,共4种。,(2) 定位方式, WORD (字):表示段从地址是一个最低位为0的二进制数开始。, PAGE(页):表示段从一个页的边界,即十六进制数表示地址时最低两位均为0处开始。, PARA (缺省):表示段从一个节的边界,即用十六进制数表示地址时最低位为0处开始。, BYTE (字节):表示段可从任一地址开始。

11、,BYTE XXXX XXXX XXXX XXXX XXXX B WORD XXXX XXXX XXXX XXXX XXX 0 B PARA XXXX XXXX XXXX XXXX 0 0 0 0 B PAGE XXXX XXXX XXXX 0 0 0 0 0 0 0 0 B X表示可取0或1,定位类型 起 始 地 址,(3) 组合方式,程序不同模块中具有相同性质的段,若使用同样的段名,则连接时就会把同名的段按照指定的方式组合起来,组合方式共有6种。,表示该段与其他模块的段没有任何关系,每段都有自己的基址。这是缺省方式。, NONE( 缺省)方式:, STACK方式:,连接时把所有STACK方

12、式的同名段连接成一个段 ,运行时就是SS的装入值,且栈指针SP指向该段的起始地址。, PUBLIC方式:,表示该段与其他模块中说明为PUBLIC方式的同名段互相组合成一个逻辑段,公用一个段址,运行时装入同一个物理段中。, MEMORY方式:,表示该段应定位在所有其他段的上面,若有多个段选用MEMORY,则除第一个之外,其余段均作为COMMON处理。, COMMON方式:,表示该段与其它模块中所有已说明为COMMON的同名段共享相同的存储区域,即具有相同的段起始地址,共享的长度为模块同名段中最大长度。,例:有A,B;C,A,B;A,C共7个段是3个模块中的段,用P,C,S分别代表PUBLIC,C

13、OMMON或STACK。组合成4个新段(见下图),新段的长度为被组合在一起的各段长度之和(用PUBLIC和STACK方式时),或是各段中最长段的长度(COMMON方式)。, AT方式:,表示该段按绝对地址定位,其段地址即为其后表达式的值,位移量为0。,连接程序的组合处理示意图,例: A SEGMENT FAT A B SEGMENT BAZ E C SEGMENT BAZ B D SEGMENT ZOU C E SEGMENT FAT D LINK 处理前 LINK 处理后,4.2.2 位置计数器$和定位伪指令ORG,汇编程序专门设置了一个表示当前位置的计数器,称位置计数器$。正常情况下,汇编程序每扫描一个字节,位置计数器的值便加1。,语句:TOP EQU $-STACK 含义:当前位置计数器的值$减去STACK代表的起始位置的值,然后把两者的差值赋予符号常量TOP。,语句:JMP $ 含义:程序跳转到本条指令执行。,格式:ORG 数据表达式,功能:把位置计数器的值设置为表达式的值。ORG后面的一条指令性语句或数据区定义命令即从指定的位置处进行汇编。,

展开阅读全文
相关资源
相关搜索

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

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