《汇编伪指令》PPT课件.ppt

上传人:牧羊曲112 文档编号:5541225 上传时间:2023-07-19 格式:PPT 页数:36 大小:1.96MB
返回 下载 相关 举报
《汇编伪指令》PPT课件.ppt_第1页
第1页 / 共36页
《汇编伪指令》PPT课件.ppt_第2页
第2页 / 共36页
《汇编伪指令》PPT课件.ppt_第3页
第3页 / 共36页
《汇编伪指令》PPT课件.ppt_第4页
第4页 / 共36页
《汇编伪指令》PPT课件.ppt_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《《汇编伪指令》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《汇编伪指令》PPT课件.ppt(36页珍藏版)》请在三一办公上搜索。

1、第5章汇编语言程序设计,学习重点:汇编语言程序的书写规则、语句基本格式及程序的分段结构。常用的伪指令语句的格式、功能及应用。顺序结构、分支结构、循环结构程序和子程序的基本结构和设计方法。常用DOS功能调用的方法,包括键盘输入、显示输出和系统时间的功能调用。,第5章 汇编语言程序设计,汇编语言的程序与语句,汇编语言的伪指令,汇编语言程序设计基础,中断服务程序设计,模块化程序设计,5.1 汇编语言的程序与语句,汇编语言程序的行,5.1 汇编语言的程序与语句,1、段定义的一般方法,定义段是通过“SEGMENTENDS伪操作来实现。,格式:段名 SEGMENT【定义类型】【组合类型】【类型名】。;指令

2、串或变量定义段名 ENDS,说明:段名的起名规则与标号的定义规则基本相同,SEGMENT 表示定义段的开始,ENDS表示定义段的结束。汇编语言中代码段、数据段、堆栈段和附加段都是用这种方法定义的,仅从结构上无法区别各段。因此可将用”SEGMENT.ENDS定义的段称为逻辑段。,功能:定义当前段的名字与具体内容,同时规定段在存储器中的定义要求以及与其他段之间的连接关系等。,5.1 汇编语言的程序与语句,硬件系统在读取指令时,自动到代码段中读取,读取数据时自动到数据段。那么CPU怎么知道哪个是代码段、哪个是数据段呢?指定段寄存器伪指令可以解决这个问题。,格式:ASSUME CS:段名,功能:建立逻

3、辑段与代码段寄存器CS之间的对应关系。,ASSUME 伪指令一般放在代码段的顶端,汇编系统会根据它的指示自动将代码段的段地址装入CS段寄存器中;而数据段、堆栈段和附加段则无此功能,需用MOV指令将段基址装入相应段寄存器中。,2、指定段寄存器伪指令,5.1 汇编语言的程序与语句,5.1 汇编语言的程序与语句,3、汇编语言源程序完整段结构,NAME 模块名EQU 定义语句;通常这部分可以不写数据段名 SEGMENT;段名都由咱们自己定义,可允许存在多个段.数据段名 ENDS代码段名 SEGMENTASSUME CS:CODE,DS:DATA.START:.CODE ENDS;结束标志不可缺省END

4、 START,5.1 汇编语言的程序与语句,4、简化的段定义方法,5.1 汇编语言的程序与语句,汇编段结构补充,MODEL:内存模式,SMALL:独立代码段,独立数据段,DATA:定义数据段DS;STACK:定义堆栈段SS,CODE:定义代码段CS;EXTRA:定义附加段ES,STARTUP:程序开始;EXIT:返回,5.1 汇编语言的程序与语句,例如:说明用SEGMENT/ENDS ASSUME 来定义段。,DATA SEGMENT;数据段XX DB?DATA ENDS;数据段结束EXTRA SEGMENT;附加段RSS1 DW?.EXTRA ENDS;结束STACK SEGMENT;堆栈段

5、DW 50 DUP().STACK ENDS;结束,CODE SEGMENT;代码段ASSUME CS:CODE,DS:DATAASSUME ES:EXTRA,SS:STACKSTART:MOV AX,DATA;装入段基址 MOV DS,AX MOV AX,EXTRA MOV ES,AX。CODE ENDS;结束END START,A,B,5.1 汇编语言的程序与语句,1、在一个代码段中,如果没有另外的ASSUME语句重新设置,原来设置的ASSUME语句一直有效。,2、每条ASSUME语句可设置1-6个段寄存器。,ASSUME语句来完成段分配时,要注意以下几点:,3、可用NOTHING删除以前

