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

第章显示程序设计.ppt

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

一组指令/伪指令,用来完成某项功能。 宏指令使用之前,需要为这一组指令起一个名字,称为“定义”,此后就可以在程序中多次使用。 可以将宏指令的定义存放在一个文件中,建立宏指令库,好像高级语言的库函数,使用时用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 .CODE START:MOV CX, 10 MOV BL, 0 AGAIN:MOV DL, BL MOV AH, 02H INT 21H CRLF INC BL LOOP AGAIN MOV AH, 4CH INT 21H END START . 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 文本显示模式和字符属性 7.2.2 直接写屏输出 7.2.3 BIOS显示功能调用 7.2.1 文本显示模式和字符属性 BIOS的显示功能调用INT 10H的0号功能用于设定显示模式。 MOV AH, 0 MOV AL, 显示模式号 INT 10H ;无返回参数。 2. 字符属性 7.2.2 直接写屏输出 显存(VRAM) 用来存放需要在显示器上显示的文本、图形信息 的内存区域。屏幕上每个坐标位置上的字符或图形信息与显存中某些单元的内容一一对应。 使用MOV指令将数据送到显存的某个单元时,在屏幕的对应位置上就会立即显示出相应的字符或图形。 在字符显示模式下,显存从B800H: 0000H开始,每个字符用两个字节来表示:第一个字节为显示字符的ASCII码,第二个字节是字符的显示属性。 以25行×80列的字符显示方式为例,一个屏幕可显示2000个字符,需要约4KB的显示存储器,称为一页。 屏幕上某个坐标位置对应显存中的偏移地址: =页起始偏移地址+2×(字符行坐标×每行列数+列坐标) DATA SEGMENT BUF DW 2000 DUP(?) ;保存显存信息的

文档评论(0)

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

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

1亿VIP精品文档

相关文档