汇编语言程序设计2(汇编语言源程序的结构、语句格式、伪指令)综述

上传人:最**** 文档编号:117922907 上传时间:2019-12-11 格式:PPT 页数:63 大小:448KB
返回 下载 相关 举报
汇编语言程序设计2(汇编语言源程序的结构、语句格式、伪指令)综述_第1页
第1页 / 共63页
汇编语言程序设计2(汇编语言源程序的结构、语句格式、伪指令)综述_第2页
第2页 / 共63页
汇编语言程序设计2(汇编语言源程序的结构、语句格式、伪指令)综述_第3页
第3页 / 共63页
汇编语言程序设计2(汇编语言源程序的结构、语句格式、伪指令)综述_第4页
第4页 / 共63页
汇编语言程序设计2(汇编语言源程序的结构、语句格式、伪指令)综述_第5页
第5页 / 共63页
点击查看更多>>
资源描述

《汇编语言程序设计2(汇编语言源程序的结构、语句格式、伪指令)综述》由会员分享,可在线阅读,更多相关《汇编语言程序设计2(汇编语言源程序的结构、语句格式、伪指令)综述(63页珍藏版)》请在金锄头文库上搜索。

1、第4章 汇编语言程序设计 mov ax,12h call display Jmp 1234h 1 主要内容: n汇编语言源程序的结构 n汇编语言语句格式 n伪指令 n功能调用 n汇编语言程序设计 2 3 1. 汇编语言语句类型 指令性语句 指示性语句 CPU执行的语句, 能够生成目标代码 CPU不执行,而由汇 编程序执行的语句, 不生成目标代码 3 4 2. 汇编语言语句格式 指令性语句: 标号: 前缀 助记符 操作数,操作数 ;注释 指令的符号地址 标号后要有冒号 操作码 注释前加分号 4 5 指示性语句格式 名字 伪指令助记符 操作数 ,操作数, ;注释 变量的符号地址 其后不加冒号 指示

2、性语句中至 少有一个操作数 5 6 常用伪指令 数据定义伪指令 符号定义伪指令 段定义伪指令 结束伪指令 过程定义伪指令 宏命令伪指令 6 7 一、数据定义伪指令 n用于定义数据区中变量的类型及大小 n格式: 变量名 伪指令助记符 操作数, ;注释 符号地址 定义变量类型 定义变量值 及区域大小 7 8 1. 数据定义伪指令助记符 nDB 定义的变量为字节型 nDW 定义的变量为字类型(双字节) nDD 定义的变量为双字型(4字节) nDQ 定义的变量为4字型(8字节) nDT 定义的变量为10字节型 8 9 2. 重复操作符 n作用: q为一个数据区的各单元设置相同的初值 n目的: q常用于

3、声明一个数据区 n格式: 变量名 伪指令助记符 n DUP(初值 ,) n例: BW 20 DUP(0) M1 DB 10 DUP(0) 9 10 3. “?”的作用 n表示随机值,用于预留存储空间 nMEM1 DB 34H,A,? DW 20 DUP(?) 预留40个字节单元,每单元为随机值 随机数 占1个字节单元 10 4.2.2 符号定义伪指令 把一个表达式用一个符号表示,以后凡出 现该表达式的地方都可用这个符号表示。类 似于C语言中的#define。 符号定义伪指令有两种:EQU,= 用EQU定义的符号未清除前,不能重新定义 。清除EQU定义可用PURGE伪指令。 用”=”定义的符号可

4、在任何时候进行重 定义。 二者均不占用存储空间,仅是给符号赋值 11 12 三、段定义伪指令 n说明逻辑段的起始和结束; n说明不同程序模块中同类逻辑段之间的联系 形 态 12 13 段定义伪指令格式 段名 SEGMENT 定位类型 组合类型 类别 段名 ENDS 说明逻辑 段的起点 说明不同模块中同名 段的组和连接方式 13 14 定位类型 nPARA: 段的起点从节边界开始 (16个字节为1节) nBYTE: 段的起点从存储器任何地址开 始 nWORD:段的起点从偶地址开始 nPAGE: 段的起点从页边界开始 (256个字节为1页) 14 15 组合类型 n与其它模块中的同名段在满足定位类

5、型的 前提 下具有的组合方式: qNONE: 不组合 qPUBLIC: 依次连接(顺序由LINK程序 确定) qCOMMON: 覆盖连接 qSTACK: 堆栈段的依次连接 qAT 表达式:段定义在表达式值为段基的 节边界 qMEMORY: 相应段在同名段的最高地址 处。 15 4.2.3 段定义伪指令 汇编语言程序是按段来组织程序和数据的。 和存储器的物理段相对应,汇编语言程序中的段称 为逻辑段。汇编连接后被映射到物理段中。 3/4类段:代码(程序)、数据/附加数据、堆栈 段定义伪指令:SEGMENT、ENDS、ASSUME、ORG 定义一个段的基本格式: 段名 SEGMENT 定位类型组合方

6、式类别 段名 ENDS 16 这两个伪指令总是成对出现,二者前面的段名应一致。 SEGMENT说明了一个段的开始,ENDS说明了一个段的结束 。 对数据段和堆栈段,段中的语句一般是变量定义。 对代码段则是指令语句。 如: data SEGMENT data ENDS SEGMENTSEGMENT和ENDSENDS伪指令伪指令 17 18 四、设定段寄存器伪指令 n说明所定义逻辑段的性质 n格式: ASSUME 段寄存器名:段名,段寄存器名:段名 , 18 ASSUME伪指令 在代码段中,还必须明确段和段寄存器的关系,这 由ASSUME语句来指定。如 ASSUME CS:code,DS:data

