关于汇编实验 屏幕窗口程序

合集下载

汇编实验指导书

汇编实验指导书

实验一汇编语言程序的上机过程一、实验目的掌握汇编语言源程序的编辑、汇编、连接及运行过程,为以后的实验打下基础。

二、实验内容1、输入下列完整的程序STACK SEGMENT STACKDB 200 DUP(?)STACK ENDSDATA SEGMENTBUF DB‘HOW ARE YOU!$’DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSTART:MOV AX,DATAMOV DS,AXLEA DX,BUFMOV AH,9INT 21HMOV AH,4CHINT 21HCODE ENDSEND START(本程序的正确运行结果是在屏幕显示“HOW ARE YOU!”)2、完成课本P193习题5.1。

三、实验步骤(1)利用EDIT编辑源程序;(2)汇编源程序;(3)连接目标程序文件;(4)运行可执行文件。

四、实验报告要求写出以上两个实验内容的题目、源码、具体实验步骤和实验结果。

1.在屏幕上打印字符串”How are you?”。

(1)源代码:;打印字符串"How are you?"STACK SEGMENT STACKDB 200 DUP(?)STACK ENDSDATA SEGMENTBUF DB 'How are you?$'DATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATA, SS:STACKSTART: MOV AX, DATAMOV DS, AXMOV AX, STACKMOV SS, AX;在屏幕上打印字符串LEA DX, BUFMOV AH, 9HINT 21HMOV AH, 4CHINT 21HCODE ENDSEND START(2)具体实验步骤:编辑→保存→masm→link→运行(3)结果截图:2.编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来。

汇编实验-屏幕窗口程序

汇编实验-屏幕窗口程序
汇编实验-屏幕窗口程序
实验五屏幕窗口程序
一、实验的目的与要求
(一)实验目的:掌握显示器I。程序设计的方法,掌握宏的相关概念,以及运用方法。
(二)实验要求:在屏幕上开出三个窗口,它们的行列坐标如下页图所示,光标首先定位在右窗口最下面一行 的行首(15,50),如果从键盘输入字符,则显示在右窗口,同时也显示在下窗口的最下面一行。若需要将字符显示 于左窗口,则先按下左键,接着再从键盘输入字符,字符就会从左窗口的最下行开始显示,同时下窗口也显示左窗 口的内容。当一行字符显示满后,窗口自动向上卷动一行,输入字符继续显示于最低一行,窗口最高一行向上卷动 后消失。编写屏幕窗口程序时,要求将一些功能程序段定义成宏指令,如向上卷动、清屏、
(18,15)
(22,65)
接受字符并判断、在屏幕上显示字符、光标定位。
二、实验正文
实验分析:实验思路比较简单,主要是运用BloS调用,这些查表可得,实验要求要用宏来定义一些基本功能, 宏调用比较简单,把一些基本功能编写成宏,能高效率的执行程序,但是宏也存在着一些缺点,在宏调用时,要宏展 开,这样会占用一定的空间,所以宏是一种以空间换时间的策略,像一些复杂的操作不宜编写成宏。BIoSI。号调用 提供了大量的屏幕、光标显示格式,要注意参数的意义,以便正确的显示结果。
三、流程图如下:
初始化卷行属性 scroll 页号 行、列 附录:程序源代码如下: ・**************************************************************** datassegmentcurydb15curxdb50 在当前பைடு நூலகம்口和下窗口显示 displaymacro ;在当前的窗口打印字符 ;在下窗口输出

Win32汇编 开始了解窗口程序word精品文档9页

Win32汇编  开始了解窗口程序word精品文档9页

Win32汇编开始了解窗口程序Be water,my friends!世界上只有一种失败,那就是半途而废。

窗口是什么?大家每天在使用Windows,屏幕上的一个个方块就是一个个窗口!那么,窗口为什么是这个样子呢?窗口就是程序吗?回想DOS时代的计算屏幕,在1990年Windows 3.0推出之前,计算机的屏幕一直使用文本模式,黑洞洞的底色上漂浮着白色的小字。

对DOS程序来说,屏幕是唯一的,上面有光标表示输入字符的位置,程序运行后往屏幕输出一些信息,退出时输出的信息就留在了屏幕上,然后是第二个程序重复这个过程,当屏幕被写满的时候,整个屏幕上卷一行,最上面一行被去掉,然后程序在最底下新空出来的一行上继续输出。

对于一个单任务的操作系统,这种方式是很合理的,因为平时使用传真机或打字机就是用上卷的方式来容纳新的内容的。

但是如果是多任务呢?两个程序同时往屏幕上写东西或者两个人同时往打字机上打字,那么谁都看不懂混在一起的是什么。

DOS下的TSR(内存驻留)程序是多个程序同时使用一个屏幕的例子,但实质上这并不是多任务,而是TSR将别的程序暂时挂起,挂起的程序不可能在TSR执行期间再向屏幕输出内容,TSR在输出自己的内容之前必须保存屏幕上显示的内容,并在退出的时候把屏幕恢复原来的样子,否则挂起的程序并不知道屏幕已经被改变,在这个过程中,DOS不会去干预中间发生的一切。

Windows是多任务的操作系统,可以同时运行多个程序,同样,各个程序在屏幕上的显示不能互相干扰,而且,多个程序可以看成是"同时"运行的,在后台的程序也可能随时向屏幕输出内容,这中间的高度是由Windows完成的。

Windows采用的方法是给程序一块矩形的屏幕空间,这就是窗口。

应用程序通过Windows向属于自己的窗口显示信息,Windows判断该窗口是不是被别的窗口挡住,并把没有挡住的部分输出到屏幕上,这样屏幕上显示的东西就不会互相覆盖而乱套。

实验一 利用 DEBUG 调试汇编语言程序段

实验一 利用 DEBUG 调试汇编语言程序段

实验名称实验一利用 DEBUG 调试汇编语言程序段一、实验目的1.熟悉 DEBUG 有关命令的使用方法;2.利用 DEBUG 掌握有关指令的功能;3.利用 DEBUG 运行简单的程序段。

二、实验要求1.仔细阅读有关 DEBUG 命令的内容,对有关命令,要求事先准备好使用的例子;三、实验环境DOS 操作系统四、实验内容1.进入和退出 DEBUG 程序;1)开始—运行点确定进入DOS命令窗口图1进入DOS命令窗口2)在命令窗口中输入 dubug 进入 debug 程序图2进入 debug 程序3)进入 debug 窗口后,输入 q 命令退出 debug图3退出 debug2.学会 DEBUG 中的1)D 命令(显示内存数据 D 段地址:偏移地址)例 1:-D100 ;显示 DS 段, 0100 开始的 128 个字节内容-D ;默认段寄存器为 DS,当前偏移地址(刚进入 debug 程序偏移地址为 0100H)图4默认显示 DS 段内容-D DS:100 ;显示 DS 段, 0100H 开始的 128 个字节内容图5显示 DS 段内容-D CS:200 ;显示 CS 段, 0200H 开始的 128 个字节内容图6显示 CS 段内容-D 200:100 ;显示 DS 段, 0200:0100H 开始的 128 个字节内容图7显示 DS段0200:0100H内容-D 200 ;显示 DS 段, 0200H开始的128个字节内容图8显示 DS段0200H开始的内容-D 100 L 10 ;显示 DS 段, 100H 开始的 100H 个字节内容图9显示 DS段100H开始的100H字节内容2)E 命令(修改指定内存)例 1:-E100 41 42 43 44 48 47 46 45-D 100,L08结果:073F:0100 41 42 43 44 48 47 46 45-e 100 修改内存内容-d 100,L08 查看刚才修改的内存内容图10 修改和查看DS段100H开始的80H字节内容例 2: -E 100073F:0100 41. 42 : 42 是操作员键入此命令是将原 100 号内存内容 41 修改为 42,用 D 命令可察看。

窗口基本操作实验报告

窗口基本操作实验报告

窗口基本操作实验报告一、实验目的本实验旨在学习和掌握窗口的基本操作,包括打开新窗口、最小化、最大化和关闭窗口等,以便能够熟练地操作和管理窗口。

二、实验内容1. 打开新窗口在操作系统的桌面上,鼠标右键点击空白处,选择“新建”-> “窗口”来打开一个新的窗口。

也可以通过使用快捷键“Ctrl + N”来新建一个窗口。

2. 最小化和还原窗口点击窗口的右上角的“-”符号,即可将窗口最小化到任务栏中。

在任务栏中,点击对应的窗口图标,将窗口重新还原到屏幕上。

也可以通过使用快捷键“Windows键+ D”将窗口最小化或还原。

3. 最大化和还原窗口点击窗口的右上角的“口”符号,即可将窗口最大化,占据整个屏幕。

再次点击该符号,窗口将还原到原来的大小。

也可以通过使用快捷键“Windows键+ 上箭头”将窗口最大化,使用快捷键“Windows键+ 下箭头”将窗口还原。

4. 关闭窗口点击窗口的右上角的“X”符号,即可关闭当前窗口。

也可以通过使用快捷键“Alt + F4”来关闭窗口。

三、实验步骤1. 在桌面右键点击空白处,选择“新建”-> “窗口”打开一个新的窗口。

2. 点击窗口右上角的“-”符号,将窗口最小化到任务栏中。

3. 在任务栏中,点击对应的窗口图标,将窗口重新还原到屏幕上。

4. 点击窗口右上角的“口”符号,将窗口最大化。

再次点击该符号,窗口将还原到原来的大小。

5. 点击窗口右上角的“X”符号,关闭当前窗口。

四、实验结果与分析通过以上实验操作,我们成功地完成了窗口的基本操作。

我们可以发现,在操作系统中,窗口的打开、关闭、最小化和最大化等操作都非常简便和直观。

这些窗口的基本操作功能方便了我们在同时处理多个任务时的操作和切换。

此外,通过实验我们也了解到了使用快捷键能够提高操作效率,特别是在关闭窗口时,使用快捷键“Alt + F4”比鼠标点击操作更加快捷和便捷。

五、实验总结通过本次实验,我们不仅学习和掌握了窗口的基本操作,还深刻意识到了操作系统的智能化和人性化设计的重要性。

汇编实验四汇编语言上机过程及屏幕字符显示程序

汇编实验四汇编语言上机过程及屏幕字符显示程序

实验报告──学年第学期实验课程汇编语言学生姓名123实验项目汇编语言上机过程及屏幕字符显示程序学院计算机科学技术实验性质专业选修课班级学号实验地点同组人数 1 第组实验日期第周星期第节成绩3环境参数Windows xp一、实验目的及要求二、实验原理、实验内容三、实验仪器设备及材料四、操作方法与实验步骤五、实验数据记录及处理六、实验结果分析及讨论一:1、熟练掌握汇编语言的程序格式,程序设计方法;学会使用masm6.11对源程序进行编译、链接、调试和运行2、利用DOS功能调用INT21H的2号和9号功能进行屏幕显示的方法。

3、利用^Break退出程序的方法及局限性。

4、汇编程序的编写二:实验任务编写一个简化的段定义结构程序:先提示输入数字“Input number:0-9”,然后在下一行显示输入的数字,结束;如果不是键入了0-9 数字,就提示错误“ERROR!”,继续等待输入数字。

源代码:编译连接:实验结果:此程序没按要求将数字在下一行输出。

且程序中用到了多余的指令int 3.修改“done:”段done: mov dl,almov ah,02hint 21h.exit 02.编写一个完整的段定义结构程序:从键盘输入一个字符串(不超过255个),将其中的小写字母转换成大写字母,然后按原来的顺序在屏幕上显示。

要求对以上两个程序,进行编译,链接,调试,运行,给出具体步骤源代码:请问程序中的第39行错误用了一个标号。

编译连接:运行结果:三、小结1、学会使用edit进行程序的编写。

2、学会写简易段程序和完整段程序。

3、学会了在dos下进行汇编程序的编译、连接、调试和运行。

4、学会了使用21号中断的2号9号功能进行字符的显示。

5、汇编基础知识不扎实,指令经常写错,要多练习。

仪器设备损坏、非正常损耗材料(试剂)及处理情况:无教师对报告的最终评价及处理意见:2段程序均有错。

教师签字:年月日。

2.8吋彩色液晶屏汇编语言实验程序

2.8吋彩色液晶屏汇编语言实验程序

上一次发表的是用C语言编写的2.8 吋彩色液晶屏实验程序,这一次是汇编语言编写的2.8 吋彩色液晶屏实验程序,两个程序的运行结果是完全一样的,只是编程用的编程语言不同而已。

对于初学C51单片机的朋友们学习不同语言编程能有所帮助,本程序是经过本人上机测试完全通过Keil 4 验证的,可以放心的使用。

本程序驱动ILI9341 或RM68090 芯片驱动的2.8 吋彩色液晶屏。

显示点阵数:240RGB(W)×320(H)。

芯片为宏晶科技公司的STC12C5A60S2或STC12LE5A60S2 芯片。

注:RGB 为565 格式的16bit。

