微机原理与接口技术-第4章.ppt
《微机原理与接口技术-第4章.ppt》由会员分享,可在线阅读,更多相关《微机原理与接口技术-第4章.ppt(83页珍藏版)》请在三一办公上搜索。
1、1,第四章汇编语言,汇编语言基础汇编语言的指令与伪指令PC机汇编语言程序的基本结构汇编语言程序设计基本技术,2,汇编语言,汇编语言是面向机器的程序设计语言。因计算机而异汇编语言的一条可执行语句对应机器语言的一条指令。汇编语言比机器语言更易阅读、编写和修改。是面向编程人员的最低级语言。汇编语言能全面地反映计算机硬件的功能与特点。汇编语言编写的程序的优点是,运行速度快、能充分利用硬件资源、占用存储空间少。汇编语言广泛用于计算机系统的硬件操作程序和核心系统软件,是一切高级语言编译程序的开发工具。汇编语言程序开发周期长,对人员素质要求高。,3,高级语言,脱离了(微)处理器硬件,更符合人们的习惯。与(微
2、)处理器硬件无关,具有很好的通用性和可移植性。采用高级语言编程,具有比用汇编语言编程高得多的程序设计效率。高级语言是面向应用的语言。容易学习和使用。,4,汇编语言程序,汇编语言:用指令的助记符、符号地址、标号等符号书写程序的一种计算机语言。一般情况下,汇编语言程序的一条语句就是计算机的一条指令。汇编语言源程序:用汇编语言编写的程序(简称源程序)。.asm汇编:把源程序翻译成机器语言程序(目的程序)的过程。.obj汇编程序(assembler):完成汇编任务的程序。连接(LINK):将程序的各个组成部分结合成一整体的程序。.exe,5,汇编过程,(1)输入汇编语言的源文件。其扩展名为:.asm。
3、(2)用汇编程序把.asm源文件汇编成目标文件,其扩展名为.obj,(3)用连接程序(LINK)把目标文件.Obj,及所用到的库文件或其它目标文件转换成可执行文件.EXE。,6,基本汇编程序和宏汇编(Macro ASseMbler),汇编程序是将汇编语言源程序翻译成机器语言的程序。按用户要求自动分配存储区(包括程序区、数据区、堆栈区等);数制转换;计算常数表达式的值;对源程序进行语法检查,给出错误信息等功能。基本汇编程序。宏汇编(Macro ASseMbler):在基本汇编程序的基础上,允许将一组汇编语言语句序列定义为一条宏指令的汇编程序。,7,宏指令或宏命令,将一组汇编语言语句序列定义为一个
4、功能块,并赋予一个名字,其表示形式尤如一条计算机指令,并且在随后的汇编语言源程序中,可以象CPU的其它指令一样使用。宏指令或宏命令简称为“宏”MACRO。宏可以用与原来的计算机指令一样的符号。,8,宏汇编程序的主要功能,1)检查和编排源程序,2)对源程序中的宏指令进行展开,3)检查源程序中的语法错误,并给出出错信息,4)把源程序翻译成目标程序.obj,并产生源程序列表文件。.lst,9,连接程序(LINK),把目标文件.obj,及所用到的库文件或其它目标文件转换成可执行文件,.exe文件(IBM PC).exe文件为可执行文件,在DOS操作系统下,直接键入该文件名即开始执行。库文件:独立的函数
5、过程等文件。集成环境WAVE6000:将汇编,连接、调试、运行等集成在一个系统中。,10,汇编程序结构,汇编语言语句结构:标号:指令语句;注解 A1:MOV AX,1234H;立即数寻址汇编程序结构(8088MASM为例)数据段(扩展数据段)堆栈段 执行代码段 结束,11,最简单的汇编程序结构,code segment assume cs:codestart:mov ax,100h add ax,100h mov bx,axcode ends end start,最简单的汇编程序只有一个段,即代码段。完整的汇编程序可以有四个段组成,分别是代码段,堆栈段,数据段和扩展数据段。,12,一般汇编程序
6、结构,data segment a1 db 12h data endsexdata segment e1 dd 1234h exdata endsstack segment stack st dw 100h spoint equ 200hstack ends,code segment assume cs:code,ds:data,es:exdata,ss:stack start:mov ax,data mov ds,ax mov ax,exdata mov es,ax mov ax,stack mov ss,ax mov sp,spoint code ends end start,13,dos
7、汇编程序结束,MOV AH,4CH;DOS功能调用 INT 21H;返回DOS操作系统在DOS操作系统下运行程序的过程:输入运行程序名(.exe)文件,按返回键,开始运行。运行到程序结束时执行上面指令后,DOS重新获得控制权。实验系统没有DOS操作系统,为了防止系统崩溃,程序的最后一条为:JMP$;等待,14,汇编程序,汇编程序中一部分语句即为用助记符表示的计算机指令系统所组成,它经过汇编后成为计算机能执行的语句。另一部分语句不是由计算机指令组成。但它控制和指导汇编程序的工作过程。这类非计算机可直接执行的汇编语言指令称伪指令。伪指令中最值得提到的就是所谓的宏定义。,15,段定义伪指令,一个完整
8、的汇编语言源程序,通常有三个部分组成,即代码部分,数据部分和堆栈部分。8086/8088的数据部分还可进一步分为(基本)数据部分(DS)和扩展数据部分(ES)。段定义伪指令用于对它们进行定义。汇编时,按段生成浮动目标代码;连接时,将各模块中同名段进行组合。8088/8086中有四个段寄存器:CS,DS,ES,SS。,16,段定义伪指令的格式,段名 segment 定位类型 组合类型 类别名段名 ends其中,segment和ends 是段定义伪指令,表示段的起始和结束,必须联合使用。由 括起来的部分可有可无。省略号部分表示的是段主体部分。segment 前的段名必须有,而 ends前的段名可省
9、略。段名只是一个符号。,17,段定位类型,Byte:本段可以从任意一个字节边界起始。Word:本段必须从字的边界起始。Para:段基址的最低4位的二进制数值必须为全0。隐含为该类型。Page:段基址的最低8位的二进制数值必须为全0。,18,段类型说明,public:与其它同名段连接在一起,形成一个新的逻辑段 common:与其它的同名段具有相同的起始地址,重叠,按最大的分配空间。None:与其它段没有关系at expression:本段的起始地址为由 at expression计算出来的值。它不能用来指定代码段的段基址。stack:产生堆栈段,并把所有同名段连成一个新的逻辑段。Memory:表
10、示本段应被放置在所有其它段的前面(最高地址处)。第一个段作为memory段,其他段都作为common段,19,代码段定义伪指令,code segment public code;定义一个代码段 assume cs:code Start:code ends end start,20,数据段定义伪指令,DATA SEGMENNT M DB 2 DUP(0,0);定义两个两字节的单元,并赋初值 0,0 X DB 2 DUP(30H,2DUP(4);定义两个以字节为单元的空间,每个空间又定义为,1个字节单元,并赋初值3;和两次重复的2个字节单元,赋初值4。因此共定义了6个字节的存储空间。Y DW 10
11、0 DUP(?);定义100个字的单元。DATA ENDS,21,堆栈段,stack segment stack;定义一个堆栈段 dw 100dup(?)stack ends 定义一个堆栈段,并赋100字(200个字节)空间的。注意堆栈在存储器中的位置。,22,其它有关段的伪指令,assume 段寄存器名:段名,段寄存器名:段名8088/8086中,段寄存器名必须是CS,DS,ES 或SS之一。段名必须是用 segment/ends伪指令定义过的段名。本伪指令的功能是将定义的段与段寄存器关联起来。在assume语句中,对于CS段寄存器,它不仅把相应的段分配给CS寄存器,还由操作系统直接将段基址
12、装入到CS寄存器中。对于其它段寄存器(DS,ES,SS),则是指定把某个段分配给哪一个寄存器,而没有将段基址装入到相应的段基址中,因此,要在程序中对DS,ES,SS赋值。程序中不必也不能对CS寄存器赋值,23,程序结束标志伪指令:END,END 标号 END表示程序结束。其中,标号用来告诉操作系统,本程序开始执行的起始地址。若有多个程序模块,连接时,只有主模块的END要带标号。其它仅用END,不带标号。汇编程序应尽量按照程序规定的格式编写。,24,等值语句伪指令,等值语句是为常量、变量、表达式等定义的符号名,它并不分配存储单元,换句话说等值语句定义的是一个常数值。语句格式:名字(符号)EQU
13、表达式 完成操作:把 EQU右边表达式的值赋给其左边的名字(符号)。表达式可以是常数、数值表达式、地址表达式、变量、标号名或助记符等。EQU 语句左边的符号名不能使用已定义过的符号名。,25,等值语句伪指令,data segment a1 db 12hb1 equ a1c1 equ 12h+34one=1close=0night=1d1=c1VAR1 EQU BP-10 data ends,code segment assume cs:code,ds:data start:mov ax,data mov ds,ax mov bp,14 mov ax,var1 nop code ends end
14、 start,26,等值语句伪指令,符号名以字母开头,可以包括字母、数字、下划线等。汇编语言中有一些保留的关键词,不能用作符号名。等值语句最简单的用法是定义常数。,27,数据定义伪指令,数据定义伪指令用于定义符号的数据类型,并且可以指明元素个数,在各分段中的相对位置,以及数据的初值等属性。它不仅定义符号,并且还分配存储单元。因此定义的是变量。数据定义语句格式:变量名 数据定义伪指令 表达式1,表达式2,;注释定义数据类型有字节变量、字变量、双字变量、字符串变量、8个字节和10个字节的变量等。,28,DB 伪指令,以字节为单位分配或保留若干个连续存储单元。如果定义的数据是字符串,则字符串中字符的
15、个数要小于255个。字符串用引号括起来,每一个字符分配一个字节的存储单元。按照地址递增顺序依次分配。DATA1 DB 15,10;定义两个字节单元,并赋初值15和10(0fh,0ah)CHAR DB HELLO;定义一个5个字节的字符串,并赋初值 char db abcde,ABCDE,1,2,3,4,1,2,3,4,29,DW 伪指令,以字(两个字节)为单位分配或保留若干连续存储单元。对一个字来说,低位字节存放在低地址中,高位字节在高地址中。DATA2 DW 4H,3010H;定义两个字单元,并赋初值 0004H,3010HDATA3 DW 2 DUP(4888H);定义两次重复的字单元,并
16、赋初值 4888H。CHAR DW 2 DUP(4000H,5000H)ASCII DW A,AB,ABCD,30,DD 伪指令,以双字(4个字节)为单位分配或保留若干个连续存储单元。同样,最高字节在内存的最高地址,依次存储。DDATA2 DD 4H,3010H;定义两个双字单元,并赋初值。00000004H,00003010H DDATA DD 0,0,?,?,31,DQ、DT 伪指令,DQ:以4个字(8个字节)为单位分配或保留若干连续存储单元。DT:以5个字(10个字节)为单位来定义或分配若干个连续的存储单元。CHAR DQ ABCDEFGH,78HCHAR DB ABCDEFGH,78H
17、,32,data segmenta db 10h,2 dup(0EEH),2 dup(?)db 2 dup(30h,0afh)str dbabcde,hellow dw 0abcdh,2345h,2 dup(8765h)qq dq 012345678hdata ends,code segment assume cs:code,ds:datastart:mov ax,data mov ds,ax nop nopcode ends end start,33,过程定义伪指令,专门的程序块称为过程,也称为子程序。在需要的时候通过调用指令(CALL)调用。在汇编语言中,过程用过程定义伪指令来定义和实现。
18、其语法为:过程名 PROC 类型属性(FAR/NEAR)过程名 ENDP过程名是一个标号,也是过程入口的符号地址,在程序中用此名调用。PROC/ENDP是过程定义伪指令。表示过程的开始和结束。在同一段内为NEAR,不同段内为FAR。,34,其它伪指令语句,1)NAME 名字:在程序开始时,为模块命名2)TITLE 正文:在列表文件中打印出标题,正文最多为60字符。3)对准伪指令(1)EVEN:使下一个字节地址成为偶数。(2)ORG 常数表达式使下一个内存单元的地址成为该常数表达式的值。jt3,35,DATA SEGMENT D1 DB 56H(EVEN)D2 DW 7890HDATA ENDS
19、,ORG 1000H定位一新的起始地址。,对准伪指令,36,基数控制伪指令,汇编程序中默认的数的表达形式是十进制数,若无专门说明,汇编程序将程序中出现的数均看作是十进制数。若其它进制数用后缀注明,如二进制数用后缀B,十六进制数用H,八进制数用O或Q表示。十进制数也可用后缀D注明,伪指令:.RADIX 数值表达式用于改变默认的基数。它可为216 范围内的任一基数。例:.radix 16.radix 10 mov ax,1a mov ax,1a(h),37,PUBLIC 和EXTRN伪指令,PUBLIC 名字,名字,EXTRN 名字:类型,名字:类型,汇编程序可以分为几个程序模块,分别编写和汇编,
20、然后通过连接程序组成一个完整的程序。PUBLIC和EXTRN伪指令提供实现的方法。PUBLIC说明在本模块内或本段内定义的变量或过程,可被别的模块或段引用。EXTRN伪指令说明在本模块或段内用到的变量或过程,是在其它模块或段中定义的。jt4,38,public aaa,extrn bbb,data segmentdata endscode segment assume cs:code,ds:dataaaa:call bbb,39,取值运算符,OFFSET:得到一个标号或变量的偏移地址 SEG:得到一个标号或变量的段地址值;TYPE:如果是变量,得到它的类型值(DB为1,DW为2,DD为4,DQ
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 接口 技术
链接地址:https://www.31ppt.com/p-6047424.html