《显示程序设计》PPT课件.ppt
《《显示程序设计》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《显示程序设计》PPT课件.ppt(89页珍藏版)》请在三一办公上搜索。
1、1,新 编汇编语言程序设计,2,第7章 显示程序设计,7.1 宏指令 7.2字符方式显示程序设计 7.3图形显示程序设计 习题七,3,键盘与显示器是重要的人机对话界面。显示器通过显示适配器(Video Adapter,也称显卡)与PC机相连,显卡是计算机和显示器的接口。显卡的两种工作方式字符方式也称文本方式,在这种方式下,屏幕只能显示字符及其属性(颜色,亮度等),屏幕被分成若干行和列,最常见的是80列25行。图形方式下的屏幕由一个个像素(Pixel)组成,例如,标准VGA格式的屏幕由480行,每行640个像素组成。通过读写屏幕上各个像素(点),可以显示出各种单色和彩色的图形。,4,7.1宏指令
2、,7.1.1 宏指令的定义 7.1.2 宏指令的使用,5,一组指令/伪指令,用来完成某项功能。宏指令使用之前,需要为这一组指令起一个名字,称为“定义”,此后就可以在程序中多次使用。可以将宏指令的定义存放在一个文件中,建立宏指令库,好像高级语言的库函数,使用时用INCLUDE伪指令将这个库插入源程序。,宏指令,6,宏指令实际上就代表了它对应的一组指令。对程序中出现的宏指令进行汇编时,这条宏指令被它对应的一组指令所代替。如果程序中多次使用宏指令,就等于多次重复拷贝了这个指令组,占用的内存随之增加。调用子程序通过执行CALL指令实现,存在从“主程序”与“子程序”之间的两次控制转移。使用宏指令不存在控
3、制转移的过程。使用子程序和宏指令都可以提高编程效率。子程序占用固定大小的存储空间,被主程序调用时,空间不会随调用次数而增加。但是,宏指令占用存储空间会随着使用次数的增加而增加。,宏指令和子程序的区别:,7,7.1.1 宏指令的定义,形式参数表中的参数可以为“空”(没有),也可以有多个,用逗号分隔。宏体由指令、伪指令和前面已经定义的宏指令组成。,宏指令名MACRO形式参数表;宏体(指令组)ENDM,8,CRLFMACROMOVDL,0AHINT21HMOVDL,0DHINT21HENDM,例7.1 定义一个宏,输出换行回车符。,9,SUM2MACROX,YMOVAX,XADDAX,YENDMSU
4、M3MACRO A,B,CSUM2A,BADDAX,CENDM,例7-2 可以用已经定义的宏指令来定义另一个宏指令,也 就是说,宏指令可以嵌套定义。,10,MAXMACROX,Y,ZLOCALL1MOVAX,XCMPAX,YJGEL1MOVAX,YL1:MOVZ,AXENDM,例7.3 定义一个宏,求两个带符号数中的较大者。,11,7.1.2宏指令的使用,.MODEL SMALL.CODESTART:MOVCX,10MOVBL,0AGAIN:MOVDL,BLMOVAH,02HINT21HCRLFINCBLLOOPAGAINMOVAH,4CHINT 21HEND START,CRLFMACROM
5、OVDL,0AHMOVAH,02HINT21HMOVAH,02HMOVDL,0DHINT21HENDM,例7.4在屏幕上输出09十个字符,每个字符占一行。,12,.MODEL SMALL.DATABUFDW 90,90,234;3个数BIGDW?;存放最大数的单元MESSDB0DH,0AH,The Max Is:$,宏指令的展开,例7.5 利用例7.3定义的宏指令,求3个带符号数中最大的数 并显示。,13,.CODESTART:MOVAX,DATAMOVDS,AXMAXBUF,BUF+2,BIG;求前两个数中的较;大者,存入BIGMAXBUF+4,BIG,BIG;求第三个数与BIG中的较;大者
6、,存入BIGLEADX,MESSMOVAX,BIGCALLWRITEINT;输出结果MOVAX,4C00HINT21H;返回操作系统ENDSTART,14,在MAX宏指令定义中,出现了标号L1。该指令被二次调用。这样,在目标代码中会出现二个L1标号,也就是说,在同一个源程序中出现两个同名标号。为了避免这个错误,宏定义中使用LOCAL局部标号定义伪指令把L1定义为“局部标号”。宏展开时,汇编程序对局部标号进行换名处理,用?0000、?0001依次代替各个宏展开中的标号。注意,LOCAL伪指令应紧接MACRO语句之后,两句之间不得有其他语句。,15,7.2 字符方式显示程序设计,7.2.1 文本显
7、示模式和字符属性7.2.2 直接写屏输出 7.2.3 BIOS显示功能调用,16,7.2.1文本显示模式和字符属性,BIOS的显示功能调用INT 10H的0号功能用于设定显示模式。MOVAH,0MOVAL,显示模式号INT10H;无返回参数。,显示模式,17,18,2.字符属性,19,7.2.2 直接写屏输出,显存(VRAM)用来存放需要在显示器上显示的文本、图形信息 的内存区域。屏幕上每个坐标位置上的字符或图形信息与显存中某些单元的内容一一对应。,20,使用MOV指令将数据送到显存的某个单元时,在屏幕的对应位置上就会立即显示出相应的字符或图形。在字符显示模式下,显存从B800H:0000H开
8、始,每个字符用两个字节来表示:第一个字节为显示字符的ASCII码,第二个字节是字符的显示属性。以25行80列的字符显示方式为例,一个屏幕可显示2000个字符,需要约4KB的显示存储器,称为一页。屏幕上某个坐标位置对应显存中的偏移地址:=页起始偏移地址2(字符行坐标每行列数列坐标),直接写屏方式,21,DATASEGMENTBUF DW2000 DUP(?);保存显存信息的缓冲区MESSDB Press Any Key to Review the Screen!;显示的信息LENEQU$-MESSDATAENDS,例7.6清屏并输出字符串,按任意键后,恢复清屏前屏幕内容。,22,CODESEGM
9、ENT ASSUMECS:CODE,DS:DATASTART:MOVAX,DATA MOVDS,AXMOVAX,0B800HMOVES,AX;ES为显示缓冲区段地址MOVCX,2000;2000个字符MOVSI,0LEADI,BUF;存放显存信息的缓;冲区首地址送DI,23,NEXT:MOVAX,ES:SI;将显存中的内容全部读入到BUFMOVDI,AXADDSI,2ADDDI,2LOOPNEXTMOVDI,0;显存首地址送DIMOVCX,2000;屏幕上2000个字符都写成空格,即清屏MOVAX,0720H;20H是空格的ASCII代码,07H是显示属性CLD;设置串操作指针递增REPSTO
10、SW;将AX内容送显存,共2000次,实现清屏,24,MOVDX,050AH;屏幕坐标(5,10)CALLCALADDR;计算屏幕坐标(5,10)在显存中的偏移地址LEASI,MESS;要显示的字符串首地址送SIMOVCX,LEN;字符串长度送CXMOVAH,1EH;显示属性送入AHNEXT2:MOVAL,SI;字符ASCII码送ALSTOSW;字符ASCII码及其属性送;显存的相应位置INCSI;修改字符串指针LOOPNEXT2;循环LEN次MOVAH,10H;等待键盘输入INT16H,25,;以下程序将BUF中的内容恢复到B800:0000H开始的;4000个字节中,恢复原先的屏幕 MOV
11、CX,2000 LEASI,BUFMOVDI,0REPMOVSWMOVAX,4C00HINT21H,26,;计算偏移地址子程序:入口参数 DH=行数,DL列数;返回参数 DI=偏移地址CALADDRPROCNEARPUSHAXMOVAL,80;总列数为80列MULDH XORDH,DH ADDAX,DX SHLAX,1MOVDI,AX;DI2(字符行坐标总列数列坐标)POPAXRETCALADDRENDPCODEENDSEND START,27,7.2.3 BIOS显示功能调用(INT 10H),28,29,30,31,SCROLL MACRO TOP,LEFT,BOTTOM,RIGHT,AT
12、TRIB MOVAX,0600H;屏幕上卷功能 MOVCH,TOP;左上角行号 MOVCL,LEFT;左上角列号 MOVDH,BOTTOM;右下角行号 MOVDL,RIGHT;右下角列号 MOVBH,ATTRIB;卷入行属性 INT10H;对指定范围屏幕清屏ENDM,CLSMACROSCROLL0,0,24,79,7;宏嵌套定义ENDM,宏定义CLS,清除整个屏幕显示内容,宏定义SCROLL,清除屏幕内一个区域的显示内容,32,SETCUSORMACRO PAGE1,ROW,COLUMN MOVAH,2;设置光标位置 MOVDH,ROW;光标行坐标 MOVDL,COLUMN;光标列坐标 MOV
13、BH,PAGE1;BH=页号 INT 10H;BIOS功能调用ENDM,宏定义SETCURSOR,设置光标位置,宏指令SETMODE,设置显示模式,SETMODEMACROMODE1MOVAH,0MOVAL,MODE1INT10HENDM,33,将上面文本添加到“YLIB.H”中。这样,以后需要进行“清屏”,设置光标操作时,在程序首部写上:“INCLUDE YLIB.H”,在需要地方写上已经定义的宏指令,就可以实现对应的操作。,34,例7.7在屏幕上建立一个5行38列窗口:(5,10)(10,48),蓝底黄字。显示信息后,按任意键退出。,;EX707.ASM.MODEL SMALLINCLUD
14、EYLIB.H;包含清屏、设置光标宏指令的定义.DATAMESSDB Message In Window$MESS1DB Press Any Key To Exit!$.CODESTART:MOVAX,DATAMOVDS,AX,35,CLS;宏指令,清屏SCROLL5,10,10,48,00011110B;滚屏,在屏幕上建立一个蓝底黄字的小窗口;窗口的左上角坐标(5,10),右下角坐标(10,48)SETCUSOR 0,7,20;设置光标位置,坐标(7,20)LEA DX,MESS;在光标位置显示MESS字符串MOVAH,09HINT21H,36,SETCUSOR 0,9,20;设置光标位置,
15、坐标(9,20)LEA DX,MESS1;光标位置显示MESS1字符串MOVAH,09HINT21H MOVAH,10H;等待键盘输入INT16H;BIOS调用MOVAX,4C00HINT21HEND START,37,;EX708.ASM.MODELSMALLINCLUDEYLIB.H;包含清屏、设置光标位置宏指令的定义.DATAMESSDB H,1EH,E,1EH,L,1EH,L,1EH,O,1EH;字符串由字符及属性(蓝底黄字)组成LENEQU($-MESS)/2MESS1DBP,3CH,r,3CH,e,3CH,s,3CH,s,3CH DB,3CH,A,3CH,n,3CH,y,3CH,3
16、CHDBK,3CH,e,3CH,y,3CH;字符串由字符及属性(绿底红字)组成LEN1EQU($-MESS1)/2,例7.8 题意同例7.7,字符串显示由BIOS功能调用AH=13H完成,38,.CODESTART:MOVAX,DATAMOVDS,AXMOVES,AX CLS;宏指令,清屏SCROLL5,10,10,48,00011110B;宏指令,清屏,建立一个窗口LEABP,MESS;ES:BP=字符串首地址MOVAH,13H;AH=13H,显示字符串MOVAL,3;AL=3,光标跟随移动MOVDX,0714H;起始行号7,列号20MOVBH,0;页号0MOVCX,LEN;CX=串长度IN
17、T 10H;BIOS调用,显示字符串MESS,39,MOVAH,13H;MOVAL,3MOVDX,0914H;起始行号9,列号20MOVBH,0MOVCX,LEN1LEA BP,MESS1INT10H;显示字符串MESS1MOVAH,10H;等待键盘输入INT16HMOVAX,4C00HINT21HENDSTART,40,7.3 图形显示程序设计,7.3.1 图形显示模式 7.3.2 用BIOS功能调用设计图形显示程序7.3.3 图形方式下的显存组织 7.3.4 动画程序设计,41,图形方式下,显示屏幕由若干行和列的像素点组成。可以通过写各个像素点,在屏幕上显示出各种各样的图形。使用汇编语言进
18、行图形显示的程序设计,能够发挥汇编语言程序接近底层硬件、运行速度快的优势,产生高品质的动态画面效果。,42,7.3.1图形显示模式,进行图形程序设计时,应选择适当的显示模式。设置图形显示模式的方法:AL模式号,AH=00H,INT 10H。,43,7.3.2 用BIOS功能调用设计图形显示程序,AH=0CH,写像素入口参数:AL=像素值,BH=显示页 CX=X坐标,DX=Y坐标返回参数:无AH=0DH,读像素入口参数:BH=显示页,CX=X坐标,DX=Y坐标返回参数:AL=像素值,INT 10H提供了图形方式下的读像素和写像素的两项功能。,44,WRITE_PIXEL MACRO PAGE1,
19、ROW,COLUMN,COLORMOVAH,0CH;写像素功能MOVAL,COLOR;颜色MOVBH,PAGE1;页号 MOVDX,ROW;行坐标MOVCX,COLUMN;列坐标INT10H;写像素ENDM,写像素宏指令WRITE_PIXEL,45,READ_PIXELMACROPAGE1,ROW,COLUMNMOVAH,0DH;读像素功能MOVBH,PAGE1;页号 MOVDX,ROW;行坐标MOVCX,COLUMN;列坐标INT10H;读像素ENDM,读像素宏指令READ_PIXEL,46,;EX709.ASM.MODEL SMALLINCLUDEYLIB.H;头文件,包括读、写像素的;宏
20、指令定义.DATAOLDMODEDB?XDW100YDW 100COLORDB5;16色可查表72LEN EQU 100;直线的长度(像素点数),例7.9在屏幕上绘制一条直线。,47,.CODESTART:MOVAX,DATAMOVDS,AXMOVAH,0FH;读当前显示模式并保存INT10HMOVOLDMODE,ALSETMODE12H;设置当前显示模式为12HMOVCX,LENMOVDX,Y,48,L1:PUSHCXWRITE_PIXEL 0,Y,X,COLOR;写像素功能,红色INCX;X坐标加1,准备画下一点POPCXLOOPL1MOVAH,0INT16H;等待键盘输入 MOVAH,0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 显示程序设计 显示 程序设计 PPT 课件
链接地址:https://www.31ppt.com/p-5528510.html