汇编语言程序设计-第三章-课件

上传人:F****n 文档编号:88051576 上传时间:2019-04-17 格式:PPT 页数:132 大小:1.05MB
返回 下载 相关 举报
汇编语言程序设计-第三章-课件_第1页
第1页 / 共132页
汇编语言程序设计-第三章-课件_第2页
第2页 / 共132页
汇编语言程序设计-第三章-课件_第3页
第3页 / 共132页
汇编语言程序设计-第三章-课件_第4页
第4页 / 共132页
汇编语言程序设计-第三章-课件_第5页
第5页 / 共132页
点击查看更多>>
资源描述

《汇编语言程序设计-第三章-课件》由会员分享,可在线阅读,更多相关《汇编语言程序设计-第三章-课件(132页珍藏版)》请在金锄头文库上搜索。

1、第三章 宏汇编语言,学习指导 一、学习目标与要求 正确而熟练地使用地址表达式和数值表达式 熟悉常用的机器指令的指令助记符、功能及使用格式 区别机器指令语句和伪指令语句 常用的伪指令功能、使用方法 5. 熟练掌握常用的DOS系统功能调用(1,2,9,10号调用),第三章 宏汇编语言,学习指导 二、学习重点 1.宏汇编语言中的表达式 (1) 符号常量 (2) 变量 (数据在主存中的存储示意图) (3) 地址表达式 (4) 属性定义算符 (PTR,跨段前缀) (5) 属性分离算符 (SEG, OFFSET),第三章 宏汇编语言,学习指导 二、学习重点 2.常用的机器指令语句 (1) 数据传送指令 (

2、2) 算术运算指令 (3) 位操作指令 要求掌握各指令的语法规定,功能,最常用指令对标志寄存器的影响。,第三章 宏汇编语言,学习指导 二、学习重点 3.常用的伪指令 (1) 数据定义伪指令 (2) 符号定义伪指令 (3) 段定义伪指令 (4) 假定伪指令 (5) 源程序结束伪指令 (6)汇编地址计数器$,第三章 宏汇编语言,学习指导 二、学习重点 4. 常用的DOS系统功能调用 1,2,9,10 号 特别注意特殊字符的显示效果: 0AH, 0DH 特别注意 $ (24H) 的作用。,第三章 宏汇编语言,学习指导 三、学习难点 变量、地址表达式的使用 常用的机器指令的记忆、各指令的特殊要求 汇编

3、地址计数器$和假定伪指令 正确理解DOS系统功能调用、注意特殊字符的显示效果,3.1 宏汇编语言的基本语法 3.2 常用的机器指令语句 3.3 伪指令语句 3.4 常用的系统功能调用 3.5 总结,第三章 宏汇编语言,3.1 宏汇编语言的基本语法,常量与数值表达式 常量 数值表达式 变量、标号与地址表达式 变量 标号 地址表达式,(1) 常量 C语言中的常量定义:#define pi=3.1415926 常量的基本概念:汇编时已有确定的数值的量。 用途: . 机器指令语句中的立即操作数; . 也可作存贮器操作数的组成部分(位移量V); . 在数据定义伪指令语句中给变量赋初值; 分类: 数值常量

4、、符号常量,1常量与数值表达式,符号常量的定义: 等价伪指令 EQU 等号伪指令 = 使用:定义后直接引用符号名。 注意: 符号常量不分配存贮单元,只建立等价代换关系, 可出现在任何段。 用EQU语句定义的符号常量在该程序中不能再重新赋值,而用“=”定义的符号常量可多次重新赋值,使用时,以最后一次定义的值为准。,1常量与数值表达式常量,例1,例2,例1: DATA SEGMENT USE16 NUMBER EQU 4; COUNT = 35 TAB DW 70,80H,-5,NUMBER MOV AX,NUMBER MOV SI, COUNT MOV DX, TAB COUNT = 10 MO

