《改动态显示》ppt课件

上传人:tian****1990 文档编号:74786872 上传时间:2019-01-29 格式:PPT 页数:81 大小:830KB
返回 下载 相关 举报
《改动态显示》ppt课件_第1页
第1页 / 共81页
《改动态显示》ppt课件_第2页
第2页 / 共81页
《改动态显示》ppt课件_第3页
第3页 / 共81页
《改动态显示》ppt课件_第4页
第4页 / 共81页
《改动态显示》ppt课件_第5页
第5页 / 共81页
点击查看更多>>
资源描述

《《改动态显示》ppt课件》由会员分享,可在线阅读,更多相关《《改动态显示》ppt课件(81页珍藏版)》请在金锄头文库上搜索。

1、6.1 汇编源程序的编程格式 6.2 系统功能调用 6.3 程序设计举例 6.4 Windows 汇编语言编程初步,第6章 汇编语言程序设计,汇编源程序有两种编程格式: EXE文件的编程格式:只能生成扩展为EXE 的可执行文件; COM文件的编程格式:可以生成扩展为COM 的可执行文件。 COM文件的执行级别高于EXE文件,同名的BAT(批处理)文件执行级别最低。,6.1 源程序的编程格式,EXE文件的编程格式,此格式允许源程序使用多个逻辑段(包括据段、堆栈段、代码段及其它逻辑段); 在实模式下,每个逻辑段的目标块不超过64K; 适合编写大型程序。,.486 DATA SEGMENT USE1

2、6 ;定义数据段 MESG DB I AM A STUDENT!,$ DATA ENDS CODE SEGMENT USE16 ;定义代码段 ASSUME CS:CODE,DS:DATA BEG: MOV AX,DATA MOV DS,AX LAST: MOV AH,9 MOV DX,OFFSET MESG INT 21H MOV AH,4CH INT 21H ;返回DOS CODE ENDS END BEG,COM文件的编程格式,汇编语言要求此格式必须符合以下规定: 源程序只允许使用一个逻辑段,即代码段,不允许设置堆栈段; 程序使用的数据,可以集中设置在代码段的开始或未尾; 在代码段偏移地址

3、(有效地址)为100H的单元,必须是程序的启动指令; 代码段目标块小于64K。 COM文件的编程格式适合于编写中小型程序。,.486 CODE SEGMENT USE16 ASSUME CS:CODE ORG 100H BEG: JMP START MESG DB HELLO,0DH,0AH,$ ;用户程序数据区 START: MOV CX,10 ;设置循环次数 LAST: MOV AH,9 MOV DX,OFFSET MESG INT 21H ;显示一行HELLO LOOP LAST ;循环计数 MOV AH,4CH INT 21H ;返回DOS CODE ENDS END BEG,6.2

4、系统功能调用,DOS的4个组成部分中IBMBIO.COM和IBMDOS.COM是DOS系统的核心模块 IBMBIO.COM为基本I/O设备处理程序,与BIOS一起完成数据输入和数据输出的基本操作 IBMDOS.COM是磁盘文件管理程序;,这两个模块均有若干子功能可以被用户程序调用,称为“DOS功能调用”和“BIOS功能调用”(系统功能调用),高端,用户程序通过INT 21H软中断指令调用DOS系统功能,调用模式如下: MOV AH,功能号 设置入口参数 INT 21H 分析出口参数 功能号: 代表一个不同功能的子程序,DOS功能调用,调用模式: MOV AH,功能号 设置入口参数 INT 21

5、H 分析出口参数,DOS功能调用,【功能号01H】 等待键入一个字符,有回显,响应Ctrl_C。 入口参数:无。 出口参数:AL按键的ASCII码。若AL0,表明按键是功能键,光标键,需再次调用本功能,才能返回按键的扩展码。,调用方式: MOV AH,1 INT 21H,DOS功能调用,【功能号02H】 显示一个字符,响应Ctrl_C。 入口参数:DL待显字符的ASCII码。 出口参数:无。 本功能在屏幕的当前位置显示一个字符,光标右移一格,如 果是在一行末尾显示字符,则光标返回下一行的开始格。 如果是在屏幕的右下角显示字符,光标返回时屏幕要上滚一行。 注意:该功能要破坏AL寄存器的内容。,D