6、的设置例如:ASSUME ES:NOTHING 删除ES与某段的联系ASSUME NOTHING 删除全部6个段寄存器的设置。,4、段寄存器的装入:任何指令执行时都将用到CS、DS、ES、SS寄存器段基址才能形成真正的物理地址。在执行这些指令之前,必须先设置这些段寄存器的值,即段基址。,5.2 汇编语言的伪指令,1、表达式赋值伪操作EQU指令格式:符号名 EQU 表达式,功能:为常数或表达式取一个名字,即把常数的值赋给EQU左边的名字,供以后引用。表达式可以是常数,变量,标号,指令助记符,字符串等。,5.2.1符号定义伪指令,例如:CONST EQU 10H SUM EQU CONST+12

7、ADDR EQU 8003H NAME EQU CLASS.MOV CX,CONST;引用MOV DX,ADDR,本例中,两条执行性指令等价于:MOV CX,0010HMOV DX,8003H等值伪指令相当于C语言中的宏定义“#define,它主要用于定义外部设备地址。对调试程序很有益。,5.2 汇编语言的伪指令,5.2.1 符号定义伪指令,5.2 汇编语言的伪指令,1、变量定义伪指令指令格式:【变量名】数据定义符 操作数项表,功能:定义变量名并为变量分配存储单元,同时将初值赋给相应的存储单元。,5.2.2数据定义伪指令,说明:变量名的命名规则与标号的命名规则相同。其中,变量名是可选项,定义符

8、是必选项,用于说明操作数项的类型属性。,操作数项可以是常数、表达式、字符串和?,问号用于预留存储空间,当操作数项为字符串时,必须用单引号括起,且字符是以ASCII码形式存放在存储单元中的。,5.2 汇编语言的伪指令,常用的变量定义符如下:,DB:定义字节型变量,每个变量占1个字节的位置。DW:定义字型变量,每个变量占2个字节的位置。DD:定义双字型变量,每个变量占4个字节的位置。DQ:定义四字型变量,每个变量占8个字节的位置。DT:定义十字节型变量,每个变量占10个字节的位置。上述定义符中,前两个使用最多,其他很少使用。,5.2 汇编语言的伪指令,例如:X DB 20HY DW 4344HZ

9、DD 12345678HBUFF DB 1,2,3,4,5VABB DW?VARW DB abcdxyz123ARRAY DW 0,0,0,0,0,0本例中,X、Y、Z相当于高级语言中单个变量的定义,而BUFF、VABB、VARW、ARRAY相当于高级语言中数组的定义。即定义一个数据块。,A,B,使用变量时注意:一:最好按变量定义的类型使用,尽量避免在不同类型的变量和寄存器之间进行操作。二:变量在指令中的寻找方式为直接寻址,即出现在指令中的变量两个含义:确定的类型、确定的偏移地址。,5.2 汇编语言的伪指令,2、重复定义伪指令,上个例题中,ARRAY被赋了6个元素的数组,并且在定义同时还给它赋

10、了初值(6个0),如果数组的长度再大些,按上述方法定义就不太好了,为此,汇编系统专门设置了一条重复定义伪指令DUP.,指令格式:n DUP(操作数,),功能:对操作数项表的内容进行n次重复分配、定义及预置存储单元。,5.2 汇编语言的伪指令,重复定义伪指令,例如:BUF1 DW 6 DUP(0)BUF2 DW 10 DUP(?),20 DUP(7)ONE DB 10 DUP(5)TWO DB 2 DUP(10H,A,)STRING DB 3 DUP(TEST 0K)本例中BUF1预留了6个0,BUF2预留了10个空间,20个7,。TWO定义一个简单的二维数组,STRING重复3次“TEST 0

11、K!,5.2 汇编语言的伪指令,1、段定义伪指令指令格式:SEGMENT 和ENDS,功能:指出段名及段的各种属性,并指示段的起始位置和结束位置。,5.2.3 段定义伪指令,说明:上述指令格式中,SEGMENT和ENDS必须成对出现,段名是段的标示符,由用户自行指定。用来指示汇编程序为该段分配的存储单元的起始位置,其具有段地址和偏移地址两种属性。后面定位类型、组合类型不做要求。,5.2 汇编语言的伪指令,A,B,2、段定义说明伪指令ASSUME 见上节内容3、组定义伪指令GROUP格式:组名:GROUP【段名,段名,。】功能:用于将程序中若干个不同名的段集合成一组,使它们都装在一个物理段中,并

