《ibmpc80x86汇编语言程序设计》ppt电子课件教案第四章汇编语言程序结构

上传人:aa****6 文档编号:54722804 上传时间:2018-09-18 格式:PPT 页数:58 大小:158KB
返回 下载 相关 举报
《ibmpc80x86汇编语言程序设计》ppt电子课件教案第四章汇编语言程序结构_第1页
第1页 / 共58页
《ibmpc80x86汇编语言程序设计》ppt电子课件教案第四章汇编语言程序结构_第2页
第2页 / 共58页
《ibmpc80x86汇编语言程序设计》ppt电子课件教案第四章汇编语言程序结构_第3页
第3页 / 共58页
《ibmpc80x86汇编语言程序设计》ppt电子课件教案第四章汇编语言程序结构_第4页
第4页 / 共58页
《ibmpc80x86汇编语言程序设计》ppt电子课件教案第四章汇编语言程序结构_第5页
第5页 / 共58页
点击查看更多>>
资源描述

《《ibmpc80x86汇编语言程序设计》ppt电子课件教案第四章汇编语言程序结构》由会员分享,可在线阅读,更多相关《《ibmpc80x86汇编语言程序设计》ppt电子课件教案第四章汇编语言程序结构(58页珍藏版)》请在金锄头文库上搜索。

1、第四章 汇编语言程序结构,4.1汇编语言语句格式 4.2 伪指令 4.3汇编语言源程序结构 4.4汇编语言的上机过程,4.1汇编语言的语句格式,一、语句种类,汇编语言程序由有序的汇编语言语句组成。,汇编语句,指令语句 伪指令语句,指令语句:完成一定操作功能,能够翻译成机器代码的语句,即指令语句与机器指令有对应关系。,伪指令语句(指示性语句):为汇编程序在翻译汇编语言源程序提供有关信息,如分配存储单元,给符号赋值、段的定义等,它不翻译成机器代码。,二、语句格式,指令语句和伪指令语句的格式类似,格式如下:名字 操作码 操作数/参数 ;注释 其中: 方括号 的项是可选项,可以省略。 一般每行为一个语

2、句,也可用&符号紧接回车之后,表示该行内容的继续。 每行语句长128字符。,1、名字,名字:由用户定义的标识符,非数字开头的131个字符,分标号和变量两种。,标号:在代码段中定义,后跟冒号:,位于指令语句左边 。标号有段、偏移及类型三种属性。 段属性:定义标号的段其始地址,标号的段属性总是在CS寄存器中。 偏移地址:代表从代码段起始地址到标号位置之间的字节数。 类型属性:分NEAR和FAR两类,NEAR表示在同一代码段内引用,FAR表示在段外引用。,变量:是位于伪指令或宏指令左边的名字,其后不带冒号,变量可以在任何段出现。 变量也有段、偏移和类型三种属性 段属性:变量所代表数据单元的段地址(D

3、S、ES或SS)。 偏移属性:变量所代表数据单元的段内偏移地址。 类型属性:数据变量来说是指该变量对应的数据的字节长度。如字节、字、双字。,标号是一条指令的符号地址,它代表指令目标代码的第一个字节地址。在一个程序段或子程序入口处通常设置一个标号,因此,标号可以作为转移(JMP)或调用(CALL)指令的操作数。而用于伪指令中的名字,可以是变量名、段名、过程名、宏名等,一般不作为JMP和CALL指令的操作数。,同一个程序中,一个标号或变量只能定义一次,不能重复定义。标号通常用作转移指令的地址,变量通常提供操作数的首地址。,指令语句:例 LOP: MOV AX,0000H ;将AX清零,标号,操作码

4、,操作数,注释,伪指令语句:例 BUF1 DB 34H ;定义变量BUF1, 初值34H。,变量名,伪指令符,操作数,注释,2、操作项,可以是指令、伪指令或宏指令的助记符。,3、操作数项,可以用常数、寄存器名、存储器操作数、标号、变量或表达式表示。,常数,8086/8088宏汇编中允许如下几种常数:,二、八、十、十六进制常数 十进制科学表示法表示的实数,如:12.35E-2 字符串常数,如AB值是4142H ABCD 41H,42H,43H,44H,存储器操作数,寻址方式表示的存储器操作数,如:BX、SI+2等。 标号 ,如:JMP NEXT1 变量:指存放在内存单元中的变化的数据。,表达式(

5、分为数值表达式和地址表达式两种),表达式是由常数、寄存器、标号、变量和操作符组合而成。汇编语言循序使用的操作符有:,算术操作符 有+、-、*、/和MOD(取余),算术运算符可用于数值表达式和地址表达式中, 在使用地址表达式时要注意地址表达式的物理意义。,例如: MOV AL,10*5+4 ;数值表达式 MOV SI,OFFSET BUF+12 ;地址表达式 MOV CX,NUM2-NUM1 ;两地址差送CX MOV CX,NUM2+NUM1 ;无意义,逻辑操作符,有AND、OR、NOT和XOR四个。只用于数值表达式中。 例如:AND AL,78H AND 0FH 等价于:AND AL,08HO

6、R AL,3 AND 47H 等价于:OR AL,3,关系运算符,有EQ(相等),GT(大于), NE(不等) NE(不等), LE(小于或等于),GE(大于或等于),注:关系操作符的两个操作数必须是数字或同一段内的地址,运算结果也为逻辑值,结果为真,用FFFFH表示,结果为假,用0000表示。 如: MOV BX,32 EQ 54 等价于:MOV BX,66 GT 44 等价于:MOV BX,(val LT 5)AND 20) OR(val GT 5)AND 30),若val5时, 结果:,MOV BX,0,MOV BX,FFFFH,MOV BX,20,MOV BX,30,4.2、伪指令,汇