6、OS功能调用,Eg: MOV DL , A MOV AH , 2 INT 21H 屏幕上显示一个字符A,【功能号07H】 等待键入一个字符,无回显,不响应Ctrl_C。 入口参数:无。 出口参数:AL按键的ASCII码,若AL0,需再次调用该项功能才能在AL中得到按键的扩展码。 【功能号08H】 等待键入一个字符,无回显,响应Ctrl_C。 入口参数:无。 出口参数:AL按键的ASCII码,若AL0,需再次调用该项功能才能在AL中得到按键的扩展码。 【功能号09H】 显示字符串,响应Ctrl_C。 入口参数:DS:DX字符串首地址,字符串必须以$(即ASCII码24H)为结束标志 出口参数:无

7、。 该项功能从屏幕当前位置开始,显示字符串,遇到结束标志$时停止,$字符并不显示 注意:9号功能破坏AL寄存器的内容,DOS功能调用,【功能号0AH】 等待键入一串字符送用户程序数据缓冲区。 入口参数:DS:DX指向放键入字符的缓冲区 缓冲区定义形式规定为:,DOS功能调用,EG: BUF DB 100 DB ? DB 100 DUP(?),DOS功能调用,出口参数:存放于缓冲区的字符串,以回车键结尾 调用方式: MOV AH,0AH INT 21H 注意:缓冲区定义的第二个字节由系统设置,其余 由用户定义; 若输入的字节数少于定义的字节数,缓冲区 其余字节补零; 若输入的字节数大于定义的字节

8、数,后来输入 的字符丢弃且响铃警告。,DOS功能调用,主板EPROM中固化有基本I/O系统程序BIOS,它是最接近硬件的驱动程序,BIOS中的许多子程序可被用户程序调用,调用这些子程序称为BIOS功能调用。,BIOS功能调用,BIOS功能调用模式: MOV AH,功能号 设置入口参数 INT n 分析出口参数 其中INT n为软中断指令,n为中断类型码 不同n的代表不同的设备驱动程序,BIOS功能调用,【功能号00H】 读取键入的一个字符,无回显,响应Ctrl_C,无 键入则等待。 入口参数:无。 出口参数:AL键入字符的ASCII码。若AL0,则AH输入键 的扩展码。 【功能号01H】 查询

9、键盘缓冲区。 入口参数:无。 出口参数: Z标志0,表示有键入,键代码仍留在键盘缓冲区中,此时AL键入字符的ASCII码,AH键入字符的扩展码。 Z标志1,表示无键入。,BIOS功能调用,CRT(Cathode Ray Tube 阴极射线管)显示器是微机系统的输出设备。PC系列机可以配置单色显示器,或彩色显示器 显示适配器是显示器和系统总线之间的接口电路。适配器在主机箱的扩展槽中通过9芯插座和CRT显示器相连 显示适配器有CRT控制器、定时器、字符发生器、显示存储器等功能,BIOS文本显示功能调用,文本方式: 显示数字 ,字符 图形方式: 显示点,由点(像点)组成图形,BIOS文本显示功能调用