12、赋予这个段集合一个组名。,说明:同一段组内的段的数目不受限制,且同一段组内各段的组合类型和类别可以不同,但段组的总字节数不能超过64KB。当程序在组内不同类型的段间进行时,可共用一个段寄存器,组内各段间的转移视为段内转移。,5.2 汇编语言的伪指令,功能:格式1:可直接将表达式的值0-65535)置入地址计数器,格式2:将语句ORG前程序计数器的现行值$加上表达式的值后置入地址地址计数器。,5.2 汇编语言的伪指令,例如:段定义伪指令示例,DATA SEGMENT ORG 10H;在数据段10H偏移地址处开始存放20H,30HX DB 20H,30HORG$+5;在数据段17H偏移地址处开始存

13、放OKY DB OK,5.2 汇编语言的伪指令,5.2.4过程定义伪指令 过程也称子程序,在程序中任何地方都可以调用它。控制从主程序转移到过程被称为“调用”。过程结束后返回主程序。使用过程可以简化源程序,并节省存储空间及程序设计所花的时间,使程序结构简洁清晰、减少编程工作量。,过程定义伪指令格式:,5.2 汇编语言的伪指令,过程定义伪指令,过程名是过程入口的符号地址,过程也有3种属性:段,偏移量,类型。过程属性由过程定义伪指令指定,为NEAR或FAR。NEAR属性指该过程是一个段内调用,FAR则指段间的调用,如果不指明过程的属性,则汇编程序默认其属性为NEAR。,汇编语言中,用CALL指令来调

14、用过程,用过程中RET指令结束过程并返回到CALL指令的下一条指令。一个过程可以有多个RET指令,但至少要执行到一个RET指令。,5.2 汇编语言的伪指令,过程定义伪指令,过程调用指令格式如下:,CALL 过程名,说明:一个段中可以有多个过程,且过程的定义和调用均可以嵌套,一个过程中可以包括多个过程定义,堆栈的大小决定嵌套的深度,但过程不允许交叉。另外过程还可以调用过程自身。,5.2 汇编语言的伪指令,例如:过程定义伪指令示例SEGX SEGMENT.SUBT PROC FAR;调用程序过程名SUBT.RETSUBT ENDPCALL FAR PTR SUBT;第一次调用过程.SEGX END

15、SSEGY SEGMENT.CALL FAR PTR SUBT;第二次调用过程.SEGY ENDS,Cycle Diagram,TEXT,TEXT,TEXT,TEXT,TEXT,TEXT,Diagram,YOUR TITLE,YOUR TITLE,YOUR TITLE,welcome to use these powerpoint templates,New Content design,10 years experience,welcome to use these powerpoint templates,New Content design,10 years experience,wel

16、come to use these powerpoint templates,New Content design,10 years experience,Diagram,ADD YOUR TITLE,Diagram,Diagram,welcome to use these powerpoint templates,New Content design,10 years experience,welcome to use these powerpoint templates,New Content design,10 years experience,welcome to use these

17、powerpoint templates,New Content design,10 years experience,welcome to use these powerpoint templates,New Content design,10 years experience,Diagram,welcome to use these powerpoint templates,New Content design,10 years experience,welcome to use these powerpoint templates,New Content design,10 years

18、experience,welcome to use these powerpoint templates,New Content design,10 years experience,welcome to use these powerpoint templates,New Content design,10 years experience,welcome to use these powerpoint templates,welcome to use these powerpoint templates,Diagram,Diagram,例如:段定义伪指令示例,DATA SEGMENT OR

19、G 10H;在数据段10H偏移地址处开始存放20H,30HX DB 20H,30HORG$+5;在数据段17H偏移地址处开始存放OKY DB OK,welcome to use these powerpoint templates,New Content design,10 years experience,welcome to use these powerpoint templates,New Content design,10 years experience,Diagram,welcome to use these powerpoint templates,New Content design,10 years experience,welcome to use these powerpoint templates,New Content design,10 years experience,welcome to use these powerpoint templates,New Content design,10 years experience,welcome to use these powerpoint templates,New Content design,10 years experience,Thank You!,请尊重作者劳动成果转载请注明出处:,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号