5、V BX, COUNTECX MOV CX, TABECX ; 注意这两条指令的区别 符号常量特点: 在汇编期间被代换成相应等价的数据; 提高程序的可读性; 便于随时修改程序中的参数。,4,符号常量,35,TAB,70, 80H, -5, NUMBER,NUMBER,COUNT,例2: .386 ;选择的处理器为386 DATA SEGMENT USE16 ;USE16定义了16 数据段 位的段 SUM DW 0 ;SUM为字变量,初值为0 DATA ENDS STACK SEGMENT USE16 STACK 堆栈段 DB 100 DUP(0) ;堆栈的大小为100个字节 STACK END

6、S,符号常量,CODE SEGMENT USE16 ASSUME CS:CODE, SS:STACK, DS:DATA NUM1 EQU 1 NUM2 = 50 START: MOV AX, MOV DS,AX MOV CX,NUM2 ;循环计数器置初值 MOV AX,0 ;累加器置初值 MOV BX,NUM1 ;1BX 代码段 NEXT: ADD AX,BX ;(AX)+(BX)AX INC BX INC BX DEC CX ;(CX)-1CX JNE NEXT ;(CX)0转NEXT MOV SUM,AX ;(CX)=0累加结果SUM MOV AH,4CH INT 21H CODE END

7、S END START,;数据段首址 DS, DS必须由用户程序自己设置,;(BX)+2BX,;返回DOS,符号常量,NUM2,NUM1,1常量与数值表达式数值表达式,(2) 数值表达式 数值表达式:常量与运算符(算术运算、逻辑运算、关系运算)组成的有确定意义的式子。 算术运算 +、*、/、MOD(模除, 取余数)、 SHR(右移)、SHL(左移)。 移位的特别说明:表示将二进制常量右移或左 移运算符右边所规定的次数(正整 数),所空出的位数均补0。,逻辑运算 逻辑乘:AND (与) 逻辑加:OR (或) 按位加:XOR (异或) 逻辑非:NOT (非) 关系运算 相等: EQ 不等: NE

8、小于: LT 大于: GT 小于等于: LE 大于等于: GE (3)数值表达式的运算时机 汇编期间进行,运算的结果为一数值常量,1常量与数值表达式数值表达式,2. 变量、标号与地址表达式变量,(1) 变量 变量:是数据段或附加数据段中一个数据存贮单元的名字, 是这个存储单元的地址的符号表示。可代表一批存储单元的首址。 变量的属性 段属性:定义变量所在段的段首址,当访问该变量时该段首址应在某一段寄存器中,即为CPU当前可访问段; 偏移地址:该变量所占存储单元到所在段的段首址的字节距离; 类型:类型是指存取该变量中的数据所需要的字节数, 变量的类型由定义该变量时所使用的伪指令确定;,变量的定义

9、一般在数据段或附加数据段中使用数据定义伪指令 DB、DW、DD、DQ和DT来定义 格式: 变量名 数据定义伪指令 表达式, 功能: 定义了一变量,并开辟了由变量属性所决定的 一 片连续存储区,其存储区 所占字节数=表达式个数*变量的类型。 变量的类型:存储单元的大小,由数据定义伪指令定义。,例,2. 变量、标号与地址表达式变量,数据定义伪指令:DB、DW、DD、DQ、DT指定变量的类型 .BYTE (字节) DB .WORD (字) DW .DWORD (双字) DD .FWORD (3个字) DF .QWORD (4个字) DQ .TBYTE (10个字节) DT 例: BUF DB ABC

10、D12EF ; BUF的类型为字节 ARR DW 10,-60,189 ;ARR的类型为字 TT DD 0A57BD36H ;TT的类型为双字,数据定义伪指令,变量定义中的表达式,指定了变量的初值: (i) 数值表达式 (ii) ASCII字符串 (iii) 地址表达式(只适用DW和DD两个伪指令) (iv) ?变量值不确定 (v)重复子句: n DUP(表达式),表示定义了n个数据存储单元 (vi)上述(i)(v)组成的系列,各表达式之间用逗号隔开。,例,注意,表达式,DW 地址表达式 当地址表达式含变量名时,初值取变量EA; 例: A DW B A,B为变量,则A的初始值为B的偏移地址 D

