网站大量收购独家精品文档,联系QQ:2885784924

第7章显示程序设计.ppt

  1. 1、本文档共89页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7章显示程序设计

新 编 汇编语言程序设计;第7章 显示程序设计 ; 键盘与显示器是重要的人机对话界面。显示器通过显示适配器(Video Adapter,也称显卡)与PC机相连,显卡是计算机和显示器的接口。 显卡的两种工作方式 字符方式也称文本方式,在这种方式下,屏幕只能显示字符及其属性(颜色,亮度等),屏幕被分成若干行和列,最常见的是80列×25行。 图形方式下的屏幕由一个个像素(Pixel)组成,例如,标准VGA格式的屏幕由480行,每行640个像素组成。通过读写屏幕上各个像素(点),可以显示出各种单色和彩色的图形。;7.1 宏指令 ; 一组指令/伪指令,用来完成某项功能。 宏指令使用之前,需要为这一组指令起一个名字,称为“定义”,此后就可以在程序中多次使用。 可以将宏指令的定义存放在一个文件中,建立宏指令库,好像高级语言的库函数,使用时用INCLUDE伪指令将这个库插入源程序。;宏指令实际上就代表了它对应的一组指令。对程序中出现的宏指令进行汇编时,这条宏指令被它对应的一组指令所代替。如果程序中多次使用宏指令,就等于多次重复拷贝了这个指令组,占用的内存随之增加。 调用子程序通过执行CALL指令实现,存在从“主程序”与“子程序”之间的两次控制转移。使用宏指令不存在控制转移的过程。 使用子程序和宏指令都可以提高编程效率。子程序占用固定大小的存储空间,被主程序调用时,空间不会随调用次数而增加。但是,宏指令占用存储空间会随着使用次数的增加而增加。;7.1.1 宏指令的定义; CRLF MACRO MOV DL, 0AH INT 21H MOV DL, 0DH INT 21H ENDM; SUM2 MACRO X, Y MOV AX, X ADD AX, Y ENDM SUM3 MACRO A, B, C SUM2 A, B ADD AX, C ENDM ;MAX MACRO X, Y, Z LOCAL L1 MOV AX, X CMP AX, Y JGE L1 MOV AX, Y L1: MOV Z, AX ENDM ;7.1.2 宏指令的使用 ; . MODEL SMALL . DATA BUF DW –90, 90, 234 ; 3个数 BIG DW ? ; 存放最大数的单元 MESS DB 0DH, 0AH, ‘ The Max Is: $’;. CODE START: MOV AX, @DATA MOV DS, AX MAX BUF, BUF+2, BIG ; 求前两个数中的较 ;大者,存入BIG MAX BUF+4, BIG, BIG ; 求第三个数与BIG中的较 ;大者,存入BIG LEA DX, MESS MOV AX, BIG CALL WRITEINT ; 输出结果 MOV AX, 4C00H INT 21H ; 返回操作系统 END START; 在MAX宏指令定义中,出现了标号L1。该指令被二次调用。这样,在目标代码中会出现二个L1标号,也就是说,在同一个源程序中出现两个同名标号。 为了避免这个错误,宏定义中使用LOCAL局部标号定义伪指令把L1定义为“局部标号”。 宏展开时,汇编程序对局部标号进行换名处理,用??0000、??0001…依次代替各个宏展开中的标号。 注意,LOCAL伪指令应紧接MACRO语句之后,两句之间不得有其他语句。 ;7.2 字符方式显示程序设计 ;7.2.1 文本显示模式和字符属性 ;显示模式;2. 字符属性 ;7.2.2 直接写屏输出 ;使用MOV指令将数据送到显存的某个单元时,在屏幕的对应位置上就会立即显示出相应的字符或图形。 在字符显示模式下,显存从B800H: 0000H开始,每个字符用两个字节来表示:第一个字节为显示字符的ASCII码,第二个字节是字符的显示属性。 以25行×80列的字符显示方式为例,一个屏幕可显示2000个字符,需要约4KB的显示存储器,称为一页。 屏幕上某个坐标位置对应显存中的偏移地址: =页起始偏移地址+2×(字符行坐标×每行列数+列坐标);DATA SEGMENT BUF DW 2000 DUP(?) ;保存显存信息的缓冲区 MESS DB Press Any Key to Review the Screen ! ’ ;显示的信息 LEN EQU $ -MESS DATA ENDS;CODE SEGMENT ASSUME CS: CODE, DS: DATA START: MOV AX,

文档评论(0)

yan698698 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档