微机原理与接口技术-第5章 汇编程序设计_11

上传人:mg****85 文档编号:50600777 上传时间:2018-08-09 格式:PPT 页数:38 大小:181KB
返回 下载 相关 举报
微机原理与接口技术-第5章 汇编程序设计_11_第1页
第1页 / 共38页
微机原理与接口技术-第5章 汇编程序设计_11_第2页
第2页 / 共38页
微机原理与接口技术-第5章 汇编程序设计_11_第3页
第3页 / 共38页
微机原理与接口技术-第5章 汇编程序设计_11_第4页
第4页 / 共38页
微机原理与接口技术-第5章 汇编程序设计_11_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《微机原理与接口技术-第5章 汇编程序设计_11》由会员分享,可在线阅读,更多相关《微机原理与接口技术-第5章 汇编程序设计_11(38页珍藏版)》请在金锄头文库上搜索。

1、第5章 汇编语言程序设计mov ax,12h call display Jmp 1234h1 1主要内容:5.1 汇编语句格式 5.2 伪指令 5.3 数据项和表达式 5.4 宏指令语句 5.5 条件汇编伪指令(自学) 5.6 汇编语言源程序 5.7 汇编语言程序的上机过程 5.8 汇编语言程序设计的基本方法 5.9 程序设计举例 5.10 小结2 2什么是汇编语言源程序?l汇编语言指令助记符、符号地址、标号 、伪指令等语言元素的集合以及这些元素使 用的规则l用汇编语言编写的程序叫汇编语言源程序l汇编语言源程序有严格的格式要求3 3DATA SEGMENT; 数据段 hello db “Wel

2、come to the world of assembler!$“ DATA ENDS; 数据段结束 CODE SEGMENT; 代码段 assume cs:CODE, ds:DATA start: mov ax, data mov ds, ax mov dx, offset hello mov ah, 9; 显示$结尾的字符串 int 21h mov ah, 1; 等待按键 int 21h mov ah, 4ch; 返回DOS int 21h CODE ENDS; 代码段结束END start; 整个程序结束,指定程序入口点4 4什么是汇编程序?l常用的汇编程序: MASMMicrosoft

3、 Macro Assembler TASMTubor Assembler汇编源程序需翻译成机器语言,变成可执行文件, 机器才能执行,这个翻译过程叫汇编。高级语言 中称该过程为“解释”或“编译”。执行翻译的程 序称为“汇编程序”。汇编程序汇编语言 源程序机器语言 目标程序5 55.1 5.1 汇编语句格式汇编语句格式汇编语句:指令、伪指令、宏指令l每条指令语句都生成机器代码,各对应一种CPU 操作,在程序运行时执行,汇编后产生目标代码。l伪指令语句为汇编和链接过程提供辅助信息、数 据定义语句分配存储空间,伪指令不生成目标码。l宏指令是用户按照宏定义格式编写的一段程序, 可以包含指令、伪指令、甚至

4、其他宏指令。6 6标识符/语句标号 助记符 操作数序列 ;注释 标识符用来为变量、段及过程等命名 语句标号标识符后加 : ,提供转移地址 助记符指令可分为三类:机器指令、伪指令和宏指令。 机器指令:指令系统中的指令,程序运行时由CPU执行; 伪指令:汇编程序执行的操作,规定汇编程序如何按要求 进行汇编及分配内存 。 宏指令:由一系列指令或伪指令构成,汇编时展开成若干 条机器指令,用于提高编程效率。 操作数序列可以是常量、变量、表达式、寄存器名或 标号等,用逗号隔开。(伪指令和宏指令由汇编程序在汇编期间处理 )注释符 “;”后可给出语句注释,提高可读性和可理解性 。汇编语言语句一般格式为:7 7

