- 1、本文档共89页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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,
您可能关注的文档
- 宏观经济学IS-LM-BP模型PPT.ppt
- 国际贸易PPT5-36.ppt
- 汇编语言模拟a.doc
- 陕西省××县(区)矿业权实地核查报告编写要求.ppt
- 汇编程序设计学习指导.doc
- 环境法导论 第一章.ppt
- 汇编中文件的读写.doc
- 蒋立源编译原理第三版第四章 习题与答案1.doc
- 会计从业财金法规复习要点第二章 支付结算法律制度.ppt
- 江苏省宿迁市沭阳银河学校2015届高三政治上学期12月月考试题.doc
- 高校物理实验教学优化方案-实验操作技能提升.pptx
- 先进封装项目风险管理分析报告.docx
- 2024年03月[四川]2024年南江农科村镇银行招考笔试历年参考题库附带答案详解.docx
- 2024年03月[四川]2024年乐山昆仑村镇银行招考笔试历年参考题库附带答案详解.docx
- 2024年03月[四川]2024年攀枝花市商业银行春季校园招考笔试历年参考题库附带答案详解.docx
- 数字化催化交叉研究-探索数字出版对交叉学科的影响.pptx
- 先进封装项目供应链管理方案(范文参考).docx
- 精密医疗仪器生产项目建议书(参考).docx
- 癌症治疗新技术介绍-新技术突破癌症治疗挑战.pptx
- 2024年03月[吉林]2024年长春绿园融泰村镇银行招考笔试历年参考题库附带答案详解.docx
文档评论(0)