7、,ES:data,SS:stack 语句中的code和data为段名。 这个语句说明: (1) CS将指向名字为code的代码段 (2) DS和ES将指向名字为data的数据段 19 20 五、结束伪指令 n表示源程序结束 n格式: END 标号 20 21 汇编语言源程序结构 数据段名 SEGMENT 数据段名 ENDS 附加段名 SEGMENT 附加段名 ENDS 堆栈段名 SEGMENT 堆栈段名 ENDS 代码段名 SEGMENT 代码段名 ENDS END 21 22 六、过程定义伪指令 n用于定义一个过程体 n格式: 过程名 PROC NEAR / FAR RET 过程名 ENDP

8、 P157例 过程入口的 符号地址 22 23 七、宏命令伪指令 n 源程序中由汇编程序识别的具有 独立功能的一段程序代码 n格式: 宏命令名 MACRO ENDM 宏体 宏 23 24 其它伪指令 nNAME-为目标程序设定一个名字 n格式: NAME 模块名 nTITLE-为程序清单指定打印标题 n格式: TITLE 标题名 24 4.3 功能调用 DOS 功能调用 高级调用,操作系统提供 BIOS功能调用 低级调用 25 3. 调用方法 设置入口参数 在AH设置功能号m 执行中断指令INT N 分析、应用出口参数 26 例1 单字符显示功能调用 MOV DL, A ;设置入口参数 MOV

9、 AH, 02H ;设置功能号 INT 21H ;执行中断调用 例2 单字符输入功能调用 MOV AH, 01H ;设置功能号 INT 21H ;执行中断调用 CMP AL, 0DH ;分析、应用出口参数 JZ exit 、 27 二、BIOS功能调用 l 基本输入/输出模块BIOS: 实现对输入/输出设备的控制, 内含0 1CH 等类型中断子程, 包括显示器、磁盘、键盘、打印机等标准外设的驱动程序。 (参看中断类型分配表) l BIOS功能调用指对BIOS模块中的中断子程的调用。 28 l 有关显示器 显示器通过显卡(显示适配器)连接到计算机上。 单色显示器只能显示黑白两色。 彩色显示器能显

10、示多种颜色。 29 1设置显示方式 入口参数 AL = 显示方式值 00 4025 黑白文本方式 01 4025 彩色文本方式 02 8025 黑白文本方式 03 8025 彩色文本方式 04 320320 彩色图形方式 功能号 AH = 00H 类型号 10H 出口参数 无 实现功能 将显示方式设置为指定形式 例 将显示方式设置为 8025 彩色文本方式 MOV AL, 03H MOV AH, 00 INT 10H 30 2. 清屏、清窗口功能 入口参数 AL = 0 CH = 窗口左上角行号 CL =窗口左上角列号 DH = 窗口右下角行号 DL =窗口右下角列号 BH = 窗口属性 功能

11、号 AH = 06H 或 AH = 07H 类型号 10H 出口参数 无 实现功能 按给定属性清除指定的窗口内容 31 例 清除屏幕显示,将其属性置为反白(白底黑字)显示。 MOV AL, 0 ;清屏功能 MOV BH, 70H ;白底黑字 MOV CH, 0 ;左上角 行号 MOV CL, 0 ;左上角 列号 MOV DH, 24 ;右下角 行号 MOV DL, 79 ;右下角 列号 MOV AH, 6 ;功能号 INT 10H ;中断调用 32 3. 置光标位置 l 光标控制开始显示的位置, 计算机有专门的硬件控制光标的显示大小、位置。 l 光标只在文本方式中出现,在图形方式下光标消失。

12、0 列 0 行 79 列 24 行 5 列 1 列 1 行 2 行 33 置光标位置 入口参数 DH = 行号 DL = 列号 BH = 页号 功能号 AH= 02H 类型号 10H 出口参数 无 实现功能 将光标设置在指定的位置 34 例 将光标设置在2行5列的位置 MOV DH, 2 MOV DL, 5 MOV BH, 0 MOV AH, 2 INT 10H 0 列 0 行 79 列 24行 5 列 1 列 1 行 2 行 35 DOS 功能调用 n包含多个子功能的功能包,用软中断指 令调用,中断类型码固定为21H n各子功能采用功能号来区分 附录C 36 DOS 功能调用 设备管理 目录

13、目录管理管理 文件管理文件管理 其其 他他 37 三、DOS系统功能调用 (21H类型中断调用) 1显示单字符 ( 02H功能 ) 2显示字符串 ( 09H功能 ) 3单字符输入 ( 01H、07H、08H功能 ) 4字符串输入 ( 0AH功能 ) 5检测键盘状态 ( 0BH功能 ) 6保存中断向量 ( 35H功能 ) (第六章介绍) 7设置中断向量 ( 25H功能 ) 38 DOS 功能调用 n调用格式: MOV AH,功能号 INT 21H 39 1.从键盘输入单字符并显示 n调用方法: MOV AH,01 INT 21H n输入的字符在AL中 40 单字符输入例 GET_KEY: MOV AH,1 INT 21H CMP AL,Y JZ YES CMP AL,N JZ NO JNZ GET_KEY YES: NO: 交互式应 答程序 41 2. 从键盘输入字符串 nAH 功能号OAH nDS:DX 字符串在内存中的存放地 址 nINT 21H 42 定义字符缓冲区 n用户自定义缓冲区格式: 0DHN1N2 整个缓冲区 最大键入字符数 实际键入字符数 43 输入字符串程序段 n DAT1 DB 20,?,20 DUP(?) n

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

当前位置:首页 > 高等教育 > 大学课件

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