7、编的一些伪指令用于定义符号,定义数据,分配内存单元,伪指令只向汇编语言提供有关信息,不产生机器代码。,一、符号定义伪指令,1、等值伪指令EQU 格式:符号名 EQU 表达式 功能:给符号名定义一个值、别的符号名、表达式 或助记符。,EQU不能给一个符号重复定义,2、等号伪指令 =,与EQU类似,但在同一个程序中,=可以对一个符号重新定义。,3、解除定义伪指令PURGE 格式:PURGE符号1,符号2,符号N 功能:解除指定符号的定义,解除符号定义后,可用EQU重新定义。,例: X1 EQU 8PURGE X1X1 EQU 48,二、数据定义伪指令,格式:变量 操作符 操作数 ;注释 功能:给变

8、量定义存储单元。 操作符有:DB ,DW,DD,DF,DQ,DT 注:用DT定义的十进制数要加后缀D,否则默认为BCD数。,1、操作数是常数或表达式,例:DATA数据段中定义了字节、字和双字变量,DATA SEGMENT VAR1 DB 10H VAR2 DB 10,11,12DB 0FFH,0 BUF1 DW 1234H,5678H BUF2 DD 12345678H DATA ENDS,2、操作数是字符串,当定义的字符串中多于2个字符时,只能用DB定义。 如: STR1 DW ABCD ,注: STR2 DB ABSTR2 DW BASTR2 DW AB,等价,3、操作数是?,此时,只分配

9、存储单元,不定义初值。,例: NUM1 DB 5,?,7NUM2 DW ?,?,BUF2 DW 1,2,3 DUP(6) 等价于:BUF2 DW 1,2,6,6,6 ARB1 DB 10 DUP(2) ARB2 DB 10H DUP(ABC) ARB3 DW 20 DUP(?),DUP操作符允许嵌套,例:BUF3 DB 2 DUP(5,6,3 DUP(7),5,6,7,7,7,等价于:BUF3 DB 5,6,7,7,7,5,6,7,7,7,5、变量(包括标号)定义后,可以完成分析运算和合成运算,分析操作符 也叫分解操作符,从变量和标号中分解出某些属性值。 分析操作符有:TYPE 、LENGTH

10、、SIZE、OFFSET、SEG。,TYPE 计算变量的类型值或标号的类型值 用DB,DW,DD,DF,DQ,DT定义的变量对应的类型值分别是1,2,4,5,8,10;NEAR和FAR对应的类型值分别为-1、-2,LENGTH 变量 对于用DUP定义的变量,计算DUP前面的重复次数,其它变量的LENGTH值为1。 SIZE 变量 计算分配给该变量的字节数,其值为TYPE和LENGTH的乘积。,OFFSET 变量或标号 计算变量或标号的段内偏移地址。 如:MOV SI,OFFSET TAB1 功能是将TAB1的偏移地址送入SI寄存器中,等价于 LEA SI,TAB1,SEG 变量或标号 计算变量

11、或标号的段地址。 如:MOV AX,SEG TAB1功能是将TAB1的段地址送入AX寄存中。,合成操作符(PTR和THIS) 也叫属性操作符,用来改变原有变量或标号的类型。,例:书4-8, PTR 表达式 ;表达式一般是变量/标号,对于变量,可指定类型为 BYTE/WORD/DWORD 对于标号,可指定类型为NEAR(段内)、FAR(段间),例: DA1 DW 345FHMOV AL,DA1; MOV AL,BYTE PTR DA1 ;AL=34H,例: 指令 MOV BX,5 在不能确定是字传送还是字节传送,必须用PTR说明。MOV BYTE PTRBX,5 ;字节传送MOV WORD PT

12、RBX,5 ;字传送, ;类型不匹配,4、操作数用复制操作符DUP时,表示操作数重复若干次。,例:BUF1 DB 2(,) 等价于:BUF1 DB 2,3,4,2,3,4,可以为连续的存储单元提供重复数据。 格式如下:,变量名,DBDWDD,表达式1 DUP(表达式2),其中,表达式1是重复的次数,表达式2是重复数据的内容。,例: 对于如下定义:DA1 DW 345FHDA2 EQU BYTE PTR DA1DA3 EQU DA2+1,利用PTR还可与EQU一起定义与右边表达式类型不同,的新变量/标号,但不分配存储单元,新变量/标号的类型与表达式类型相同。 如: TAB1 DW 78E2HTA

13、B2 EQU BYTE PTR TAB1TAB3 EQU TAB2+1,THIS 与PTR类似,可以给变量或标号定义另一属性或类型。(但不分配新的存储单元)。一般与EQU或=伪指令连用,产生标号或变量。偏移地址是该语句所在位置的下一个可用存储单元的地址。,VAR1 EQU THIS BYTE VAR2 DW 6918H 这样VAR1和VAR2有相同的段属性和寻址空间。MOV AL,VAR1 ; AL=18H MOV BX, VAR2; BX=6918H,BYTE_VAR EQU THIS BYTE ;定义BYTE_VAR WORD_VAR DW 6918H 类型为字节MOV AL,BYTE_VAR ;AL=18HMOV BX, WORD_VAR ;BX=6918H AGAIN EQU THIS FAR ;定义标号MOV AX,SI AGAIN有 FAR属性JMP AGAIN,6、变量的类型,用伪指令定义的变量是有类型的,在指令中使用变量做操作数时,要操作数类型的匹配。 如:有如下数据定义:OPR1 DB 23H,4AHOPR2 DW 127FH,25A6H 则:MOV AX,OPR1 MOV BL,OPR2 应使用合成操作符PTR:MOV AX,WORD PTR OPR1; AX=4A23HMOV BL,BYTE PTR OPR2 ; BL=7FH,

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

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

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