$INCLUDE(STC12C5A.INC);===============================================;编程日期:2014年09月25日;===============================================;初始化定义和数据单元;;===============================================RSB BIT P3.3 ;寄存器选择,0:寄存器,1:参数CSB BIT P3.4 ;片选,低电平有效RESET BIT P3.5 ;复位WRB BIT P3.6 ;写数据信号RDB BIT P3.7 ;读数据信号;===============================================;主程序开始;===============================================ORG 0000HLJMP MAIN ;开始ORG 0100HMAIN:MOV R0,#7FHCLR ACLEARED:MOV @R0,ADJNZ R0, CLEAREDMOV SP,#0E0HSETB RESETLCALL DELAY1MSCLR RESETLCALL DELAY10MSSETB RESETLCALL DELAY120MSLCALL REGISTER_SETTINGS ;配置9341;===============================================;循环程序;===============================================CYCLE:MOV R7,#0FFHMOV R6,#0FFHLCALL DISPLAY ;显示白色MOV R7,#00HMOV R6,#00HLCALL DISPLAY ;显示黑色LCALL DELAY1SLCALL PICTURES ;显示图片LCALL DELAY1SMOV R7,#0F8HMOV R6,#00HLCALL DISPLAY ;显示红色ACALL DELAY1SMOV R7,#07HMOV R6,#0E0HLCALL DISPLAY ;显示绿色ACALL DELAY1SMOV R7,#00HMOV R6,#1FHLCALL DISPLAY ;显示蓝色LCALL DELAY1SMOV R7,#0FFHMOV R6,#0E0HLCALL DISPLAY ;显示黄色LCALL DELAY1SMOV R7,#0F8HMOV R5,#1FHLCALL DISPLAY ;显示紫色LCALL DELAY1SMOV R7,#07HMOV R6,#0FFHLCALL DISPLAY ;显示青色LCALL DELAY1SCPL P4.3LJMP CYCLE ;返回循环程序;=============================================== ;显示设置,区域和数据240x320;=============================================== DISPLAY:MOV 22H,R7MOV 23H,R6LCALL SETTINGS_AREA ;设置区域CLR AMOV R3,AMOV R2,ADISPLAY01:MOV R4,#0F0HDISPLAY02:MOV R7,22HLCALL TWO_DATA ;写双字节显示数据DJNZ R4, DISPLAY02 ;240列INC R3CJNE R3,#00H,DISPLAY03INC R2DISPLAY03:CJNE R2,#01H,DISPLAY01CJNE R3,#40H,DISPLAY01 ;320行RET;=============================================== ;显示图片;=============================================== PICTURES:LCALL SETTINGS_AREA ;设置区域MOV R1,#04H ;显示4幅图片PICTURES01:MOV DPTR,#IMAGE_PIXELSMOV R2,#50HPICTURES02:MOV R3,#0F0HPICTURES03:CLR AMOVC A,@A+DPTRMOV R7,AINC DPTRCLR AMOVC A,@A+DPTRMOV R6,AINC DPTRLCALL TWO_DATA ;写DAT文件,双字节DJNZ R3,PICTURES03DJNZ R2,PICTURES02DJNZ R1,PICTURES01RET;=============================================== ;设置区域;=============================================== SETTINGS_AREA:MOV R7,#2AH ;列地址时钟LCALL COMMAND ;写8位命令MOV R7,#00HLCALL WRITE_DATA ;写8位数据参数MOV R7,#00HLCALL WRITE_DATA ;写8位数据参数LCALL WRITE_DATA ;写8位数据参数MOV R7,#0EFHLCALL WRITE_DATA ;写8位数据参数MOV R7,#2BH ;页地址设置LCALL COMMAND ;写8位命令MOV R7,#00HLCALL WRITE_DATA ;写8位数据参数MOV R7,#00HLCALL WRITE_DATA ;写8位数据参数MOV R7,#01HLCALL WRITE_DATA ;写8位数据参数MOV R7,#3FHLCALL WRITE_DATA ;写8位数据参数MOV R7,#2CH ;存储器写LJMP COMMAND ;写8位命令RET;=============================================== ;写寄存器命令;=============================================== COMMAND:CLR RSBSETB RDBCLR CSBMOV P0,R7CLR WRBSETB WRBSETB CSBRET;=============================================== ;写数据参数;=============================================== WRITE_DATA:SETB RSBSETB RDBCLR CSBMOV P0,R7CLR WRBSETB WRBSETB CSBRET;=============================================== ;写双字节显示数据;===============================================SETB RSBSETB RDBCLR CSBMOV P2,R7MOV P0,R6CLR WRBSETB WRBSETB CSBRET;=============================================== ;延时1mS;=============================================== DELAY1MS:MOV R6,#8DHDL0:MOV R5,#39HDJNZ R5,$DJNZ R6,DL0NOPRET;=============================================== ;延时10mS;=============================================== DELAY10MS:MOV R7,#0BDHDL1:MOV R6,#0AEHDL2:MOV R5,#01HDJNZ R5,$DJNZ R6,DL2DJNZ R7,DL1RET;=============================================== ;延时120mS;=============================================== DELAY120MS:MOV R7,#75HDL3:MOV R6,#78HDL4:MOV R5,#45HDJNZ R5,$DJNZ R6,DL4DJNZ R7,DL3DJNZ R5,$RET;=============================================== ;延时1S;=============================================== DELAY1S:MOV R7,#0DFHDL5:MOV R6,#0D4HDL6:MOV R5,#0ADHDJNZ R5,$DJNZ R6,DL6DJNZ R7,DL5MOV R5,#03HDJNZ R5,$NOPRET;=============================================== ;ILI9341寄存器配置;=============================================== REGISTER_SETTINGS:MOV R7,#0CFH ;LCALL COMMAND ;写寄存器命令MOV R7,#00H ;LCALL WRITE_DATA ;写8位数据MOV R7,#0D9HLCALL WRITE_DATAMOV R7,#30HLCALL WRITE_DATAMOV R7,#0EDHLCALL COMMANDMOV R7,#64HLCALL WRITE_DATAMOV R7,#03HLCALL WRITE_DATAMOV R7,#12HLCALL WRITE_DATAMOV R7,#81HLCALL WRITE_DATAMOV R7,#0E8HLCALL COMMANDMOV R7,#85HLCALL WRITE_DATAMOV R7,#10HMOV R7,#78H LCALL WRITE_DATA MOV R7,#0CBH LCALL COMMAND MOV R7,#39H LCALL WRITE_DATA MOV R7,#2CH LCALL WRITE_DATA MOV R7,#00H LCALL WRITE_DATA MOV R7,#34H LCALL WRITE_DATA MOV R7,#02H LCALL WRITE_DATA MOV R7,#0F7H LCALL COMMAND MOV R7,#20H LCALL WRITE_DATA MOV R7,#0EAH LCALL COMMAND MOV R7,#00H LCALL WRITE_DATA MOV R7,#00H LCALL WRITE_DATA MOV R7,#0C0H LCALL COMMAND MOV R7,#21H LCALL WRITE_DATA MOV R7,#0C1H LCALL COMMAND MOV R7,#12H LCALL WRITE_DATA MOV R7,#0C5H LCALL COMMAND MOV R7,#32H LCALL WRITE_DATA MOV R7,#3CH LCALL WRITE_DATA MOV R7,#0C7H LCALL COMMAND MOV R7,#0C1H LCALL WRITE_DATA MOV R7,#36H LCALL COMMAND MOV R7,#08HLCALL COMMAND MOV R7,#55H LCALL WRITE_DATA MOV R7,#0B1H LCALL COMMAND MOV R7,#00H LCALL WRITE_DATA MOV R7,#18H LCALL WRITE_DATA MOV R7,#0B6H LCALL COMMAND MOV R7,#0AH LCALL WRITE_DATA MOV R7,#0A2H LCALL WRITE_DATA MOV R7,#0F2H LCALL COMMAND MOV R7,#00H LCALL WRITE_DATA MOV R7,#26H LCALL COMMAND MOV R7,#01H LCALL WRITE_DATA MOV R7,#0E0H LCALL COMMAND MOV R7,#0FH LCALL WRITE_DATA MOV R7,#20H LCALL WRITE_DATA MOV R7,#1EH LCALL WRITE_DATA MOV R7,#09H LCALL WRITE_DATA MOV R7,#12H LCALL WRITE_DATA MOV R7,#0BH LCALL WRITE_DATA MOV R7,#50H LCALL WRITE_DATA MOV R7,#0BAH LCALL WRITE_DATA MOV R7,#44H LCALL WRITE_DATA MOV R7,#09HLCALL WRITE_DATA MOV R7,#05H LCALL WRITE_DATA MOV R7,#23H LCALL WRITE_DATA MOV R7,#21H LCALL WRITE_DATA MOV R7,#00H LCALL WRITE_DATA MOV R7,#0E1H LCALL COMMAND MOV R7,#00H LCALL WRITE_DATA MOV R7,#19H LCALL WRITE_DATA MOV R7,#19H LCALL WRITE_DATA MOV R7,#00H LCALL WRITE_DATA MOV R7,#12H LCALL WRITE_DATA MOV R7,#07H LCALL WRITE_DATA MOV R7,#2DH LCALL WRITE_DATA MOV R7,#28H LCALL WRITE_DATA MOV R7,#3FH LCALL WRITE_DATA MOV R7,#02H LCALL WRITE_DATA MOV R7,#0AH LCALL WRITE_DATA MOV R7,#08H LCALL WRITE_DATA MOV R7,#25H LCALL WRITE_DATA MOV R7,#2DH LCALL WRITE_DATA MOV R7,#0FH LCALL WRITE_DATA MOV R7,#11H LCALL COMMAND LCALL DELAY120MSLJMP COMMANDRET;===============================================;显示图像38400字节;===============================================IMAGE_PIXELS:DB 0xC4,0x8,0xBC,0x2A,0x8B,0x6A,0x49,0xA8,0x18,0x88,0x31,0x4D,0x41,0xCE,0x31,0x4B DB 0x18,0xA8,0x18,0x87,0x10,0x85,0x10,0x85,0x10,0x85,0x10,0xA5,0x10,0xA5,0x18,0xA6 DB 0x10,0xA5,0x10,0x85,0x10,0xA6,0x8,0xA6,0x8,0x64,0x38,0x64,0x88,0xE7,0xD1,0x69 DB 0xD1,0x6,0xD1,0x7,0xD1,0x8,0xD9,0x8,0xD8,0xE8,0xD0,0xE7,0xC9,0x7,0xC1,0x47DB 0xD0,0xE8,0xD0,0xE8,0xD0,0xE7,0xD0,0xE7,0xD1,0x7,0xD1,0x7,0xD1,0x7,0xD1,0x7 DB 0xD0,0xE7,0xC8,0xE6,0xC9,0x7,0xD0,0xE7,0xD0,0xA6,0xC0,0xE7,0xC2,0x4B,0xCB,0xF0 DB 0xFE,0xBB,0xFF,0xBE,0xF7,0xFF,0xEF,0xBE,0xFF,0x9F,0xFF,0xBF,0xEF,0x7F,0xC7,0x3D DB 0xCE,0xFC,0xDF,0x5E,0xEF,0x9E,0xEF,0xDF,0xEF,0xFF,0xEF,0xDE,0xFF,0xBF,0xFF,0xBF DB 0xEF,0xFF,0xF7,0xFF,0xF7,0xFF,0xF7,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xDF,0xFF,0xFFDB 0xFF,0xFF,0xFF,0xDF,0xFF,0xDF,0xFF,0xDF,0xFF,0xDF,0xFF,0xDF,0xFF,0xDF,0xFF,0xDFDB 0xF7,0xDF,0xF7,0xDF,0xFF,0xDF,0xFF,0xDF,0xFF,0xDF,0xFF,0xDF,0xFF,0xDF,0xFF,0xDF DB 0xF7,0xDD,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xEF,0x9E,0xEF,0x7E,0xFF,0xBF,0xFF,0xFFDB 0xF7,0xBD,0xFF,0xDE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF7,0xBFDB 0xC6,0x39,0x8C,0xD4,0x7C,0x93,0x8D,0x35,0xAE,0x3A,0xAE,0x5A,0xB6,0x9A,0xCF,0x1C DB 0xCF,0x5D,0xCF,0x5D,0xCF,0x7E,0xCF,0x7E,0xCF,0x7E,0xCF,0x5E,0xCF,0x5D,0xCF,0x5D DB 0xCF,0x3D,0xC6,0xFC,0xBE,0xBB,0xB6,0x9A,0xAE,0x39,0x9D,0xD7,0x95,0x96,0x95,0x76 DB 0x8C,0xB2,0xA5,0x96,0xD7,0x1C,0xF7,0xFF,0xFF,0xDF,0xFF,0xFF,0xFF,0xFF,0xFF,0xBF DB 0xF7,0xFF,0xF7,0xFF,0xF7,0xFF,0xF7,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFFDB 0xFF,0xFF,0xF7,0xFF,0xFF,0xFF,0xFE,0x1A,0xE3,0xD3,0xE3,0x72,0xE3,0x72,0xEA,0xF1 DB 0xE2,0xD1,0xE2,0xD1,0xE2,0xB1,0xE2,0xB1,0xDA,0xF2,0xDB,0x53,0xE3,0xD4,0xE4,0x36 DB 0xB5,0x16,0xAC,0xB5,0xC4,0xF7,0xE5,0x38,0xEC,0xD7,0xEC,0xB7,0xED,0x18,0xE5,0x37 DB 0xE5,0x38,0xE3,0xF4,0xDA,0x2F,0xE9,0xF0,0xE2,0x50,0xD2,0x50,0xE2,0xD1,0xE2,0xD2 DB 0xE2,0xD1,0xE2,0xD1,0xE2,0xD1,0xE2,0x91,0xE2,0xB1,0xE3,0x53,0xDC,0xB6,0xD5,0xB8 DB 0xB5,0x99,0xD6,0x9D,0xD6,0xDD,0xE7,0x7F,0xF7,0xDF,0xFF,0xDF,0xFF,0xFF,0xEF,0xBE DB 0xFF,0x5D,0xDC,0xB3,0xB1,0xC9,0xB8,0xA5,0xD1,0x28,0xE1,0xEB,0xE2,0x4D,0xDA,0x6D DB 0xD1,0xEA,0xB9,0x7,0xA8,0xE6,0x90,0xE5,0x98,0xE6,0xC1,0x28,0xD9,0x69,0xDA,0xA DB 0xEA,0x4E,0x89,0xEC,0x20,0xE9,0x29,0x4C,0x39,0x4D,0x29,0xC,0x39,0xAE,0x39,0x6D DB 0x39,0x8E,0x39,0x8E,0x39,0xAE,0x41,0xAE,0x41,0xAF,0x41,0xAF,0x41,0xAE,0x41,0xAE DB 0x39,0xAE,0x39,0x8E,0x39,0x8D,0x31,0x6D,0x31,0x4C,0x31,0x2C,0x29,0xB,0x29,0xB DB 0x29,0xA,0x20,0xA8,0x18,0x87,0x10,0x67,0x10,0xA6,0x41,0x88,0xAC,0xE,0xD4,0x6D DB 0x9B,0x25,0x9B,0x67,0x5A,0x25,0x18,0x84,0x18,0xA9,0x29,0x2D,0x29,0x2B,0x21,0x7 DB 0x18,0x86,0x18,0xA6,0x10,0x85,0x10,0x84,0x10,0x84,0x10,0xC5,0x10,0x85,0x8,0x45 DB 0x18,0xA5,0x10,0x65,0x10,0x66,0x8,0x65,0x10,0x64,0x58,0xC6,0xB9,0x28,0xE8,0xC8 DB 0xC9,0x6,0xD1,0x7,0xD1,0x8,0xD0,0xE8,0xC8,0xE8,0xC9,0x8,0xC9,0x27,0xC8,0xE6DB 0xD0,0xE8,0xD0,0xE8,0xD0,0xE8,0xD0,0xE7,0xD1,0x7,0xD1,0x7,0xD1,0x7,0xD1,0x7 DB 0xD9,0x7,0xD1,0x7,0xC9,0x7,0xD1,0x8,0xC8,0xE7,0xC9,0xEB,0xEC,0xF4,0xFF,0xDDDB 0xFF,0xDF,0xFF,0xFF,0xF7,0xDF,0xEF,0xFF,0xE7,0xFF,0xD7,0x7E,0xDE,0xDD,0xE6,0xBD DB 0xDF,0x7D,0xEF,0xDF,0xF7,0x9F,0xF7,0x7F,0xFF,0xFF,0xFF,0xFF,0xF7,0xDE,0xFF,0xFFDB 0xFF,0xDF,0xFF,0xDF,0xFF,0xDF,0xFF,0xDF,0xF7,0xBF,0xF7,0xBF,0xF7,0xBF,0xF7,0xBFDB 0xF7,0xDE,0xF7,0xDE,0xF7,0xBE,0xF7,0xBE,0xF7,0xBE,0xF7,0xBF,0xF7,0xBF,0xF7,0xBE DB 0xF7,0xBF,0xF7,0x9F,0xF7,0x9F,0xF7,0xBF,0xF7,0xDE,0xF7,0xDE,0xF7,0xDD,0xF7,0xDC DB 0xFF,0xFF,0xF7,0xBF,0xF7,0xBE,0xF7,0xDE,0xF7,0xDF,0xF7,0xDF,0xFF,0xFF,0xFF,0xFFDB 0xF7,0xFE,0xE7,0x9E,0xA5,0xB7,0x84,0xF5,0x95,0x77,0xA6,0x19,0xBE,0xDB,0xBE,0x9A DB 0xCF,0x3D,0xCF,0x5D,0xCF,0x5E,0xCF,0x7E,0xCF,0x7E,0xCF,0x5D,0xCF,0x5D,0xC7,0x3D DB 0xC7,0x1D,0xBE,0xDB,0xB6,0x7A,0xAE,0x59,0xA5,0xF8,0x9D,0x97,0x95,0x76,0x95,0x96 DB 0xDE,0x9B,0xFF,0xDF,0xF7,0xFF,0xF7,0xDF,0xFF,0xFF,0xFF,0xDF,0xFF,0xDF,0xFF,0xFFDB 0xFF,0xDF,0xFF,0xDF,0xFF,0xDF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFFDB 0xFF,0xFF,0xF7,0xFF,0xFF,0xFF,0xFE,0x5B,0xE3,0xB3,0xDB,0x31,0xE2,0xF1,0xE2,0x6FDB 0xE2,0x70,0xE2,0x70,0xE2,0x91,0xE2,0xD1,0xDB,0x53,0xDB,0xF4,0xDC,0xB6,0xDD,0x38 DB 0x85,0x55,0x84,0xB3,0xA5,0x36,0xD5,0xDA,0xE5,0x79,0xE5,0x58,0xE5,0x98,0xDD,0x77 DB 0xC5,0x16,0xDB,0xD4,0xE2,0xF,0xF1,0xCF,0xE2,0xF,0xD2,0x50,0xE2,0xD1,0xDA,0x30DB 0xE2,0x90,0xE2,0xB1,0xE2,0xB1,0xE2,0xB1,0xEA,0xF2,0xEB,0xD5,0xDD,0x17,0xCD,0xF9 DB 0xBE,0x3A,0xD7,0x3D,0xD7,0x7D,0xEF,0xDF,0xF7,0xDE,0xEF,0x7D,0xF7,0xDF,0xF7,0xFF DB 0xEF,0xFF,0xFF,0xBE,0xFD,0x15,0xC9,0xA9,0xB8,0x85,0xE1,0xCA,0xF2,0xAE,0xDA,0x2C DB 0xE2,0x2C,0xC1,0x8,0xA0,0xC6,0x88,0xC5,0x98,0xE6,0xC1,0x28,0xD1,0x69,0xD2,0xA DB 0xEA,0x2D,0x9A,0x4D,0x21,0x9,0x29,0x6C,0x41,0xAE,0x31,0x2C,0x41,0xCE,0x39,0x8E DB 0x41,0xAF,0x41,0xAF,0x41,0xCF,0x41,0xCF,0x41,0xCF,0x41,0xCF,0x41,0xCF,0x41,0xCF DB 0x41,0xAE,0x39,0xAE,0x39,0x8E,0x39,0x8E,0x31,0x6D,0x31,0x4C,0x31,0x2C,0x29,0x2C DB 0x29,0xA,0x20,0xC8,0x28,0xE9,0x10,0x87,0x0,0x25,0x41,0x88,0x9B,0x8C,0xE4,0xCEDB 0xA3,0xA5,0x59,0xA4,0x20,0x66,0x10,0x46,0x20,0xE9,0x31,0x4C,0x20,0xCA,0x18,0xC7 DB 0x10,0x86,0x10,0x85,0x10,0xA5,0x10,0xA5,0x10,0xA5,0x10,0xA5,0x10,0x85,0x10,0xA6 DB 0x8,0x85,0x28,0x47,0x18,0x88,0x8,0x86,0x40,0x3,0xB1,0x28,0xC9,0x7,0xD0,0xE7DB 0xC9,0x27,0xD1,0x28,0xD0,0xE7,0xD1,0x7,0xC9,0x27,0xB8,0xC6,0xC0,0xE7,0xD1,0x48 DB 0xE0,0x66,0xD9,0x48,0xC1,0x67,0xC1,0x26,0xD9,0x7,0xD8,0xC7,0xC8,0xC6,0xB9,0x48 DB 0xC0,0xE5,0xE1,0x28,0xD0,0xA7,0xB1,0x48,0xD4,0xD4,0xEF,0x5C,0xFF,0xFF,0xFF,0xDF DB 0xFF,0xFF,0xFF,0xFF,0xF7,0xFF,0xF7,0xBF,0xEF,0x9E,0xEF,0x9E,0xE7,0x7E,0xEF,0x9EDB 0xF7,0xBE,0xF7,0xBF,0xF7,0xDF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFFDB 0xFF,0xDF,0xFF,0xDF,0xFF,0xDE,0xFF,0xDF,0xF7,0xBE,0xFF,0xBF,0xFF,0xBF,0xFF,0xBFDB 0xF7,0xBF,0xEF,0xBE,0xEF,0x9E,0xEF,0x9E,0xE7,0x9E,0xE7,0x9E,0xE7,0x9E,0xE7,0x9EDB 0xEF,0x9E,0xE7,0x9E,0xE7,0x7E,0xE7,0x7E,0xE7,0x7E,0xE7,0x7E,0xE7,0x7E,0xEF,0x7E DB 0xEF,0x9E,0xF7,0x9E,0xF7,0x9E,0xF7,0x9E,0xF7,0x9E,0xF7,0x9E,0xF7,0x9E,0xF7,0x9F DB 0xF7,0x9F,0xF7,0x9E,0xF7,0x9E,0xF7,0x9E,0xF7,0x9E,0xEF,0x9E,0xEF,0x9F,0xEF,0xBFDB 0xF7,0xDE,0xFF,0xFF,0xF7,0xBE,0xB6,0x18,0x8C,0xD3,0x9D,0x97,0xB6,0x9B,0xAE,0x7A DB 0xBF,0x3C,0xC7,0x5C,0xCF,0x7D,0xCF,0x7D,0xCF,0x5D,0xC7,0x3D,0xC7,0x1D,0xBF,0x1C DB 0xBE,0xBC,0xAE,0x5A,0xA6,0x19,0x9E,0x18,0x9D,0xD7,0xA5,0xD7,0xCE,0xBA,0xF7,0xBF DB 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF7,0xBE,0xFF,0xFF,0xFF,0xFF,0xFF,0xDF,0xFF,0xFFDB 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFFDB 0xFF,0xFF,0xFF,0xFF,0xFF,0xDF,0xF6,0xDD,0xE5,0x18,0xCB,0x33,0xDA,0x50,0xEA,0x31 DB 0xDA,0x90,0xDA,0x91,0xE2,0xD2,0xE3,0x74,0xE4,0x56,0xDD,0x18,0xCD,0xB9,0xC5,0xF9 DB 0xAD,0xDA,0xAD,0xDA,0xA5,0xB9,0x9D,0x77,0x9D,0x78,0xA5,0x99,0x9D,0x78,0x94,0xF7 DB 0x74,0x74,0xAC,0x35,0xDB,0x74,0xE2,0x51,0xE1,0xEF,0xDA,0xF,0xE2,0x30,0xE2,0xFDB 0xDA,0x10,0xE2,0x91,0xDA,0xF2,0xDB,0x12,0xE3,0xD4,0xEC,0xD8,0xD5,0xB9,0xBD,0xB9 DB 0xC6,0x7B,0xE7,0x5E,0xF7,0xBF,0xF7,0x9F,0xF7,0xBF,0xF7,0xBF,0xEF,0x9F,0xEF,0x9FDB 0xEF,0x9E,0xDF,0xFD,0xEF,0xFD,0xF6,0x17,0xCA,0x6C,0xC9,0xAB,0xF2,0xB0,0xE9,0xCEDB 0xEA,0xD,0xB1,0x89,0x80,0xC5,0x80,0xA4,0xB0,0xE7,0xC9,0x8,0xD1,0x48,0xD1,0xCA DB 0xE2,0x2B,0xC2,0x2E,0x50,0x8A,0x31,0x6E,0x31,0xAE,0x41,0x6E,0x49,0x8F,0x39,0xEF DB 0x41,0xD0,0x41,0xD0,0x49,0xF0,0x49,0xF0,0x49,0xF0,0x49,0xF0,0x49,0xF0,0x49,0xF0 DB 0x41,0xD0,0x41,0xD0,0x41,0xAF,0x41,0xAF,0x39,0x8E,0x39,0x8E,0x39,0x6D,0x31,0x4D DB 0x31,0x4C,0x20,0xEA,0x18,0xE8,0x10,0x87,0x18,0x68,0x39,0x25,0x9B,0xCA,0xC4,0xD0 DB 0xAC,0x7,0x59,0xC5,0x20,0x86,0x18,0x87,0x20,0xE9,0x29,0xB,0x18,0xA9,0x10,0xA6 DB 0x10,0x85,0x10,0x85,0x10,0xA5,0x10,0xA5,0x10,0x85,0x10,0x85,0x10,0x86,0x10,0xA6 DB 0x8,0xA5,0x20,0x47,0x18,0x89,0x10,0xA7,0x60,0x86,0xC1,0x69,0xC9,0x28,0xD1,0x8 DB 0xC1,0x27,0xC9,0x7,0xC8,0xE7,0xC9,0x7,0xC1,0x7,0xB8,0xE7,0xC9,0x48,0xD9,0x69DB 0xE9,0x8A,0xC0,0x85,0xC8,0xC6,0xE1,0x88,0xD1,0x27,0xD0,0xE7,0xE1,0x8,0xE0,0xC8 DB 0xE9,0x68,0xB8,0x44,0xC1,0x68,0xE4,0x73,0xFF,0x9D,0xFF,0xFF,0xFF,0xFF,0xFF,0x7EDB 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF7,0xDF,0xF7,0xBF,0xF7,0xBF,0xEF,0xBFDB 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFFDB 0xFF,0xFF,0xFF,0xDF,0xFF,0xDF,0xF7,0xBF,0xF7,0xBF,0xF7,0x9F,0xEF,0x9E,0xEF,0x9EDB 0xEF,0x7E,0xEF,0x7E,0xE7,0x7E,0xE7,0x5E,0xE7,0x5D,0xE7,0x5D,0xDF,0x5D,0xDF,0x5D DB 0xE7,0x5E,0xE7,0x5E,0xE7,0x3E,0xE7,0x3E,0xE7,0x3E,0xE7,0x5E,0xE7,0x5E,0xE7,0x5E DB 0xE7,0x5D,0xE7,0x5E,0xE7,0x7E,0xEF,0x7E,0xEF,0x7E,0xEF,0x9E,0xEF,0x9F,0xF7,0xBFDB 0xEF,0x7E,0xEF,0x9E,0xF7,0x9E,0xEF,0x7E,0xEF,0x7D,0xEF,0x5E,0xE7,0x7E,0xE7,0x7FDB 0xEF,0x7D,0xEF,0x9E,0xF7,0xFF,0xE7,0x9E,0xB6,0x39,0x95,0x56,0x9D,0xD7,0xB6,0x9B DB 0xBF,0x1C,0xC7,0x1C,0xC7,0x3D,0xC7,0x5D,0xC7,0x3D,0xC7,0x1D,0xBE,0xFC,0xBE,0xDC DB 0xB6,0x9B,0xAE,0x5A,0x9D,0xD7,0x9D,0xB7,0xBE,0x79,0xE7,0x9E,0xFF,0xFF,0xFF,0xFF DB 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF7,0xBE,0xFF,0xFFDB 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xDF,0xFF,0xFFDB 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x5E,0xED,0xD9,0xDB,0xF4,0xDA,0xD1,0xEA,0x91 DB 0xDA,0x90,0xDA,0xF1,0xE3,0x93,0xEC,0x55,0xE4,0xF8,0xDD,0x99,0xCD,0xF9,0xBE,0x19 DB 0xBE,0x5B,0xC6,0x7B,0xC6,0x7B,0xBE,0x5A,0xBE,0x3A,0xBE,0x3A,0xAD,0xD9,0xA5,0x57 DB 0x8C,0xF6,0xAC,0xD6,0xD4,0x56,0xE3,0x74,0xE2,0x91,0xDA,0x2F,0xDA,0x2F,0xDA,0x50 DB 0xE2,0x91,0xE2,0xD1,0xDB,0x32,0xDB,0x73,0xE4,0x35,0xE5,0x18,0xD5,0xB9,0xB5,0xF9 DB 0xD6,0xDC,0xEF,0x9F,0xF7,0xDF,0xEF,0x9F,0xEF,0x7E,0xEF,0x7E,0xE7,0x5E,0xDF,0x3EDB 0xE7,0x5F,0xF7,0x7F,0xF7,0x7E,0xFF,0xFF,0xFE,0x9B,0xD2,0xEE,0xC1,0x8A,0xD2,0x8D DB 0xEA,0xC,0xB9,0x89,0x88,0xE5,0x88,0xC5,0xB0,0xE7,0xC8,0xE8,0xD1,0x48,0xD1,0xCA DB 0xE2,0xB,0xCA,0x2E,0x58,0xEB,0x31,0x8E,0x31,0xAE,0x41,0x6E,0x49,0xAF,0x39,0xEF DB 0x49,0xF0,0x49,0xF0,0x49,0xF0,0x4A,0x11,0x4A,0x11,0x4A,0x11,0x4A,0x11,0x4A,0x11 DB 0x49,0xF1,0x49,0xF0,0x49,0xF0,0x49,0xD0,0x41,0xCF,0x41,0xAE,0x39,0x8E,0x39,0x8D DB 0x31,0x6C,0x21,0xB,0x21,0x29,0x18,0xA8,0x10,0x29,0x30,0xE5,0x9B,0xAB,0xCC,0xD2 DB 0xB4,0x4A,0x51,0x86,0x18,0x66,0x18,0xC8,0x20,0xE8,0x20,0xEA,0x18,0xA8,0x10,0x85 DB 0x10,0x85,0x10,0x85,0x10,0x85,0x10,0x85,0x10,0x85,0x10,0x86,0x10,0x87,0x10,0xA7 DB 0x10,0xC7,0x20,0x88,0x20,0xC9,0x28,0xC8,0x89,0x49,0xD1,0x69,0xC9,0x27,0xD0,0xE7 DB 0xB9,0x27,0xB8,0xE6,0xC9,0x7,0xC9,0x27,0xB8,0xE6,0xB9,0x27,0xD1,0xA9,0xD9,0xAA DB 0xC9,0x28,0xD9,0x28,0xD8,0xE7,0xD0,0xC6,0xD1,0x7,0xD9,0x7,0xD0,0xA7,0xD0,0x46 DB 0xC8,0xC7,0xA9,0x7,0xEC,0xD4,0xFF,0x7D,0xFF,0xFF,0xEF,0xFE,0xFF,0xFF,0xFF,0xFFDB 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFFDB 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xDF,0xF7,0xDEDB 0xF7,0xBF,0xF7,0x9F,0xEF,0x9F,0xE7,0x7E,0xE7,0x7E,0xE7,0x5E,0xDF,0x5E,0xDF,0x5EDB 0xDF,0x1E,0xDF,0x1D,0xDF,0x1D,0xD7,0x1D,0xD7,0x1D,0xD7,0x1D,0xD7,0x1D,0xD7,0x1D DB 0xD7,0x1E,0xD6,0xFE,0xD6,0xFD,0xD6,0xFD,0xD6,0xFD,0xD6,0xFD,0xD6,0xFD,0xD6,0xFEDB 0xD6,0xFD,0xD7,0x1D,0xD7,0x1D,0xDF,0x3D,0xDF,0x3D,0xDF,0x5E,0xE7,0x5E,0xE7,0x7E DB 0xE7,0x7E,0xEF,0x7E,0xEF,0x7E,0xEF,0x7D,0xE7,0x5D,0xE7,0x3D,0xDF,0x3D,0xDF,0x3D DB 0xEF,0xBF,0xDF,0x5D,0xE7,0x7E,0xF7,0xFF,0xDF,0x7E,0xA5,0xD8,0x95,0x76,0xAE,0x59DB 0xBE,0xDB,0xBE,0xDC,0xBE,0xFC,0xC7,0x3D,0xC7,0x3D,0xBE,0xFC,0xB6,0xBB,0xAE,0x9B DB 0xA6,0x18,0xA5,0xD8,0xAD,0xF8,0xCE,0xBB,0xF7,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFFDB 0xFF,0xFF,0xFF,0xFF,0xFF,0xDF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF7,0xBE,0xEF,0x7DDB 0xFF,0xDE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xDF,0xFF,0xFFDB 0xFF,0xDE,0xF7,0xDE,0xF7,0xFF,0xF7,0xBE,0xEE,0x9B,0xDD,0x17,0xDB,0xD3,0xE3,0x32 DB 0xDB,0x52,0xE3,0xD3,0xE4,0x96,0xE5,0x58,0xDD,0xDA,0xD6,0x3B,0xCE,0x7B,0xCE,0xBC DB 0xCE,0xFD,0xD7,0x1D,0xD7,0x1D,0xD6,0xFC,0xD6,0xFC,0xD6,0xDC,0xCE,0xBB,0xC6,0x5A DB 0xAD,0xDA,0xAD,0x99,0xBD,0x37,0xDC,0xB7,0xEB,0xF4,0xEB,0x32,0xE2,0xF1,0xDB,0x11 DB 0xEB,0x12,0xE3,0x32,0xE3,0x93,0xEC,0x55,0xEC,0xF8,0xDD,0x79,0xCD,0xD9,0xBE,0x3A DB 0xE7,0x7E,0xF7,0xFF,0xFF,0xFF,0xEF,0x9E,0xEF,0x7E,0xE7,0x5E,0xD6,0xFD,0xCE,0xBCDB 0xC6,0xBD,0xE6,0xFF,0xD6,0xBD,0xDF,0x9E,0xF7,0xBE,0xDC,0xF5,0xCA,0xCD,0xDA,0xCD DB 0xEA,0xC,0xB9,0x89,0x91,0x6,0x90,0xC5,0xB9,0x7,0xC8,0xE7,0xD1,0x28,0xD9,0xCADB 0xDA,0xA,0xCA,0x4E,0x71,0x4C,0x39,0x8D,0x31,0xAE,0x49,0x8F,0x49,0xD0,0x39,0xEF DB 0x49,0xF0,0x4A,0x11,0x52,0x31,0x52,0x31,0x52,0x52,0x52,0x31,0x52,0x31,0x52,0x31 DB 0x52,0x32,0x52,0x32,0x52,0x31,0x52,0x31,0x4A,0x10,0x4A,0x10,0x41,0xCF,0x41,0xAE DB 0x41,0xAE,0x29,0x2C,0x21,0x29,0x18,0xA9,0x10,0x9,0x30,0xA5,0x93,0x4A,0xBC,0x10 DB 0xA3,0xEB,0x39,0x5,0x10,0x26,0x18,0xC8,0x18,0xC7,0x18,0xA8,0x18,0x87,0x10,0x85DB 0x10,0x85,0x10,0x85,0x10,0x85,0x10,0x86,0x10,0x86,0x10,0x87,0x18,0xA8,0x18,0xC9 DB 0x19,0x9,0x28,0xCA,0x21,0xA,0x40,0xE9,0xB1,0x8B,0xD1,0x28,0xC8,0xE6,0xD0,0xC7DB 0xB1,0x6,0xA8,0xA5,0xC1,0x27,0xC1,0x27,0xB0,0xC6,0xC1,0x68,0xD9,0xEB,0xE1,0xEB DB 0xD9,0x8,0xD9,0x28,0xC8,0xE7,0xD8,0xE7,0xE0,0xE8,0xC0,0x65,0xB9,0x48,0xDB,0x8F DB 0xDB,0xF,0xC3,0xB0,0xF7,0x3C,0xEF,0xFE,0xE7,0xBD,0xFF,0xFF,0xFF,0xFF,0xFF,0xFFDB 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFFDB 0xFF,0xDF,0xFF,0xDF,0xFF,0xDF,0xF7,0xDF,0xF7,0xDF,0xF7,0xBF,0xF7,0xBF,0xEF,0xBEDB 0xE7,0x5E,0xE7,0x5E,0xDF,0x3E,0xDF,0x3E,0xD7,0x1E,0xD7,0x1D,0xD7,0x1D,0xD7,0x1D DB 0xCE,0xDD,0xCE,0xDD,0xCE,0xDD,0xCE,0xDD,0xCE,0xDD,0xCE,0xDD,0xCE,0xDD,0xCE,0xDD DB 0xCE,0xDD,0xC6,0xDD,0xC6,0xDD,0xC6,0xBD,0xC6,0xBD,0xC6,0xBD,0xC6,0xDD,0xC6,0xDD DB 0xC6,0xDE,0xCE,0xDD,0xCE,0xFD,0xCE,0xFD,0xCE,0xFD,0xD7,0x1D,0xD7,0x1D,0xDF,0x3D DB 0xE7,0x7E,0xE7,0x7E,0xEF,0x9E,0xEF,0x7E,0xE7,0x7D,0xDF,0x3D,0xD7,0x1C,0xD6,0xFC DB 0xDF,0x3E,0xDF,0x1D,0xD6,0xFD,0xE7,0x7E,0xE7,0xBF,0xC6,0xDC,0x9D,0xD7,0x95,0x96 DB 0xAE,0x5A,0xB6,0x7B,0xBE,0xDC,0xC7,0x1D,0xBF,0x1D,0xB6,0xBC,0xAE,0x7A,0xA6,0x39 DB 0x9D,0x96,0xB6,0x39,0xDF,0x3D,0xFF,0xFF,0xFF,0xFF,0xFF,0xDF,0xF7,0xBF,0xF7,0xFFDB 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF7,0xBE,0xAD,0x76DB 0xF7,0xBE,0xFF,0xFF,0xFF,0xFF,0xFF,0xDF,0xFF,0xFF,0xF7,0xDF,0xF7,0xBF,0xF7,0xBFDB 0xEF,0x7E,0xE7,0x7D,0xDF,0x9E,0xDF,0x9E,0xDE,0xFC,0xDD,0xFA,0xDC,0xF7,0xE4,0x76 DB 0xEC,0xB6,0xE5,0x18,0xDD,0x99,0xD5,0xDA,0xC6,0x1A,0xB6,0x3A,0xBE,0x9C,0xC6,0xDD DB 0xC6,0xDD,0xCE,0xFD,0xCF,0x1D,0xD7,0x3D,0xDF,0x5E,0xE7,0x7E,0xE7,0x5E,0xDF,0x3D DB 0xC6,0xBD,0xAE,0x3A,0xA5,0xB8,0xBD,0x57,0xE5,0x18,0xFC,0xB7,0xF4,0x55,0xE4,0x34 DB 0xEB,0xD3,0xE3,0xF3,0xEC,0x96,0xF5,0x59,0xE5,0xB9,0xCD,0x99,0xBE,0x19,0xC6,0xBC DB 0xEF,0xDF,0xFF,0xFF,0xFF,0xFF,0xF7,0xBF,0xF7,0x9E,0xE7,0x5E,0xD6,0xBC,0xC6,0x7BDB 0xB6,0x3A,0xB6,0x9C,0xB6,0xBC,0xCE,0xFE,0xDF,0xBF,0xF7,0xDF,0xF5,0x97,0xC9,0xAA DB 0xE2,0xC,0xC1,0xA9,0x99,0x6,0x98,0xE6,0xB9,0x7,0xC8,0xE7,0xD1,0x28,0xD9,0xA9DB 0xD9,0xEA,0xDA,0x6E,0x81,0x8C,0x41,0x6C,0x31,0xAE,0x49,0xB0,0x51,0xD0,0x41,0xEFDB 0x52,0x11,0x52,0x31,0x52,0x52,0x5A,0x52,0x5A,0x73,0x5A,0x72,0x5A,0x52,0x52,0x52 DB 0x5A,0x72,0x5A,0x72,0x5A,0x72,0x5A,0x52,0x5A,0x52,0x52,0x31,0x52,0x10,0x49,0xF0 DB 0x49,0xF0,0x29,0x2C,0x18,0xE8,0x18,0xA8,0x10,0x28,0x41,0x25,0x9B,0x68,0xB3,0xCC DB 0x83,0x2A,0x28,0x85,0x8,0x27,0x18,0xC8,0x18,0xA6,0x18,0x87,0x18,0x87,0x10,0xA5 DB 0x10,0x85,0x10,0x86,0x18,0xA6,0x18,0x87,0x18,0xA8,0x18,0xA8,0x20,0xC9,0x20,0xEA DB 0x21,0xA,0x29,0x2C,0x29,0x2B,0x51,0xA,0xC1,0x8B,0xD0,0xE7,0xC0,0xE6,0xC8,0xE7 DB 0xA0,0xE5,0xA0,0xA4,0xC1,0x47,0xB9,0x7,0xA8,0xE6,0xC9,0xCA,0xDA,0x2C,0xE2,0xB DB 0xE1,0x49,0xD0,0xC7,0xD8,0xE8,0xD8,0xE8,0xC0,0xC7,0xCA,0x8C,0xED,0x96,0xF7,0x7C DB 0xFE,0xFC,0xD6,0x79,0xE7,0xBE,0xE7,0xBE,0xFF,0xDF,0xFF,0xDF,0xF7,0xBE,0xF7,0xFF DB 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFFDB 0xF7,0xDF,0xF7,0xBF,0xF7,0xBF,0xEF,0xBF,0xEF,0x9E,0xE7,0x7E,0xE7,0x7E,0xE7,0x5EDB 0xDF,0x3E,0xD7,0x1E,0xD7,0x1E,0xD6,0xFD,0xCE,0xDD,0xCE,0xDD,0xC6,0xBD,0xC6,0xBD DB 0xBE,0xBC,0xBE,0xBC,0xBE,0xBC,0xBE,0x9C,0xBE,0x9C,0xB6,0x9C,0xBE,0x7C,0xB6,0x7C DB 0xB6,0x7C,0xB6,0x7C,0xB6,0x7C,0xB6,0x7C,0xB6,0x7C,0xB6,0x9C,0xB6,0x9C,0xB6,0xBD DB 0xBE,0xBD,0xC6,0xBD,0xC6,0xBD,0xC6,0xBD,0xC6,0xBC,0xC6,0xDC,0xCE,0xDD,0xCE,0xFD DB 0xD7,0x1D,0xDF,0x5D,0xE7,0x7E,0xE7,0x9E,0xE7,0x7E,0xE7,0x5E,0xDF,0x3D,0xD7,0x1D DB 0xBE,0x5B,0xCE,0xDD,0xCE,0xFD,0xD6,0xFD,0xE7,0x9F,0xD7,0x5E,0xAE,0x59,0x95,0x76 DB 0xA5,0xF9,0xAE,0x3A,0xB6,0xBC,0xBE,0xFD,0xB6,0xDC,0xAE,0x5A,0xA5,0xF9,0x9D,0xD8 DB 0xB6,0x38,0xDF,0x7D,0xFF,0xFF,0xFF,0xDF,0xF7,0x7E,0xF7,0x9F,0xF7,0xDF,0xEF,0xBFDB 0xF7,0xBE,0xFF,0xFF,0xFF,0xFF,0xF7,0xBF,0xFF,0xFF,0xFF,0xFF,0xF7,0x9E,0x6B,0x6EDB 0xF7,0x9E,0xFF,0xFF,0xFF,0xFF,0xF7,0xDF,0xEF,0xBF,0xEF,0x9F,0xE7,0x5E,0xDF,0x5EDB 0xD7,0x1D,0xC6,0xFD,0xBE,0xFC,0xB6,0xFD,0xBE,0xBC,0xCE,0x5B,0xD5,0xDA,0xE5,0x9A DB 0xE5,0xBA,0xDD,0xDB,0xCD,0xFA,0xB5,0xDA,0xA5,0xB9,0x9D,0xB9,0x9D,0xFA,0xA6,0x3B DB 0xAE,0x1B,0xAE,0x3B,0xBE,0x7C,0xC6,0xDD,0xD7,0x3E,0xDF,0x7F,0xD7,0x5E,0xCF,0x1D DB 0xCE,0xFE,0xB6,0xBC,0x9E,0x19,0xA5,0x98,0xCD,0x98,0xED,0x99,0xF5,0x79,0xE5,0x37 DB 0xEC,0xF7,0xEC,0xF7,0xED,0x79,0xED,0xFA,0xCD,0xB9,0xB5,0x77,0xBE,0x3A,0xD7,0x3E DB 0xEF,0xBE,0xFF,0xFF,0xFF,0xFF,0xF7,0xBF,0xF7,0xBF,0xEF,0x5E,0xD6,0xDC,0xC6,0x7BDB 0xC6,0x59,0xB6,0x18,0xBE,0x3A,0xC6,0x9C,0xAE,0x9B,0xCF,0x7D,0xFE,0xFD,0xF4,0x15 DB 0xE2,0xC,0xC1,0xA9,0xA1,0x6,0xA0,0xE6,0xB9,0x7,0xC0,0xE7,0xC9,0x7,0xD9,0xA9DB 0xE2,0xB,0xDA,0x6E,0x91,0xCC,0x41,0x4B,0x31,0xAE,0x49,0xD1,0x51,0xF1,0x42,0x10 DB 0x52,0x32,0x52,0x52,0x5A,0x72,0x5A,0x93,0x5A,0x93,0x5A,0x93,0x5A,0x73,0x5A,0x73 DB 0x5A,0x73,0x5A,0x73,0x62,0x93,0x62,0x93,0x5A,0x73,0x5A,0x72,0x52,0x32,0x52,0x11 DB 0x49,0xD0,0x29,0xD,0x18,0xC8,0x18,0xA7,0x18,0x46,0x5A,0x6,0xBC,0x89,0xD4,0x8B DB 0x62,0x68,0x20,0x86,0x10,0x48,0x18,0xC8,0x18,0xA6,0x18,0x86,0x10,0x67,0x10,0xA5 DB 0x18,0x86,0x18,0xA6,0x18,0xA7,0x18,0xA8,0x20,0xC9,0x20,0xEA,0x29,0xB,0x29,0x2B DB 0x29,0x2B,0x29,0x4D,0x29,0x4C,0x69,0x4B,0xD1,0x4A,0xD0,0xE7,0xC1,0x26,0xC1,0x7 DB 0x98,0xC5,0xA0,0xA5,0xB9,0x47,0xB0,0xE6,0xB1,0x7,0xD2,0x2B,0xDA,0x2C,0xE2,0xB DB 0xC9,0x28,0xD9,0x8,0xD8,0x66,0xC0,0xC7,0xCB,0x4F,0xFE,0xFB,0xF7,0xFF,0xE7,0xFE DB 0xEF,0xDF,0xCF,0x7D,0xDF,0xBE,0xDF,0x7D,0xFF,0xDF,0xFF,0x9F,0xF7,0x9E,0xF7,0xFFDB 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF7,0xDF,0xF7,0xDFDB 0xEF,0xBF,0xEF,0x9F,0xE7,0x9F,0xE7,0x5E,0xDF,0x3E,0xD7,0x1D,0xD6,0xFD,0xCE,0xFD DB 0xCE,0xDD,0xC6,0xDD,0xC6,0xBC,0xC6,0x9C,0xBE,0x7C,0xBE,0x5C,0xBE,0x5B,0xBE,0x5B DB 0xB6,0x5B,0xB6,0x5B,0xB6,0x5B,0xB6,0x5B,0xB6,0x3A,0xAE,0x1A,0xAE,0x1A,0xAE,0x1A DB 0xAE,0x1A,0xAD,0xFA,0xAE,0x1A,0xAE,0x1A,0xAE,0x3A,0xAE,0x5B,0xAE,0x5B,0xAE,0x7B DB 0xB6,0x5C,0xB6,0x5C,0xB6,0x5C,0xB6,0x5B,0xB6,0x5B,0xB6,0x7B,0xBE,0x7B,0xBE,0x9C DB 0xBE,0xBC,0xCE,0xDD,0xD7,0x3D,0xDF,0x5E,0xE7,0x7E,0xDF,0x7E,0xDF,0x5E,0xDF,0x5EDB 0xC6,0xBC,0xC6,0x9C,0xB6,0x3A,0xBE,0x3A,0xD7,0x1E,0xDF,0x7F,0xC6,0xDC,0xA5,0xF9 DB 0x9D,0xB8,0xA6,0x19,0xAE,0x9B,0xB6,0xBB,0xA6,0x7A,0x9D,0xF8,0xA5,0xD8,0xAE,0x39 DB 0xE7,0xBE,0xEF,0xDF,0xF7,0xBF,0xEF,0x7E,0xEF,0x5E,0xEF,0x7E,0xE7,0x5E,0xDF,0x3DDB 0xE7,0x5D,0xF7,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF7,0xBF,0x4A,0x8ADB 0xEF,0x7E,0xF7,0xDF,0xF7,0xDF,0xE7,0x7E,0xDF,0x5E,0xD7,0x1D,0xCE,0xDD,0xC6,0xDD DB 0xBE,0x9C,0xB6,0x7C,0xA6,0x3B,0xA6,0x3B,0xAE,0x1B,0xB6,0x1B,0xC5,0xFA,0xD5,0xFB DB 0xCD,0xDA,0xCD,0xFA,0xBD,0xDA,0xB5,0xD9,0xA5,0x98,0x9D,0x98,0xA5,0x99,0xA5,0xB9 DB 0x9D,0xB9,0x9D,0xB9,0x9D,0x99,0xA5,0xDA,0xAE,0x1B,0xB6,0x7C,0xBE,0x9C,0xBE,0xBC DB 0xC6,0xBD,0xBE,0xBD,0xAE,0x7B,0x9D,0xD9,0xAD,0x78,0xC5,0x98,0xDD,0xD9,0xDD,0xD9 DB 0xED,0xFA,0xED,0xDA,0xE5,0xFA,0xD5,0xDA,0xAD,0x78,0x9D,0x77,0xBE,0x5A,0xE7,0x7F DB 0xEF,0x9E,0xF7,0xFF,0xFF,0xFF,0xFF,0xDF,0xFF,0xFF,0xF7,0xBF,0xE7,0x3E,0xDE,0xFDDB 0xBD,0xB6,0xCD,0x15,0xC4,0xD5,0xB5,0xD8,0xB6,0xBB,0xCF,0x1C,0xEE,0xFE,0xDE,0x3B DB 0xDA,0x2C,0xB9,0xA9,0xA0,0xE6,0xA0,0xC5,0xB1,0x7,0xC1,0x7,0xC9,0x7,0xD9,0x89DB 0xE1,0xEB,0xE2,0x4D,0xA2,0xD,0x49,0x4B,0x39,0xAF,0x49,0xB1,0x51,0xF1,0x4A,0x30DB 0x5A,0x52,0x5A,0x53,0x5A,0x73,0x62,0x93,0x62,0x94,0x62,0x94,0x62,0x93,0x62,0x93 DB 0x62,0x93,0x62,0x93,0x62,0x93,0x62,0x93,0x62,0x93,0x62,0x93,0x5A,0x72,0x5A,0x52 DB 0x41,0xB0,0x31,0x2E,0x18,0xC8,0x10,0x86,0x10,0x4,0x6A,0x66,0xCC,0xE9,0xDC,0xCA DB 0x41,0x65,0x18,0x86,0x10,0x89,0x10,0xC7,0x10,0xA5,0x18,0x87,0x10,0x66,0x10,0xA6 DB 0x18,0x86,0x18,0xA7,0x20,0xC8,0x20,0xCA,0x28,0xEA,0x29,0xB,0x31,0x4B,0x31,0x4C DB 0x31,0x4D,0x31,0x8E,0x29,0x6C,0x81,0x8C,0xD1,0xA,0xD9,0x7,0xB9,0x66,0xB9,0x6DB 0x90,0xC4,0xA0,0xC5,0xB9,0x47,0xA8,0xC6,0xB1,0x27,0xDA,0x6C,0xDA,0xB,0xE1,0xEB DB 0xD9,0x68,0xC8,0xC7,0xB8,0xC6,0xD3,0x6F,0xFF,0x5C,0xF7,0xFF,0xE7,0xDE,0xEF,0x9FDB 0xCF,0x3D,0xCE,0xFC,0xCF,0x1D,0xD7,0x1D,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF7,0xBEDB 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF7,0xDF,0xF7,0xDF,0xEF,0x9E,0xEF,0x9EDB 0xE7,0x5E,0xDF,0x5E,0xD7,0x3E,0xCE,0xFD,0xCE,0xDD,0xC6,0xBC,0xBE,0x9C,0xBE,0x9C DB 0xBE,0x7B,0xB6,0x7B,0xBE,0x5B,0xBE,0x5B,0xBE,0x3B,0xBE,0x3B,0xBE,0x3B,0xBE,0x3B DB 0xBE,0x3A,0xBE,0x5B,0xBE,0x5B,0xC6,0x5B,0xC6,0x5B,0xC6,0x5B,0xC6,0x3B,0xC6,0x3B DB 0xBE,0x5B,0xBE,0x3B,0xBE,0x3B,0xB6,0x3B,0xB6,0x3B,0xB6,0x5B,0xB6,0x5B,0xB6,0x5B DB 0xB6,0x3B,0xB6,0x3B,0xB6,0x3B,0xAE,0x1B,0xAE,0x1A,0xAE,0x3A,0xAE,0x3B,0xAE,0x5B DB 0xB6,0x7C,0xBE,0x7C,0xC6,0xBC,0xCE,0xDD,0xD6,0xFD,0xD7,0x1D,0xD7,0x3E,0xD7,0x3E DB 0xD7,0x7F,0xC6,0xBC,0xAD,0xF9,0xA5,0xB8,0xB6,0x3A,0xD7,0x1E,0xCF,0x1E,0xB6,0x7B DB 0x95,0x97,0x9D,0xF8,0xA6,0x5A,0xA6,0x7A,0x9E,0x18,0x9D,0xD7,0xB6,0x5A,0xD7,0x3D DB 0xFF,0xFF,0xE7,0x7D,0xD7,0x1C,0xDF,0x7E,0xE7,0x7E,0xD6,0xFD,0xD6,0xDC,0xDF,0x1D DB 0xEF,0x9E,0xE7,0x3D,0xD6,0xDB,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xEF,0x9E,0x4A,0x69DB 0xD6,0xFC,0xDF,0x5E,0xDF,0x5E,0xCE,0xFD,0xC6,0xBC,0xBE,0x9C,0xB6,0x5B,0xB6,0x5B DB 0xAE,0x1A,0xAD,0xFA,0xAD,0xDA,0xAD,0xDA,0xAD,0xDA,0xBD,0xDA,0xC5,0xFA,0xCE,0x1A DB 0xC5,0xF9,0xC5,0xD9,0xC5,0xB9,0xBD,0xB8,0xBD,0xB8,0xBD,0x98,0xBD,0x98,0xBD,0x78 DB 0xAD,0x98,0xA5,0x98,0xA5,0x79,0xA5,0x79,0x9D,0x79,0xA5,0x99,0xAD,0xFA,0xB6,0x3B DB 0xB6,0x5B,0xBE,0x5B,0xB6,0x3C,0xAD,0xFA,0x9D,0xB9,0x9D,0x98,0xB5,0xB9,0xD5,0xFA DB 0xDE,0x1B,0xDE,0x1B,0xD5,0xDA,0xB5,0x99,0x9D,0x77,0xA5,0xD8,0xC6,0x9B,0xE7,0x3E DB 0xEF,0x7E,0xF7,0xDF,0xFF,0xDF,0xFF,0xDF,0xFF,0xFF,0xFF,0xFF,0xF7,0xBF,0xEF,0x9EDB 0xF7,0x9D,0xEE,0x5A,0xBC,0x52,0xA4,0x51,0xC5,0xD7,0xEE,0xFC,0xF7,0x3E,0xD6,0xDC DB 0xD2,0x2B,0xB9,0x89,0xA0,0xC5,0xA0,0xC5,0xB1,0x6,0xB9,0x6,0xC1,0x7,0xD1,0x88DB 0xD9,0xCA,0xE2,0x4D,0xBA,0x6E,0x59,0x8C,0x41,0xCF,0x41,0xB1,0x51,0xF1,0x5A,0x71 DB 0x5A,0x73,0x5A,0x73,0x62,0x93,0x62,0x94,0x62,0x94,0x62,0x94,0x62,0x94,0x62,0x94 DB 0x62,0x93,0x62,0x93,0x62,0x93,0x62,0x94,0x62,0x94,0x62,0x93,0x62,0x73,0x5A,0x73。