10、,2.显示存储区与显示屏,系统RAM(内存)部分空间被指定作为显示存储区,BIOS文本显示功能调用,3. 文本方式属性字 彩显属性字:,BIOS文本显示功能调用,4. 屏显的编程方法 DOS功能调用(如:2#,9#) BIOS功能调用(0EH#,13H#) 直接对显示存储区进行写操作,5. BIOS屏显功能调用的调用模式 MOV AH, 功能号 预置入口参数 INT 10H 分析出口参数,BIOS文本显示功能调用,【功能号00H】 设置屏幕显示方式 入口参数: AL0 4025 黑白文本方式 AL1 4025 彩色文本方式 AL2 8025 黑白文本方式 AL3 8025 彩色文本方式 出口参

11、数: 无。 【功能号02H】 预置光标位置。 入口参数: BH显示页号,DH行号,DL列号。 出口参数: 无。 【功能号03H】 读取光标的当前位置。 入口参数: BH显示页号。 出口参数: CH、CL光标顶部扫描线、低部扫描 线的行号。 DH、DL光标在屏幕上的行、列号。,BIOS文本显示功能调用,【功能号13H】 显示字符串 入口参数: AL03, BH显示页号, BL属性字(AL0、1 时有效), CX串长度, DH、DL字符串显示的起始行、列号, ES:BP待显字符串首地址。 出口参数: 无,BIOS文本显示功能调用,注意:13H功能是唯一能显示彩色字符的子功能 例:在屏幕左上角显示H

12、ELLO 黑底灰白字符 在屏幕中央显示 I AM A STUDENT 红底白字,思路: 显示HELLO,用DOS功能# 要求待显字符串放在数据段,串尾用$作结束符, 显示I AM A STUDENT,用 BIOS 13H 功能 它要求待显字符串在附加段 这意味着源程序至少要有三个逻辑段,我们令数据 段与附加段“重叠”,这样源程序仅设置两个逻辑段 即可。,BIOS文本显示功能调用,. 486 DATA SEGMENT USE16 MESG1 DB HELLO $ MESG2 DB I AM A STUDENT LL = $MESG2 DATA ENDS CODE SEGMENT USE16 AS

13、SUME CS:CODE ASSUME DS:DATA ASSUME ES:DATA BEG: MOV AX, DATA MOV DS, AX MOV ES, AX MOV AX, 0003H INT 10H,MOV AH, 9 MOV DX,OFFSET MESG1 INT 21H MOV AX, 1301H MOV BH, 0 MOV BL, 01001111B MOV CX, LL MOV DH,12 MOV DL, (80-LL)/2 MOV BP, OFFSET MESG2 INT 10H MOV AH, 4CH INT 21H CODE ENDS END BEG,源程序清单:,6.

14、3 程序设计举例,用汇编语言编程属结构化程序设计,分析题意,确定算法 根据算法画出程序框图 根据框图编写程序 上机调试程序 执行程序,按照自上而下的设计方法,设计一个汇编程序的步骤:,在程序设计中,程序的效率是程序设计好坏的重要指标,特别是在汇编程序设计中,其特点要求我们对程序运行的效率加以重点关注。对于汇编语言程序我们可以考虑以下几方面作为程序运行效率的衡量标准: 程序的执行时间。每一条语句都有自己的执行时间,在80X86指令手册中每条指令的运行时间都有明确的定义。根据这些时间,我们可 算出程序的运行时间。 程序所占有的字节数。有一些计算机系统,可能应用于工业控制或工 业过程检测,不需要过多

15、的硬件资源,比如存储单元,所以就要求我 们的程序有尽可能少的字节数,以满足缩减硬件资源的要求。 程序的语句行数。,顺序程序 分支程序 循环程序,从结构上来讲,一般的汇编程序可分为:,子程序 宏指令,Eg:从键盘输入一个字符并存储到字节变量BUF单元中.,分析: 用DOS功能调用完成键入,输入的字符保存在AL寄存器中 将AL中的内容存到定义在数据段的变量BUF所指单元中,顺序程序设计,顺序程序设计是程序设计中最简单的设计方法,它是将确定好的算法或逻辑关系以正确的语句和正确的逻辑关系有序地编写出来,形成程序。,.486 DATA SEGMENT USE16 BUF DB ? DATA ENDS,源程序清单:,CODE SEGMENT USE16 ASSUME CS : CODE , DS : DATA BEG: MOV AX , DATA MOV DS , AX MOV AH , 1 INT 21H ;AL=键入字符的 MOV BUF , AL ASIIC码 MOV AH , 4CH INT 21H CODE END

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

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

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