5、DATA SEGMENT; 数据段 hello db “Welcome to the world of assembler!$“ DATA ENDS; 数据段结束 CODE SEGMENT; 代码段 assume cs:CODE, ds:DATA start: mov ax, data mov ds, ax mov dx, offset hello mov ah, 9; 显示$结尾的字符串 int 21h mov ah, 1; 等待按键 int 21h mov ah, 4ch; 返回DOS int 21h CODE ENDS; 代码段结束END start; 整个程序结束,指定程序入口点8 8

6、主要内容:5.1 汇编语句格式 5.2 伪指令 5.3 数据项和表达式 5.4 宏指令语句 5.5 条件汇编伪指令(自学) 5.6 汇编语言源程序 5.7 汇编语言程序的上机过程 5.8 汇编语言程序设计的基本方法 5.9 程序设计举例 5.10 小结9 95.7 汇编语言程序的上机过程 在计算机上运行汇编语言程序的步骤:l用编辑程序(EDIT)建立源程序文件(ASM文件); l用汇编程序(MASM或TASM)把ASM文件汇编成目标程 序文件(OBJ文件); l用链接程序(LINK)把OBJ文件转换成EXE文件; l在DOS命令状态下直接键入文件名就可执行该文件。 1010汇编语言上机过程YY

7、YNNN有错 ?有错 ?有错 ?结束汇 编输入(修改)源程序连 接运 行查 错开始用EDIT,NOTEPAD等任何文本编辑器 。源程序存为.ASM文件 用MASM宏汇编程序进行汇编。 汇编后生成.OBJ目标文件。 命令格式:MASM ; 用LINK连接程序进行连接。 连接后生成.EXE可执行文件。 命令格式:LINK ; 用TD、DEBUG等调试程序进行调试。 命令格式:TD 1111系统功能调用由OS提供的一组实现特殊功能的 子程序供程序员在程序中调用,以减轻编程工作量。DOS操作系统中的系统功能调用有两种,一种称为 DOS功能调用,另一种称为BIOS功能调用。DOS中这些功能调用是以软中断

8、的方式提供的。DOS功能调用由INT 21H提供。BOIS中的功能调用常用的有INT 10H,INT 16H, INT 13H等。5.7.5 汇编语言和DOS的接口 程序的执行是在相应的操作系统支持下进行的, 16位实地址方式要在DOS操作系统中运行,他需要 DOS的功能调用(INT 21H)支持。1212INT 2lHINT 2lH功能大致可以分为四个方面:功能大致可以分为四个方面: 设备管理、目录管理、文件管理和其它设备管理、目录管理、文件管理和其它。D0SD0S系统功能调用的使用方法如下:系统功能调用的使用方法如下: AHAH功能号功能号; 设置该功能所要求的其他入口参数;设置该功能所要

9、求的其他入口参数; 执行执行INT 21HINT 21H指令;指令; 分析出口参数。分析出口参数。 以下以下介绍介绍INT 21HINT 21H的几个最常用的功能。的几个最常用的功能。5.7.6 DOS功能调用和BIOS功能调用 1. DOS系统功能调用1313【功能号01H】l功能:等待键入一个字符,有回显。l入口参数:无l出口参数:AL按键的ASCII码l说明:若AL=0,表明按键是功能键、光标键,需 再次调用本功能,才能返回按键的扩展码。MOV AH, 1MOV AH, 1 INT 21HINT 21H1414例:程序中有时需要用户对提示做出应答。GET_KEY: MOV AH,1;等待

10、键入字符INT 21H;结果在AL中AND AL,0DFH ;转大写CMP AL,Y ;是Y?JZ YES ;是,转YESCMP AL,N ;是N?JZ NO ;是,转NOJMP GET_KEY;否则继续等待输入YES: NO: 1515【功能号02 H】l功能:在屏幕的当前位置上显示一个字符l入口参数:DL=待显字符的ASCII码l出口参数:无l说明:显示字符,光标右移一个字符位置。如果光 标到达行末,则返回下一行开头。该功能破坏AL寄存器的内容 例:在屏幕当前位置显示字符H MOV AH,2 MOV DL,H INT 21H1616【功能号05 H】l功能:向打印机发送一个字符l入口参数:

11、DL=待打印字符的ASCII码l出口参数:无l说明:调用时,DOS将自动检测打印机的 状态,若打印机异常,则在屏幕上显示异常 信息1717【功能号09 H】l功能:将当前数据区中DS:DX指向的字符串送屏 幕显示l入口参数:DS:DX=字符串首地址,字符串必须 以$为结束标志。l出口参数:无l调用格式: LEA DX, 字符串首地址 MOV AH, 9INT 21H1818例:在屏幕上显示:HELLO,WORLD! ;在数据段定义字符串:DATA SEGMENTSTR1 DB HELLO,WORLD!$DATA ENDS ;在代码段中进行显示输出MOV AH, 9LEA DX, STR1INT

12、 21H1919【功能号0A H】l功能: 从键盘接收字符串送入内存的输入缓冲区 ,同时送屏幕显示l调用前要求: 必须先定义一个输入缓冲区Buffer DB 100 ;最大可键入字符数(包括回车符) DB ? ;实际键入的字符数(不包括回 车符) DB 100 DUP(?) 调用格式: LEA DX, Buffer MOV AH, 10 INT 21H2020数据输入缓冲区的格式BUF+0 N1预预置可容纳纳的字符个数 BUF+1实际实际 接收的字符个数 BUF+2键键入字符串的实际实际 存储储空间间BUF+N1+22121若用户键入的字符数(包括回车)定义的N1,本 功能调用将不再接收新的键

13、入,且光标不再向右移 动。 例:设在数据段定义键盘缓冲区如下:STR1 DB 10,?,10 DUP(?) 调用DOS功能的0AH号功能的程序段为:LEA DX,STR1MOV AH,0AHINT 21H此程序段最多从键盘接收10个按键(包括回车 )。2222DATA SEGMENT String DB 100, ?, 100 DUP(?) DATA ENDS CODE SEGMENT MOV AX, DATAMOV DS, AX LEA DX, StringMOV AH, 10 ; 0AH号功能调用INT 21H CODE ENDS 例:例:接受键盘输入的字符串接受键盘输入的字符串( (最大

14、长度限定为最大长度限定为100100个字符个字符) )2323【功能号4C H】l功能:终止当前程序的运行,返回DOS。 由被终止程序打开的全部文件都被关闭,程 序占用的内存空间交还给DOSl入口参数:AL=返回码l出口参数:无MOV AX,4C00H ;返回码为0 INT 21H24242. BIOS功能调用lBIOS的功能:加电自检、引导装入、设备驱动、 系统接口初始化 lBIOS中也提供了一组功能调用。与DOS功能调用 相比,它们更接近底层硬件,运行效率更高。 lBIOS功能调用模式如下: MOV AH, 功能号 设置入口参数 INT n 分析出口参数2525BIOS键盘输入功能调用 I

15、NT 16H 【功能号00H】 l功能:读取键入的一个字符,无回显,响应Ctrl_C ,无键入则等待。 l入口参数:无 l出口参数:AL=键入字符的ASCII码。若AL=0,则 AH=键入字符的扩展码。【功能号01H】 l功能:查询键盘的缓冲区。 l入口参数:无 l出口参数: Z标志0,表示有键入,此时AL=键入字符 的ASCII码,AH=键入字符的扩展码。 Z标志1,表示无键入。262627【功能号02 H】l功能:读取当前按键状态l入口参数:无l出口参数:AL=键盘状态字。状态字各位定义如下: AL7 置1 Insert键有效(被奇数次按下) AL6 置1 CapsLock 键有效(相应的指示灯亮) AL5 置1 Numlock键有效(相应的指示灯亮) AL4 置1 ScrollLock键有效(相应的指示灯亮) AL3 置1 按下了Alt键 AL2 置1 按下了Ctrl键 AL1 置1 按下左Shift键 AL0 置1 按下了右Shift键2727例 检测按下的是否是F1或F2键MOV AH,0 INT16H CMP AL,0;AL=0,按下的

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 科普知识

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