汇编创建简单的窗口

汇编创建简单的窗口

理论:Windows 程序中,在写图形用户界面时需要调用大量的标准Windows Gui 函数。

其实这对用户和程序员来说都有好处,对于用户,面对的是同一套标准的窗口,对这些窗口的操作都是一样的,所以使用不同的应用程序时无须重新学习操作。

对程序员来说,这些 Gui 源代码都是经过了微软的严格测试,随时拿来就可以用的。

当然至于具体地写程序对于程序员来说还是有难度的。

为了创建基于窗口的应用程序,必须严格遵守规范。

作到这一点并不难,只要用模块化或面向对象的编程方法即可。

下面我就列出在桌面显示一个窗口的几个步骤:得到您应用程序的句柄(必需);得到命令行参数(如果您想从命令行得到参数,可选);注册窗口类(必需,除非您使用 Windows 预定义的窗口类,如 MessageBox 或 dialog box;产生窗口(必需);在桌面显示窗口(必需,除非您不想立即显示它);刷新窗口客户区;进入无限的获取窗口消息的循环;如果有消息到达,由负责该窗口的窗口回调函数处理;如果用户关闭窗口,进行退出处理。

相对于单用户的 DOS 下的编程来说,Windows 下的程序框架结构是相当复杂的。

但是 Win dows 和 DOS 在系统架构上是截然不同的。

Windows 是一个多任务的操作系统,故系统中同时有多个应用程序彼此协同运行。

这就要求 Windows 程序员必须严格遵守编程规范,并养成良好的编程风格。

内容:下面是我们简单的窗口程序的源代码。

在进入复杂的细节前,我将提纲挈领地指出几点要点:您应当把程序中要用到的所有常量和结构体的声明放到一个头文件中,并且在源程序的开始处包含这个头文件。

这么做将会节省您大量的时间,也免得一次又一次的敲键盘。

目前,最完善的头文件是 hutch 写的,您可以到 hutch 或我的网站下载。

您也可以定义您自己的常量和结构体,但最好把它们放到独立的头文件中用 includelib 指令,包含您的程序要引用的库文件,譬如:若您的程序要调用 "Message Box",您就应当在源文件中加入如下一行: includelib user32.lib 这条语句告诉 MASM 您的程序将要用到一些引入库。

显示器IO程序设计,完成窗口控制程序

显示器IO程序设计,完成窗口控制程序

实验二. 显示器I/O程序设计,完成窗口控制程序<1>、实验概述在屏幕上开出三个窗口,它们的行列坐标如下页图所示,光标首先定位在右窗口最下面一行的行首(15,50),如果从键盘输入字符,则显示在右窗口,同时也显示在下窗口的最下面一行。

若需要将字符显示于左窗口,则先按下左键,接着再从键盘输入字符,字符就会从左窗口的最下行开始显示,同时下窗口也显示左窗口的内容。

当一行字符显示满后,窗口自动向上卷动一行,输入字符继续显示于最低一行,窗口最高一行向上卷动后消失。

编写屏幕窗口程序时,要求将一些功能程序段定义成宏指令,如向上卷动、清屏接受字符并判断、在屏幕上显示字符、光标定位。

<2>、实验大概思路1、可以将程序中的一些功能用宏定义2、在数据段中设置6个变量lx,ly,rx,ry,dwxdwy,它们分别用来记录左窗口、右窗口和下窗口的当前光标位置,以保证在返回本窗口显示字符时 能够接着前一次显示的字符窜之后继续显示。

3、在窗口中每显示一个字符,都要修改光标的列变量,同时判断是否超出本窗口的边界,如没有超出可继续接收并显示字符,如意超出边界,则需要上卷一行,同时把光标重新定位在本窗口底行的行首。

4、一个字符无论在左窗口显示还是在右窗口显示,它同时还在下窗口中显示,因此要注意保存显示字符5、外加回车换行及删除功能所用函数如下ENTERHUAN: SCROLL 18,15,22,65,1 MOV DWY,15CMP WINDOWNUM,0JZ ONESCROLL 5,50,15,70,1 POS_CURSE 15,50MOV RY,50mov rx,15;以上增加的是回车换行功能JMP INPUTONE: SCROLL 5,10,15,30,1 POS_CURSE 15,10MOV LY,10mov lx,15JMP INPUTDEL: ;此处增加的是删除功能 mov ah,03hint 10hdec dlpush dx;clear dh,dl,dh,dlSCROLL dh,dl,dh,dl,0 pop dxpos_curse dh,dlmov ry,dljmp input实验2窗口设计实验结果(换行)。

12864液晶屏汇编程序

12864液晶屏汇编程序

12864液晶屏汇编程序[ 作者:佚名 | 转贴自:本站原创 | 点击数:211 | 更新时间:2005-3-28 | 文章录入:qwll20000 ] XCS BIT 00H ;显示器片选0=CS1,1=CS2 ;20H-2FH为位寻址区,位地址从00H-7FH BZPD BIT 01H ;0=上8X8半字,1=下8X8半字HHBZ BIT 02H ;换行标志HZDH BIT 03H ;0=显示汉字,1=显示动画LCD_RW BIT P3.0LCD_DI BIT P3.1LCD_E BIT P3.3LCD_CS1 BIT P3.5LCD_CS2 BIT P3.4LCD_OPEN DA TA 30HLCD_LINE DATA 31HLCD_PAGE DATA 32HLCD_Y DA TA 33HYCPD DA TA 34H ;左右半屏溢出判断HHPD DA TA 35H ;换行判断XWPD DA TA 36H ;写完一整屏判断ORG 0000HMOV SP,#40HSETB XCS ;选择CS2MOV LCD_OPEN,#01H ;开显示器1,关显示器0LCALL LCDOPENMOV LCD_LINE,#00H ;设置起始行LCALL SETLINEMOV LCD_PAGE,#00H ;设置页地址 LCALL SETPAGEMOV LCD_Y,#00H ;设置列地址 LCALL SETYLJMP CLRST1CLR4:INC LCD_PAGECLRST1:LCALL SETPAGEMOV R7,#40HCLR5:MOV A,#0FFH ;显示校验LCALL LCDWRDATADJNZ R7,CLR5MOV A,LCD_PAGECJNE A,#07H,CLR4MOV LCD_LINE,#00HLCALL SETLINEMOV LCD_PAGE,#00HLCALL SETPAGEMOV LCD_Y,#00HLCALL SETYLJMP CLRST2CLR6:INC LCD_PAGECLRST2:LCALL SETPAGEMOV R7,#40HCLR7:MOV A,#00H ;清显示LCALL LCDWRDATADJNZ R7,CLR7MOV A,LCD_PAGECJNE A,#07H,CLR6CLR XCS ;选择CS1MOV LCD_OPEN,#01H ;开显示器1, 关显示器0 LCALL LCDOPENMOV LCD_LINE,#00HLCALL SETLINE ;设置起始行MOV LCD_PAGE,#00HLCALL SETPAGE ;设置页地址MOV LCD_Y,#00HLCALL SETY ;设置列地址LJMP CLRST3CLR0:INC LCD_PAGECLRST3:LCALL SETPAGEMOV R7,#40HCLR1:MOV A,#0FFH ;显示校验LCALL LCDWRDATADJNZ R7,CLR1MOV A,LCD_PAGECJNE A,#07H,CLR0MOV LCD_LINE,#00HLCALL SETLINEMOV LCD_PAGE,#00HLCALL SETPAGEMOV LCD_Y,#00HLCALL SETYLJMP CLRST4CLR2:INC LCD_PAGECLRST4:LCALL SETPAGEMOV R7,#40HCLR3:MOV A,#00H ;清显示LCALL LCDWRDATADJNZ R7,CLR3MOV A,LCD_PAGECJNE A,#07H,CLR2;初始化完毕************************************************************************* CLR HZDHWRLCD:JNB HZDH,XZFXDH:MOV DPTR,#DHDOT ;写动画或图片LJMP DH0XZF:MOV DPTR,#HZDOT ;写字符(汉字或字母或符号)MOV XWPD,#00HHZ0:CLR XCSMOV LCD_LINE,#00H ;置起始行LCALL SETLINEMOV LCD_PAGE,#00HLCALL SETPAGE ;置页MOV LCD_Y,#00H ;置列LCALL SETYMOV HHPD,#00HHZ7:MOV YCPD,#00HHZ8:CLR BZPDHZ3:MOV R0,#08H ;写左上8个Y列HZ1:MOV A,#00HMOVC A,@A+DPTRLCALL LCDWRDATAINC DPTRINC LCD_YDJNZ R0,HZ1JB BZPD,HZ2CLR C ;Y列减8, 即返回扫描MOV A,LCD_YSUBB A,#08HMOV LCD_Y,ALCALL SETYINC LCD_PAGE ;页地址加1,即换第2页扫描 LCALL SETPAGESETB BZPDLJMP HZ3HZ2:DEC LCD_PAGE ;返回到第1页中,准备下一个半字扫描 LCALL SETPAGEINC YCPDMOV A,YCPDCJNE A,#08H,HZ8JB XCS,HZ9SETB XCS ;换屏LCALL SETPAGEMOV LCD_Y,#00H ;置列LCALL SETYLJMP HZ7HZ9:CLR XCS ;写完一行后从CS2返回到CS1中INC LCD_PAGEINC LCD_PAGELCALL SETPAGE ;下一行开始MOV LCD_Y,#00HLCALL SETYINC HHPDMOV A,HHPDCJNE A,#04H,HZ7INC XWPD ;换第二幅画面MOV A,XWPDCJNE A,#02H,HZ0LJMP$DH0:MOV XWPD,#00HDH1:CLR XCSMOV LCD_LINE,#00H ;置起始行 LCALL SETLINEMOV LCD_PAGE,#00HLCALL SETPAGE ;置页MOV LCD_Y,#00H ;置列LCALL SETYMOV HHPD,#00HDH2:MOV R0,#40H ;写上64个Y列 DH3:MOV A,#00HMOVC A,@A+DPTRLCALL LCDWRDATAINC DPTRDJNZ R0,DH3JB XCS,DH4SETB XCSLCALL SETPAGEMOV LCD_Y,#00HLCALL SETYLJMP DH2DH4:CLR XCS ;写完一行后从CS2返回到CS1中 INC LCD_PAGELCALL SETPAGE ;下一行开始MOV LCD_Y,#00HLCALL SETYINC HHPDMOV A,HHPDCJNE A,#08H,DH2INC XWPD ;换第二幅画面MOV A,XWPDCJNE A,#02H,DH1LJMP$LCDWRINST:NOPJB XCS,INS0CLR LCD_CS1SETB LCD_CS2LJMP INS1INS0:SETB LCD_CS1CLR LCD_CS2INS1:SETB LCD_ECLR LCD_DICLR LCD_RWMOV P1,ALCALL DLY10CLR LCD_ELCALL DLY10RETLCDWRDATA:NOPJB XCS,DA T0CLR LCD_CS1SETB LCD_CS2LJMP DA T1DA T0:SETB LCD_CS1CLR LCD_CS2DA T1:SETB LCD_ESETB LCD_DICLR LCD_RWMOV P1,ALCALL DLY10CLR LCD_ELCALL DLY10NOPRETLCDOPEN:MOV A,LCD_OPEN ;开显示器 ANL A,#3FHORL A,#3EHLCALL LCDWRINSTNOPRETSETLINE:MOV A,LCD_LINEORL A,#0C0H ;设置起始行LCALL LCDWRINSTRETSETPAGE:MOV A,LCD_PAGEANL A,#0BFHORL A,#0B8H ;设置页地址 LCALL LCDWRINSTNOPRETSETY:MOV A,LCD_YANL A,#7FHORL A,#40HNOP ;设置列地址LCALL LCDWRINSTNOPRETDL Y10:NOPMOV R5,#01HDL1:MOV R4,#01HDL2:MOV R6,#0FHDL3:DJNZ R6,DL3DJNZ R4,DL2DJNZ R5,DL1NOPRETHZDOT:;新 CD0C2DB 000H,044H,04CH,07CH,0D7H,0E6H,07CH,05CH DB 000H,022H,01AH,04EH,0FFH,07FH,00EH,09AH DB 044H,0FEH,0FCH,046H,0C2H,0C3H,062H,040H DB 060H,03FH,01FH,000H,0FFH,0FFH,000H,000H;年 CC4EADB 000H,020H,010H,018H,0ECH,0CFH,04AH,048H DB 000H,004H,004H,004H,007H,007H,004H,004H DB 0F8H,0F8H,048H,048H,068H,04CH,008H,000H DB 0FFH,0FFH,004H,004H,004H,004H,006H,004H;快 CBFECDB 000H,0C0H,060H,0FFH,0FEH,030H,060H,008H DB 000H,000H,000H,0FFH,07FH,080H,041H,071H DB 008H,0FFH,0FEH,008H,0F8H,0FCH,008H,000H DB 03DH,00FH,007H,00DH,039H,071H,0E1H,041H;乐 CC0D6DB 000H,000H,080H,080H,0FEH,0FCH,084H,084H DB 000H,040H,020H,030H,01CH,00EH,024H,040H DB 0FEH,0F6H,082H,083H,0C2H,080H,000H,000H DB 0FFH,07FH,000H,002H,00CH,018H,070H,020H;欢 CBBB6DB 000H,034H,0C4H,004H,0C4H,0FCH,03EH,024H DB 000H,040H,038H,00FH,007H,03CH,098H,060H DB 018H,00EH,0EFH,0CAH,048H,038H,01CH,008H DB 030H,01CH,00FH,007H,01CH,070H,0E0H,040H;迎 CD3ADDB 000H,040H,046H,0DCH,0E8H,040H,0FEH,0FCH DB 000H,040H,0E0H,03FH,01FH,032H,067H,0C3H DB 006H,003H,0FDH,0FCH,004H,0FCH,0FEH,004H DB 0C2H,0C1H,0FFH,0DFH,0C2H,0C7H,0C3H,040H;使 CCAB9DB 000H,080H,060H,0F8H,0EFH,006H,008H,0F8H DB 000H,000H,000H,0FFH,07FH,080H,080H,043H DB 0E8H,028H,0FFH,0FEH,028H,0E8H,0FCH,028H DB 065H,039H,01FH,037H,061H,063H,0C1H,040H;用 CD3C3DB 000H,000H,000H,0FFH,0FEH,022H,022H,022H DB 000H,080H,070H,03FH,00FH,002H,002H,002H DB 0FEH,0FEH,022H,022H,022H,0FEH,0FFH,002H DB 07FH,03FH,002H,042H,042H,0FFH,07FH,000H;杭 CBABCDB 000H,010H,0D0H,0FFH,0FEH,090H,010H,008H DB 000H,006H,001H,0FFH,07FH,001H,083H,040H DB 0E8H,0C9H,04FH,04EH,0C8H,0E8H,04CH,008H DB 07FH,03FH,000H,000H,07FH,0FFH,0C0H,070H;州 CD6DDDB 000H,010H,0E0H,0C0H,0FFH,0FEH,010H,0E0H DB 000H,080H,041H,070H,03FH,00FH,000H,001H DB 0C0H,0FEH,0FCH,030H,0E0H,0C0H,0FFH,0FEH DB 000H,03FH,01FH,000H,001H,000H,0FFH,07FH;求 CC7F3DB 000H,000H,008H,068H,0C8H,088H,008H,0FFH DB 000H,010H,070H,038H,00DH,026H,041H,0FFH DB 0FEH,088H,0CBH,07EH,02CH,008H,000H,000H DB 07FH,003H,006H,01CH,038H,070H,020H,000H;是 CCAC7DB 000H,080H,080H,080H,0FFH,0BEH,0AAH,0AAH DB 000H,080H,060H,038H,00FH,01AH,030H,020H DB 0AAH,0AAH,0AAH,0FEH,0BFH,082H,0C0H,080H DB 07FH,07FH,044H,0C4H,0C6H,0C4H,0C0H,040H;医 CD2BDDB 000H,000H,0FFH,0FEH,042H,0A2H,0BAH,09EH DB 000H,040H,0FFH,07FH,060H,050H,058H,04CH DB 096H,0F2H,0F2H,092H,09AH,0D3H,082H,000H DB 046H,043H,041H,046H,04CH,058H,068H,040H;学 CD1A7DB 000H,010H,038H,01CH,00BH,04EH,048H,04BH DB 000H,000H,004H,004H,004H,004H,044H,044HDB 04EH,0C8H,0ECH,04FH,00AH,038H,01CH,008H DB 0FFH,07FH,004H,004H,004H,006H,004H,000H;科 CBFC6DB 000H,024H,0A4H,0FEH,0FEH,0A3H,022H,0C0H DB 000H,00CH,003H,0FFH,07FH,001H,00BH,008H DB 08CH,038H,010H,0FFH,0FEH,000H,000H,000HDB 00BH,005H,004H,0FFH,07FH,002H,003H,002H;技 CBCBCDB 000H,010H,010H,0FFH,0FEH,010H,098H,048H DB 000H,00CH,046H,0FFH,07FH,001H,080H,040H DB 0C8H,048H,07FH,07EH,0C8H,0E8H,04CH,008H DB 061H,037H,01CH,01EH,037H,061H,0E0H,040H;有 CD3D0DB 000H,084H,044H,064H,034H,0FCH,0EFH,026H DB 000H,000H,000H,000H,000H,0FFH,07FH,009H DB 024H,024H,024H,0E4H,0F4H,024H,006H,004H DB 009H,009H,049H,0FFH,07FH,000H,000H,000H;限 CCFDEDB 000H,0FFH,0FEH,042H,0BEH,01FH,002H,0FFH DB 000H,0FFH,0FFH,008H,01FH,00FH,040H,0FFH DB 0FEH,092H,092H,092H,0FEH,0FFH,002H,000H DB 07FH,061H,036H,01CH,039H,06EH,0E4H,040H;公 CB9ABDB 000H,000H,080H,0C0H,070H,03EH,00FH,082H DB 000H,001H,000H,060H,0F0H,078H,06EH,067H DB 0C0H,080H,00FH,03EH,070H,0E0H,0C0H,080H DB 021H,022H,026H,03CH,0F8H,070H,001H,000H;司 CCBBEDB 000H,000H,010H,0D2H,092H,092H,092H,092H DB 000H,000H,000H,01FH,00FH,008H,008H,008HDB 01FH,00FH,000H,040H,040H,0FFH,07FH,000H;地 CB5D8DB 000H,020H,020H,0FEH,0FCH,020H,060H,0F8H DB 000H,010H,030H,01FH,01FH,008H,004H,07FH DB 0F0H,020H,0FFH,0FEH,010H,0F0H,0F8H,010H DB 0FFH,0C0H,0C7H,0C7H,0C2H,0C7H,0F3H,040H;址 CD6B7DB 000H,020H,020H,0FEH,0FCH,020H,020H,0E0H DB 000H,010H,030H,03FH,01FH,058H,048H,07FH DB 0C0H,000H,000H,0FFH,0FEH,040H,060H,040H DB 07FH,040H,040H,07FH,07FH,040H,060H,040H;: CA3BADB 000H,000H,000H,000H,000H,000H,000H,000H DB 000H,000H,036H,036H,000H,000H,000H,000H DB 000H,000H,000H,000H,000H,000H,000H,000H DB 000H,000H,000H,000H,000H,000H,000H,000H;通 CCDA8DB 000H,040H,046H,0DCH,0E8H,040H,000H,0F9H DB 000H,040H,0E0H,03FH,01FH,030H,060H,0FFH DB 0F1H,055H,0FDH,0F9H,057H,0F3H,0F9H,010H DB 0DFH,0C2H,0DFH,0CFH,0D2H,0FFH,0DFH,040H;惠 CBBDDDB 000H,000H,002H,0FEH,0FAH,0AAH,0AAH,0FFHDB 0FFH,0AAH,0AAH,0FAH,0FEH,00AH,000H,000H DB 0FBH,0D2H,0C2H,0F2H,04FH,016H,070H,020H;北 CB1B1DB 000H,020H,020H,020H,020H,0FEH,0FEH,000H DB 000H,020H,060H,020H,010H,0FFH,0FFH,000H DB 000H,0FFH,0FEH,082H,0C0H,060H,038H,010H DB 000H,07FH,0FFH,0C1H,0C0H,0C0H,0F0H,040H;路 CC2B7DB 000H,07FH,03EH,0E2H,0BEH,07FH,002H,010H DB 000H,07CH,060H,03FH,03FH,012H,00BH,001H DB 08CH,0DFH,066H,074H,0DCH,08EH,004H,000H DB 0FFH,07EH,042H,042H,0FEH,07FH,003H,001H;2 CHAR_32DB 008H,00CH,084H,0C4H,064H,03CH,018H,000H DB 00EH,00FH,009H,008H,008H,00CH,00CH,000H;8 CHAR_38DB 0B8H,0FCH,044H,044H,044H,0FCH,0B8H,000H DB 007H,00FH,008H,008H,008H,00FH,007H,000H;号 CBAC5DB 000H,080H,080H,080H,0BFH,09EH,092H,092H DB 000H,000H,000H,000H,004H,00EH,007H,005H DB 092H,092H,092H,0BEH,09FH,082H,0C0H,080H DB 024H,044H,0E4H,07CH,01EH,004H,000H,000H;电 CB5E7DB 000H,000H,0F8H,0F0H,090H,090H,090H,0FFH DB 000H,000H,00FH,007H,004H,004H,004H,07FH DB 0FEH,090H,090H,090H,0F0H,0F8H,010H,000H DB 0FFH,0C4H,0C4H,0C4H,0CFH,0C7H,0F0H,040H;话 CBBB0DB 000H,040H,046H,0DCH,0E8H,040H,020H,024H DB 000H,000H,020H,07FH,03FH,010H,008H,0FFH DB 024H,024H,0FEH,0FEH,026H,023H,032H,020H DB 07EH,042H,043H,043H,042H,0FEH,07FH,002H;: CA3BADB 000H,000H,000H,000H,000H,000H,000H,000H DB 000H,000H,036H,036H,000H,000H,000H,000H DB 000H,000H,000H,000H,000H,000H,000H,000H DB 000H,000H,000H,000H,000H,000H,000H,000H;0 CHAR_30DB 0F8H,0FCH,004H,0C4H,024H,0FCH,0F8H,000H DB 007H,00FH,009H,008H,008H,00FH,007H,000H;5 CHAR_35DB 07CH,07CH,044H,044H,0C4H,0C4H,084H,000H DB 004H,00CH,008H,008H,008H,00FH,007H,000H;7 CHAR_37DB 00CH,00CH,004H,084H,0C4H,07CH,03CH,000HDB 000H,000H,00FH,00FH,000H,000H,000H,000H;1 CHAR_31DB 000H,010H,018H,0FCH,0FCH,000H,000H,000H DB 000H,008H,008H,00FH,00FH,008H,008H,000H;- CHAR_2DDB 080H,080H,080H,080H,080H,080H,080H,000H DB 000H,000H,000H,000H,000H,000H,000H,000H;8 CHAR_38DB 0B8H,0FCH,044H,044H,044H,0FCH,0B8H,000H DB 007H,00FH,008H,008H,008H,00FH,007H,000H;2 CHAR_32DB 008H,00CH,084H,0C4H,064H,03CH,018H,000H DB 00EH,00FH,009H,008H,008H,00CH,00CH,000H;6 CHAR_36DB 0F0H,0F8H,04CH,044H,044H,0C0H,080H,000H DB 007H,00FH,008H,008H,008H,00FH,007H,000H;0 CHAR_30DB 0F8H,0FCH,004H,0C4H,024H,0FCH,0F8H,000H DB 007H,00FH,009H,008H,008H,00FH,007H,000H;4 CHAR_34DB 0C0H,0E0H,0B0H,098H,0FCH,0FCH,080H,000H DB 000H,000H,000H,008H,00FH,00FH,008H,000H;7 CHAR_37DB 00CH,00CH,004H,084H,0C4H,07CH,03CH,000HDB 000H,000H,00FH,00FH,000H,000H,000H,000H;1 CHAR_31DB 000H,010H,018H,0FCH,0FCH,000H,000H,000HDB 000H,008H,008H,00FH,00FH,008H,008H,000H;5 CHAR_35DB 07CH,07CH,044H,044H,0C4H,0C4H,084H,000HDB 004H,00CH,008H,008H,008H,00FH,007H,000HDHDOT:;-------------------------------------------------------------------------------DB000H,000H,000H,000H,000H,000H,000H,000H,007H,0E7H,0E3H,0E1H,0E1H,0E1H,0E1H,0C1H, DB0C1H,081H,081H,081H,083H,083H,083H,083H,087H,087H,08FH,08FH,09FH,0BFH,0FFH,0FFH, DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH, DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0F3H,0F3H,0F1H,0E1H,061H,061H,020H, DB030H,030H,0B0H,0B0H,0B0H,0B8H,0B8H,0BCH,0BCH,03EH,03EH,03FH,03FH,07FH,07FH,07FH, DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH, DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FEH,0FEH,0FCH,0FCH,0FCH,0FEH,0FFH, DB0F7H,0E3H,0E7H,0EFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,000H,000H,000H, DB000H,000H,000H,000H,000H,000H,000H,000H,000H,001H,07FH,0FFH,0F3H,083H,083H,081H,DB001H,001H,000H,080H,080H,000H,002H,002H,002H,006H,004H,0A5H,0EDH,0EDH,0EBH,0DBH, DB0F7H,0BFH,07FH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH, DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0F7H,089H,080H,082H,0C0H,080H, DB000H,000H,000H,000H,000H,088H,0C0H,0F8H,0F8H,0F8H,0F0H,0F0H,0E0H,0C0H,0C0H,0F0H, DB0F8H,0F8H,0FCH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH, DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH, DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,00FH,000H,000H,000H, DB000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,07FH,0FFH,0FFH,0FFH,0FFH,DB0FFH,0FEH,0FFH,0FFH,0FFH,0FFH,0FEH,0FEH,0FEH,0FEH,0FEH,0FFH,0FFH,0FFH,0FFH,0FFH, DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH, DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH, DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH, DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH, DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,03FH,00FH,003H,000H,000H,000H,000H,000H, DB000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,0FFH,0FFH,0FFH,0FFH, DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH, DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH, DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH, DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH, DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH, DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,03FH,03FH,07FH,0BFH,03FH,03FH, DB03FH,01FH,01FH,00FH,007H,007H,001H,000H,000H,000H,000H,000H,000H,000H,000H,000H, DB000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,003H,03FH,0FFH,0FFH, DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH, DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH, DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH, DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH, DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH, DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,01FH,000H,000H,07CH,0FFH,0FFH,078H, DB000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,DB000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,003H,0FFH,DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH, DB0FFH,0FFH,0FFH,0FFH,0FFH,0E3H,0E3H,0C3H,087H,08FH,01FH,01FH,0BFH,0BFH,0FFH,0FFH, DB0FFH,0F7H,0F3H,0F3H,0FBH,0FBH,0FBH,0FBH,0FBH,0FBH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH, DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,07FH,07FH,07FH,07FH,0FFH,0FFH,0FFH,0FFH, DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH, DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,00FH,000H,000H,000H,000H,000H,000H,000H, DB000H,000H,000H,000H,000H,000H,0E0H,0F8H,0FCH,0FEH,0FEH,0FEH,0FEH,0FEH,0FCH,0FCH, DB000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,0F8H,0FFH,DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,DB0FFH,0FDH,0F9H,0F3H,0E7H,0C7H,087H,007H,007H,0C7H,087H,087H,08FH,08FH,08FH,0CFH, DB0CFH,0DFH,0FFH,09FH,0DFH,0DFH,0FFH,0CFH,0EFH,0EFH,0FFH,0FFH,0CFH,0CFH,0E7H,0E7H, DB0E3H,0E3H,0E3H,0F1H,0F9H,0F9H,0F8H,0FCH,0FCH,0FEH,0FEH,0FFH,0FFH,0FFH,0FFH,0FFH, DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH, DB0FFH,0FFH,0FFH,0FFH,03FH,00FH,007H,000H,000H,000H,000H,000H,000H,000H,000H,000H,DB000H,000H,000H,000H,000H,000H,000H,007H,027H,07FH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,DB000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,0E0H,0FCH,0FFH,0FFH,DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH, DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0F8H,0F1H,0F3H,0E7H,0CFH,0CFH,0DFH,0DFH, DB09FH,09FH,0BFH,0BFH,0BFH,09FH,0DFH,0DFH,0DFH,0CFH,0EFH,0FFH,0FFH,0FFH,0FBH,0FFH, DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH, DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH, DB0FFH,0F7H,0FDH,0FCH,0FCH,0FEH,0FFH,0FCH,0C0H,000H,000H,000H,000H,000H,000H,000H, DB000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,000H,001H,0F1H,0FFH,0FFH,。

汇编语言程序设计实验报告

汇编语言程序设计实验报告
2.掌握汇编语言源程序的执行过程。
二、实验内容
P131作业29。
实验三子程序设计实验
一、实验目的
1.掌握汇编语言源程序子程序设计方法;
2.会使用CV软件工具。
二、实验内容
把实验二作为子程序,编写主程序来对能否构成三角形进行10判断。
实验四宏汇编程序设计实验
一、实验目的
1.掌握宏汇编程序编程技术及宏调用的方法;
2.主模块程序完成子程序的调用,及判断结果的显示,程序名为:ZHU.asm。
实验五混合程序的开发实验
一、实验目的
1.了解混合调用中的参数设置;
2.掌握混合调用的方法;
二、实验内容
P156第5题。
实验一单指令功能测试实验
一、实验目的
1.会使用DEBUG软件;
2.利用DEBUG单步执行功能测试指令的执行。
二、实验内容
判断从键盘输入的ASCII码数字,若是小于等于5,显示“C”,若是大于5显示“D”。假设输入的只可能是0~9数字。
实验二完整的汇编语言程序设计实验
一、实验目的
1.掌握完整的汇编语言源程序的设计方法;
实验五多模块程序设计实验
一、实验目的
1.掌握汇编段的属性的含义;
2.掌握利用LINK将多模块连接起来的方法;
3.掌握利用库文件将多模块连接起来的方法。
二、实验内容
假设内存单元中有三个字a、b和c,编写一个程序,它可判断它们能否构成一个三角形,若能,显示“Y”,否则,显示“N”;
具体要求:
1.三角形的判断程序为一模块子程序,程序名为:ABC.asm。入口参数:字节变量a、b、c。出口参数:字节变量d=1是三角形,d=0不是三角形。
2.了解COM文件的编程方法及特点;

汇编语言屏幕窗口程序——实验七

汇编语言屏幕窗口程序——实验七

集美大学计算机工程学院实验报告课程名称:汇编语言程序设计班级:软件0812实验成绩:指导教师:徐焕姓名:谭驹翔实验项目名称:屏幕窗口程序学号:2008813050上机实践日期:实验项目编号:七组号:上机实践时间:学时一、实验目的与要求题目:屏幕窗口程序实验要求:在屏幕上开出三个窗口,它们的行列坐标(5,10)到(15,30);(5,50)到(15,70)以及(18,15)到(22,65)。

二、实验内容光标首先定位在右窗口最下一行的行首(15,50),如从键盘入字符,则显示在右窗口,同时也显示在下窗口的最下面一行。

若需要将字符显示于左窗口,则先按下←键,接着再从键盘输入字符,字符就会从左窗口的最下行开始显示,同时下窗口也显示出左窗口的内容。

同样再按→也是一样结果。

三、设计和编码scroll macro ulrow,ulcol,lrrow,lrcol,att,function ;设置或上卷窗口(由function决定) MOV bh,0MOV ah,6MOV al,functionMOV ch,ulrowMOV cl,ulcolMOV dh,lrrowMOV dl,lrcolMOV bh,attint 10hendmpos_curse macro x,y ;设置光标在(x,y)位置MOV bh,0MOV ah,2MOV dh,xMOV dl,yint 10hendmdisplay macro ;输出字符=alMOV ah,0eHint 10Hendm;a,b,c,d,e,f 分别保存了下一个字符在左右下三个窗口应显示的位置,也就是下一个字符的光标位置,该宏定义完成获取,判断,输出字符get_char macro a,b,c,d,e,flocal zuo,you,gol,completeagain: ;again是循环获取字符的标号,不是这个宏内部的标号,在下个宏定义末尾跳转到这里MOV ah,0int 16h ;获取字符放在al中cmp ah,01H ;若为esc 则跳转到exit(该标号在主程序的末尾)结束该程序je exitcmp ah,4BHje zuo ;若为左键跳转到zou(设置光标到左窗口相应位置(a,b)),该段程序结束cmp ah,4DHje you ;若为右键跳转到you(设置光标到左窗口相应位置(c,d)),该段程序结束MOV ah,3int 10H ;若以上三个键都不是则读取当前光标所在位置判断该字符应该在哪个窗口输出cmp dl,40 ;判断位于左窗口还是右窗口jl gol ;若为左窗口跳转到golpos_curse c,d ;若为右窗口则设置光标到右窗口相应位置(c,d)显示字符,纵坐标d+1,为下一次在右窗口设置光标准备displayINC dpos_curse e,f ;设置光标到下窗口相应位置(e,f)显示字符,纵坐标f+1,为下一次在下窗口设置光标准备displayINC fpos_curse c,d ;将光标设置回右窗口相应位置(c,d),该段程序结束jmp completegol: ;若判断光标在走窗口则执行以下命令pos_curse a,b ;则设置光标到左窗口相应位置(a,b)显示字符,纵坐标b+1,为下一次在左窗口设置光标准备displayINC bpos_curse e,f ;设置光标到下窗口相应位置(e,f)显示字符,纵坐标f+1,为下一次在下窗口设置光标准备displayINC fpos_curse a,b ;将光标设置回左窗口相应位置(a,b),该段程序结束jmp completezuo:pos_curse a,bjmp completeyou:pos_curse c,dcomplete:endm;a,b,c,d,e,f 分别保存了下一个字符在左右下三个窗口应显示的位置,也就是下一个字符的光标位置,该段代码完成判断三个窗口是否上卷judge macro a,b,c,d,e,flocal cl,cldMOV ah,3int 10H ;读取当前光标位置放入dx 为判断光标位置在左窗口还是右窗口,判断下窗口以及该窗口是否需要上卷push dxcmp f,66 ;若f=66说明下窗口字符已到边界jne clMOV f,15scroll 18,15,22,65,1fh,1 ;上卷下窗口并令f=15(下个字符显示的光标位置:下窗口最左边)pop dxMOV ah,2int 10Hcl: ;同样判断左窗口是否需要上卷cmp b,31jne cldMOV b,10scroll 5,10,15,30,1fh,1 ;上卷左窗口并令b=10(下个字符显示的光标位置:)pos_curse a,bjmp again ;因为左右窗口不可能同时上卷,所以直接跳转到上一个宏定义的开头再一次获取字符cld:cmp d,71 ;上卷右窗口并令d=50(下个字符显示的光标位置:右窗口最左边)jne againMOV d,50scroll 5,50,15,70,1fh,1pos_curse c,d ;将光标设置到右窗口最左边jmp again ;因为左右窗口不可能同时上卷,所以直接跳转到上一个宏定义的开头再一次获取字符endmDATAS SEGMENTlx db 15ly db 10rx db 15ry db 50dwx db 22dwy db 15DATAS ENDSSTACKS SEGMENT;此处输入堆栈段代码STACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKSSTART:MOV AX,DATASMOV DS,AXscroll 0,0,24,79,70h,0 ;function为0 设置三个窗口scroll 5,10,15,30,1fh,0scroll 5,50,15,70,1fh,0scroll 18,15,22,65,1fh,0pos_curse rx,ry ;将光标初始设置在右窗口get_char lx,ly,rx,ry,dwx,dwy ;获取键盘输入判断是否为esc、左右键改变光标位置或在相应的位置输出字符judge lx,ly,rx,ry,dwx,dwy ;判断窗口是否需要上卷循环再两个宏定义之间完成exit:MOV AX,4C00HINT 21HCODES ENDSEND START四、运行结果及分析五、实验小结在上卷的时候光标自动设置到最左侧,因此影响了下一次的输入。

汇编实验报告:汇编程序的汇编及运行_顺序程序设计_分支循环程序设计_子程序设计_dos功能调用

汇编实验报告:汇编程序的汇编及运行_顺序程序设计_分支循环程序设计_子程序设计_dos功能调用

福建农林大学东方学院信息工程类实验报告课程名称:汇编语言*名:***系:计算机系专业:电子信息工程年级:2010学号:1050302103指导教师:职称:2012年 6 月17 日福建农林大学东方学院信息工程类实验报告系:计算机系专业:电子信息工程年级: 10 姓名:廖少兵学号: 1050302103 实验课程:汇编语言实验室号:_______ 实验设备号:实验时间:指导教师签字:成绩:实验一汇编程序的汇编及运行1.实验目的和要求1、熟悉汇编程序的汇编、连接、执行过程2、生成LST文件,查看LST文件3、生成OBJ文件,修改语法错误4、生成EXE文件5、执行2.实验的原理和主要仪器设备IBM—PC机及其兼容机实验的软件环境是:操作系统:DOS 2.0以上;调试程序:;文本编程程序:EDIT.EXE、WPS.EXE;宏汇编程序:MASM.EXE(或ASM .EXE);连接装配程序:LINK .EXE;交叉引用程序:CREF.EXE(可有可无)。

3.实验内容及实验数据记录1、将数据段输入,取名1.txt,保存在MASM文件夹下。

生成LST文件,(不必连接、运行)用EDIT查看1.LST文件。

试回答:DA1,DA2的偏移量分别是多少?COUNT的值为多少?DA TA SEGMENTORG 20HNUM1=8NUM2=NUM1+10HDA1 DB ‘IBM PC’DA2 DB 0AH, 0DHCOUNT EQU $-DA1DATA ENDSEND2、输入有错误的文件,修改错误语句。

(MASM没有出现错误即可。

不必连接、运行。

)DA TA SEGMENTV AR1 DB 0, 25, ODH, 300V AR2 DB 12H, A4H, 6BHV AR3 DB ’ABCDEF’V AR4 DW 1234H, 5678HV AR5 DW 10H DUP(?)DATA ENDSCODE SEGMENTASSUME CS: CODE, DE: DA TABEING MOV AX, DA TAMOV DS, AXLEA SI, V AR5MOV BX, OFFSET V AR2MOV [SI], 0ABHMOV AX, V AR1+2MOV [BX], [SI]MOV V AR5+4, V AR4MOV AH, 4CHINT 21HCODE ENDSEND START3、输入正确的程序,汇编、连接、运行STACKS SEGMENT STACKDW 128 DUP(?)STACKS ENDSDATAS SEGMENTSTRING DB ‘WELCOME!’, 13, 10, ‘$’DATAS ENDSCODES SEGMENTASSUME CS: CODES, DS: DATASSTART:MOV AX, DA TASMOV DS, AXLEA DX, STRINGMOV AH, 9INT 21HMOV AH, 4CHINT 21HCODES ENDSEND START4.操作方法及实验步骤编写各代码并存储为源程序asm文件,对其进行汇编、连接。

实验三 汇编语言程序上机操作方法

实验三 汇编语言程序上机操作方法

一 T AX=0233 BX=0000 CX=0011 DX=0038 SP=0000 BP=0000 SI=0000 DI=0000 DS=0B65 ES=0B65 SS=0B75 CS=0B75 IP=000B NV UP EI PL NZ NA PO NC_ 0B75:000B CD21_ INT_____21_ ・ 在_DEBUG_状态下执行程序 一 G 8 Program terminated normally ・ 退出 DEBUG 一 Q_ 2. 比较字符串_bjchx_ 编写一程序,比较两个字符串_string1_和 _string2_所含的字符是否相同,若相同则显示‘Match’ ,否则,显 示‘No_Match’ 。 参考程序如下:(程序名:SY3-2.ASM) D_SEG SEGMENT STRING1 DB '12345' STRING2 DB '1a345' MATCHSTR DB 'MATCH$' NOMATCHSTR DB 'NO MATCH$'
实验注意事项 1.如果使用的是 MASM5.1 的汇编工具,应包括以下文件:MASM 宏汇 编程序文件 LINK 连接程序文件CREF 索引程序文件(也可不用) EDIT 全屏幕文本编辑程序(或其他文字处理系统) 2.能用宏汇编通过的汇编语言源程序与在 DEBUG状态下运行的汇编 语言程序不同,必须是一个完整的程序,有各逻辑段的定义,而在 DEBUG 状态下运行的汇编语言源程序只是其程序段。 3.连接程序 LINK 是把一个或多个独立的目标程序模块装配成一个 可重定位的可执行文件,扩展名为.EXE。 实验与思考 1. 机器语言(Machine Language)、汇编语言(Assembler Language) 和高级语言(High_Level_ Language)的区别? 2.DOS 2 号功能调用和 DOS 9号功能调用的区别? 3.利用 DEBUG 调试程序过程中,应注意什么?

(整理)LCD1602汇编程序.

(整理)LCD1602汇编程序.

(整理)LCD1602汇编程序.LCD1602汇编程序;* 描述: LCD1602 滚动显示*;* 显示方式:*;* 1、从左到右逐字显示,闪动二次,清屏。

*;* 2、再从右到左逐字显示,闪动二次,清屏。

*;* 3、周期性地重复上述显示方式。

*;************************************************************** ***** LCD_RS EQU P2.0LCD_RW EQU P2.1LCD_EN EQU P2.2;************************************************************** ***** ORG 0000HAJMP MAINORG 0030H;************************************************************** ***** MAIN:MOV SP,#60HMOV R4,#02H ;设置闪烁次数ACALL LCD_INITMAIN1:ACALL LCDSET1MOV DPTR,#CHAR1ACALL WRITE1 ;MOV A,#0C0H ;显示第二行左边第一位位置ACALL LCD_CMDMOV DPTR,#CHAR2 ;显示ACALL WRITE1ACALL DELAY4 ;延时ACALL DELAY4ACALL SHAN ;闪烁两次ACALL LCDSET2MOV DPTR,#CHAR3 ;ACALL WRITE1MOV A,#0C0H ;显示第二行右边第一位位置ACALL LCD_CMDMOV DPTR,#CHAR4 ;显示ACALL WRITE1ACALL DELAY4 ;延时ACALL DELAY4ACALL SHAN ;闪烁两次ACALL MAIN1;************************************************************** *;LCD初始化设定子程序;************************************************************** * LCD_INIT:ACALL DELAY5MS ;延时15MSACALL DELAY5MS ;等待LCD 电源稳定ACALL DELAY5MSMOV A,#38H ;16*2 显示,5*7 点阵,8 位数据ACALL LCD_CMD_NC ;不进行LCD 忙检测ACALL DELAY5MSMOV A,#38H ;16*2 显示,5*7 点阵,8 位数据ACALL LCD_CMD_NC ;不进行LCD 忙检测ACALL DELAY5MSMOV A,#38H ;16*2 显示,5*7 点阵,8 位数据ACALL LCD_CMD_NC ;不进行LCD 忙检测ACALL DELAY5MSMOV A,#08H ;显示关ACALL LCD_CMD ;进行LCD 忙检测MOV A,#01H ;清除屏幕ACALL LCD_CMD ;进行LCD忙检测MOV A,#06H ;移动光标ACALL LCD_CMD ;进行LCD 忙检测MOV A,#0CH ;显示开,关光标ACALL LCD_CMD ;进行LCD 忙检测RET;************************************************************** * ;显示位置与移动光标设定;************************************************************** * LCDSET1:MOV A,#01H ;清除屏幕ACALL LCD_CMDACALL DELAY5MSMOV A,#06H ;移动光标(光标加1)ACALL LCD_CMDACALL DELAY5MSMOV A,#80H ;显示第一行左边第一位位置ACALL LCD_CMDACALL DELAY5MSRETLCDSET2:MOV A,#01H ;清除屏幕ACALL LCD_CMDACALL DELAY5MSMOV A,#06H ;移动光标(光标减1)ACALL LCD_CMDACALL DELAY5MSMOV A,#80H ;显示第一行右边第一位位置ACALL LCD_CMDACALL DELAY5MSRET;************************************************************** * ;写指令数据到LCD;RS=L,RW=L,D0-D7=指令码,E=高脉冲;************************************************************** * LCD_CMD:ACALL CHECKBUSYLCD_CMD_NC:CLR LCD_RSCLR LCD_RWMOV P0,ASETB LCD_ENNOPNOPNOPNOPCLR LCD_ENRET;************************************************************** * ; 发送字符串子程序;************************************************************** * WRITE1:MOV R0,#16WRITE0:CLR AMOVC A,@A+DPTRINC DPTRACALL LCD_WDATACALL DELAY ;加延时形成滚动效果DJNZ R0,WRITE0RET;************************************************************** * ;写显示数据到LCD;RS=H,RW=L,D0-D7=数据,E=高脉冲;************************************************************** * LCD_WDATA:ACALL CHECKBUSYSETB LCD_RSCLR LCD_RWMOV P0,ASETB LCD_ENNOPNOPNOPNOPCLR LCD_ENRET;************************************************************** * ;检测LCD 控制器忙状态;读数据;RS=L,RW=H,E=H,输出:D0-D7=数据;************************************************************** * CHECKBUSY:PUSH ACCMOV P0,#0FFHCLR LCD_RSSETB LCD_RWSETB LCD_ENBUSYLOOP:NOPJB P0.7,BUSYLOOPCLR LCD_ENPOP ACCRET;************************************************************** * ;闪烁子程序;************************************************************** * SHAN:MOV A,#08H ;关闭显示ACALL LCD_CMDACALL DELAY4MOV A,#0CH ;开显示,关闭光标ACALL LCD_CMDACALL DELAY4DJNZ R4,SHANMOV R4,#02H ;设置闪烁次数RET;************************************************************** * ;延时120MS 子程序;发送字符串时使用;************************************************************** * DELAY:MOV R7,#240DL1: MOV R6,#250DL2: DJNZ R6,DL2DJNZ R7,DL1RET;************************************************************** * ;延时800MS 子程序;闪烁时使用;************************************************************** * DELAY4:MOV R0,#40DL3: MOV R1,#100DL4: MOV R2,#100DL5: DJNZ R2,DL5DJNZ R1,DL4DJNZ R0,DL3RET;************************************************************** * ;延时5MS子程序;LCD初始化使用;************************************************************** * DELAY5MS:MOV R1,#10DL6: MOV R2,#249DL7: DJNZ R2,DL7DJNZ R1,DL6RET;************************************************************** * ;延时1MS子程序;************************************************************** * DELAY1MS:MOV R6,#14H ;20DL8: MOV R7,#19H ;25DL9: DJNZ R7,DL9DJNZ R6,DL8RET;************************************************************** * CHAR1:DB "Welcome to Cras-"CHAR2:DB " yBoye WorkGroup"CHAR3:DB " QQ: 15910380 "CHAR4:DB "TEL: 139********";************************************************************** *END12864汇编程序X EQU 26H ;LCD 地址变量RS EQU P2.0RW EQU P2.1EN EQU P2.2PSB EQU P2.3RST EQU P2.5ORG 0000HJMP MAINORG 0003H ;外部中断INT0入口地址MAIN:MOV SP,#40HMOV A,#00HMOV R0,#20HLOOP0: MOV @R0,A ;20H-26H清零INC R0CJNE R0,#27H,LOOP0MOV IE,#81H ;允许总中断中断,使能INT0 外部中断MOV TCON,#01H ;触发方式为脉冲负边沿触发SETB RSTNOPSETB PSB ;8位数据,并口CALL SET_LCD ;初始化TS12864mCALL MENU1CALL MENU2CALL MENU3CALL MENU4LOOP1:MOV A,22HCJNE A,#40H,LOOP2LOOP2: CJNE A,#04H,LOOP3LOOP3: JMP LOOP1;====================================== =======; LCD 初始化设置;====================================== =======-SET_LCD:CLR ENMOV A,#34H ;34H--扩充指令操作CALL WCOMMOV A,#30H ;30H--基本指令操作CALL WCOMMOV A,#0CH ;开显示,关光标,CALL WCOMMOV A,#01H ;清除LCM 显示屏CALL WCOMRET;====================================== ============= ;在LCM 各行显示信息字符;====================================== ============= LCD_SHOW:CJNE A,#1,LINE2 ;判断是否为第一行LINE1: MOV A,#80H ;设置LCD 的第一行地址CALL WCOM ;写入命令CALL CLR_LINE ;清除该行字符数据MOV A,#80H ;设置LCD 的第一行地址CALL WCOM ;写入命令JMP FILLLINE2: CJNE A,#2,LINE3 ;判断是否为第三行MOV A,#090H ;设置LCD 的第三行地址CALL WCOM ;写入命令CALL CLR_LINE ;清除该行字符数据MOV A,#090H ;设置LCD 的第三行地址CALL WCOMJMP FILLLINE3: CJNE A,#3,LINE4 ;判断是否为第三行MOV A,#088H ;设置LCD 的第三行地址CALL WCOM ;写入命令CALL CLR_LINE ;清除该行字符数据MOV A,#088H ;设置LCD 的第三行地址CALL WCOMJMP FILLLINE4: CJNE A,#4,LINE5 ;判断是否为第三行MOV A,#098H ;设置LCD 的第三行地址CALL WCOM ;写入命令CALL CLR_LINE ;清除该行字符数据MOV A,#098H ;设置LCD 的第三行地址CALL WCOMFILL: CLR A ;填入字符MOVC A,@A+DPTR ;由消息区取出字符CJNE A,#0,LC1 ;判断是否为结束码LINE5: RETLC1: CALL WDA TA ;写入数据INC DPTR ;指针加1JMP FILL ;继续填入字符RET;====================================== =========== ;清除该行LCM 的字符;====================================== =========== CLR_LINE:MOV R0,#16CL1: MOV A,#' 'CALL WDATADJNZ R0,CL1RET;====================================== ============ ;LCM 显示工作菜单信息;====================================== ============ MENU1:MOV DPTR,#MENU1AMOV A,#1 ;在第一行显示信息CALL LCD_SHOWRETMENU1A: DB "MUC 控制GPRS模块",0MENU2:MOV DPTR,#MENU2AMOV A,#2 ;在第二行显示信息CALL LCD_SHOWRETMENU2A: DB "TEL:139********",0MENU3:MOV DPTR,#MENU3AMOV A,#3 ;在第三行显示信息CALL LCD_SHOWRETMENU3A: DB "方案设计: 龚伟",0MENU4:MOV DPTR,#MENU4AMOV A,#4 ;在第四行显示信息CALL LCD_SHOWRETMENU4A: DB "程序编写: 靳鹏",0;====================================== ======== ; 写指令使能子程序;RS=L,RW=L,D0-D7=指令码,E=高脉冲;====================================== ======== WCOM:MOV P0,ACLR RSCLR RWSETB ENCALL DELAY0CLR ENRET;====================================== ======= ;写数据使能子程序;RS=H,RW=L,D0-D7=数据,E=高脉冲;=============================================WDATA:MOV P0,ASETB RSCLR RWSETB ENCALL DELAY0CLR ENRETDELAY0: MOV R7,#250 ;延时500微秒DJNZ R7,$RET END。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验五
屏幕窗口程序
一、 实验的目的与要求
(一)实验目的:掌握显示器IO 程序设计的方法,掌握宏的相关概念,以及运用方法。

(二)实验要求:在屏幕上开出三个窗口,它们的行列坐标如下页图所示,光标首先定位在右窗口最下面一行的行首(15, 50),如果从键盘输入字符,则显示在右窗口,同时也显示在下窗口的最下面一行。

若需要将字符显示于左窗口,则先按下左键,接着再从键盘输入字符,字符就会从左窗口的最下行开始显示,同时下窗口也显示左窗口的内容。

当一行字符显示满后,窗口自动向上卷动一行,输入字符继续显示于最低一行,窗口最高一行向上卷动后消失。

编写屏幕窗口程序时,要求将一些功能程序段定义成宏指令,如向上卷动、清屏、
接受字符并判断、在屏幕上显示字符、光标定位。

二、实验正文
实验分析:实验思路比较简单,主要是运用BIOS 调用,这些查表可得,实验要求要用宏来定义一些基本功能,宏调用比较简单,把一些基本功能编写成宏,能高效率的执行程序,但是宏也存在着一些缺点,在宏调用时,要宏展开,这样会占用一定的空间,所以宏是一种以空间换时间的策略,像一些复杂的操作不宜编写成宏。

BIOS 10号调用提供了大量的屏幕、光标显示格式,要注意参数的意义,以便正确的显示结果。

三、流程图如下:
(5,10) (15,30)
(5,50)
(15,70)
(18,15) (22,65)
四、实验结果
附录:程序源代码如下:
;**************************************************************** datas segment
cury db 15 ;光标初始位置
curx db 50
lx db 10 ;记录左窗口当前光标位置,初始化为左窗口初始位置ly db 15
rx db 50 ;记录右窗口当前光标位置,初始化为右窗口初始位置ry db 15
dwx db 15 ;记录下窗口当前光标位置,初始化为下窗口初始位置dwy db 22
ulrow db 0
ulcol db 0
lrrow db 0
lrcol db 0
windownum db 1
datas ends
;-----------------------------------------------------------------宏指令clear 清屏
clear macro a,b,c,d
mov al,0 ;初始化窗口
mov bh,7 ;卷入行属性
mov ch,a ;左上角行号
mov cl,b ;左上角列号
mov dh,c ;右下角行号
mov dl,d ;右下角列号
mov ah,6
int 10h ;BIOS调用,屏幕初始化
endm
;-------------------------------------------------------------宏指令scroll向上卷动一行scroll macro cont,ulrow,ulcol,lrrow,lrcol
mov al,cont ;上卷行数
mov bh,70h ;卷入行属性
mov ch,ulrow ;左上角行号
mov cl,ulcol ;左上角列号
mov dh,lrrow ;右下角行号
mov dl,lrcol ;右下角列号
mov ah,6
int 10h ;BIOS调用,上卷
endm
;--------------------------------------------------------------宏指令postc 光标定位
postc macro y,x
mov bh,0 ;页号
mov dh,y ;行
mov dl,x ;列
mov ah,2
int 10h ;BIOS调用,置光标位置
endm
;---------------------------------------------------------------在当前窗口和下窗口显示display macro
mov bh,0
mov cx,1
mov ah,0ah ;在当前的窗口打印字符
int 10h
postc dwy,dwx
mov bh,0
mov cx,1
mov ah,0ah ;在下窗口输出
int 10h
endm
;----------------------------------------------------------------接收字符并判断getchar macro
input: ;输入键盘上的字符
mov ah,0
int 16h ;BIOS调用,从键盘读字符
cmp ah,4bh ;判断输入字符是否为左向键
jnz no_left
postc ly,lx
mov windownum,2
jmp input
no_left:
cmp ah,4dh
jnz no_right ;判断输入字符是否为右向键
postc ry,rx
mov windownum,1
jmp input
no_right:
cmp ah,01 ;判断输入字符是否为ESC
jz exit
display ;嵌套调用
inc dwx
cmp dwx,65 ;判断下窗口是否上卷
jle isright
scroll 1,19,15,22,65
mov dwx,15
isright:
cmp windownum,1 ;判断是否在右窗口
jnz displeft
dispright: ;判断右窗口是否上卷inc rx
cmp rx,70
jle rightexit
scroll 1,6,50,15,70
mov rx,50
rightexit: ;右窗口输出
postc ry,rx
jmp input
displeft: ;判断左窗口是否上卷
inc lx
cmp lx,30
jle leftexit
scroll 1,6,10,15,30
mov lx,10
leftexit: ;左窗口输出
postc ly,lx
jmp input
exit:
endm
;---------------------------------------------------------------
codes segment
assume cs:codes,ds:datas
start:
main proc far
push ds
sub ax,ax
push ax
mov ax,datas
mov ds,ax
clear 0,0,24,79
scroll 10,5,10,15,30
scroll 10,5,50,15,70
scroll 4,18,15,22,65
postc cury,curx
getchar
ret
main endp
;-----------------------------------------------------------------
codes ends
;****************************************************************
end start
五、实验总结
通过这次实验,掌握了屏幕窗口程序的基本设计方法,领略了宏的设计和使用方法,实验的整体思路比较简单,但如若想编出复杂的屏幕程序,需要对BIOS调用有一个大致的了解,只有这样才能灵活的去运用,这也就启迪我多去阅读和积累相关的知识,只有知识积累到一定程度才能编出好的程序。

相关文档
最新文档