11、D 地址表达式 当地址表达式含变量名时,初始值取变量的EA,变量所在段的段首址 例: A DW B B为变量,则A的初始值为B的偏移地址,段首址,地址表达式,例: DB 3 DUP(A, 12H) A, 12H, A, 12H, A, 12H DB 2 DUP(A, 2 DUP(3), B) A, 3, 3, B, A, 3, 3, B,重复子句:n DUP(表达式),表达式的个数(包括(v)中的重复因子n) 确定了存储单元的个数。 这一片连续的数据存储单元也称数据存储 区,其类型由数据定义伪指令确定 在定义一个数据存储区时: 变量仅代表该区的第一个数据存储单元; 整个数据存储区的类型均与变量

12、相同; 建立了一个以变量为首址的数据存储区或 以变量为名的数组,表达式(注意),数据段定义的例子,例:数据段定义如下: DATA SEGMENT USE16 A DW M BUF DB AB,0DH,0AH CON EQU 500H B DW 0FFAAH MARK = 100H D DD BUF M DB 2 DUP(1),2 DUP(2,B) DB 123,1 DATA ENDS 请画出数据段中的数据在主存中的存储 形式。 问题:上例中若分别执行语句: MOV AL,BUF MOV AL,BUF+2 后AL的结果? 指令 MOV EDX,M 是否正确?,BUF,A,D,M,B,注意, 伪指

13、令EQU及“=”不分配存贮单元; 使用直接寻址方式时,变量的类型必须与 指令的要求相符; 变量的段必须是当前段。,本例中的注意事项,2. 变量、标号与地址表达式标号,(2) 标号 标号:是机器指令语句存放地址的符号表示,也可以 是子程序名,即子程序入口地址的符号表示;在代码段中定 义和引用。 标号的属性: 标号的段属性:标号的段属性是指定义该标号所在段 的段首址。 标号的偏移地址:标号的偏移地址是指它所在段的段 首址到该标号所代表存储单元的字节距离。 标号的类型: 分NEAR(近)和FAR(远)两类型,近 标号在定义该标号的段内使用,远标号无此限制。,3. 变量、标号与地址表达式地址表达式,(

14、3)地址表达式 地址表达式的定义 接触过的地址表达式 地址表达式的属性 地址表达式与数值表达式区别 特殊运算符 (i)类型运算符PTR (ii)属性分离算符 使用地址表达式的注意事项,地址表达式的定义,地址表达式是由变量、标号、常量、 寄存器(名加方括号)及一些运算符(数值表 达式的运算符和特殊运算符)所组成的有意 义的式子。,接触过的地址表达式,接触过的地址表达式: 直接寻址方式、寄存器间接寻址方式、 变址方式、基址加变址方式 例如: MOV AX,BUFBX+SI MOV AL,BUF+2 MOV AL, BUFBX MOV WORD PTR DS:1000H, 3000H ;,;源操作数

15、为地址表达式,;目的操作数为地址表达式,地址表达式的结果是一偏移地址,因此具备 段属性、偏移地址和类型。 问题:变量定义中,给变量置初始值的地址 表达式可以含寄存器符号加方括号吗? 例如变量定义: A DW BX 是否正确?,地址表达式的属性, 地址表达式的结果:是一偏移地址,它具有段属 性、偏移地址和类型,(一个表达式中一般只出现一 个变量或标号) 数值表达式的结果:只有大小,无属性。 在特殊情况下(没有用到寄存器、不作为地址访 问),地址表达式的值也可能仅表示一个数值(没 有属性)。 例:在变量/常量定义中给变量/常量赋值, 或在OFFSET BUF + 2语句中) NUM DW BUF1 - BUF2 (此时可以有多个变量或标号),

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

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

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