汇编语言程序设计10._第1页
汇编语言程序设计10._第2页
汇编语言程序设计10._第3页
汇编语言程序设计10._第4页
汇编语言程序设计10._第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、键盘中断处理流程 1、将、将调用参数调用参数装入装入指定的指定的寄存器中;寄存器中;2、BIOS或或DOS功能号功能号装入装入AH;3、如需、如需子功能号子功能号,把它装入,把它装入AL;4、按中断号、按中断号调用调用BIOS中断中断(INT);5、检查或取得、检查或取得返回参数返回参数。BIOS基本调用调用方法: BIOS键盘中断( INT 16H)AH 功能功能 返回参数返回参数 0 从键盘读一字符从键盘读一字符 AL=字符码,字符码,AH=扫描扫描码码 1 读键盘缓冲区的字符读键盘缓冲区的字符 如如ZF=0,AL=字符码,字符码, AH=扫描扫描码码 如如ZF=1,缓冲区空,缓冲区空 2

2、 取键盘状态字节取键盘状态字节 AL=键盘状态字节键盘状态字节 字符数字键字符数字键 字符码为字符码为ASCII 码码 功能键、控制键功能键、控制键 字符码为字符码为0对应一个扫描码对应一个扫描码例例: : 输入字符串到缓冲区输入字符串到缓冲区STRINGSTRING MAXLEN DB 32 MAXLEN DB 32 ,0, 32 DUP(?) ACTLEN DB ? MAXLEN DB 32 ,33 DUP(?) STRING DB 32 DUP(?)CODE SEGMENTLEADX,MAXLENMOVAH,INT21HCODE ENDS END32568H61H70H70H79H0DH

3、MAXLENACTLENSTRING;-建立从键盘接收字符串到内存输入缓冲区1-BUF DB 10 ;第第1个字节指出缓冲区能容纳的字符个数个字节指出缓冲区能容纳的字符个数.ACTL DB ? ;第第2个字节用于填写实际输入的字符个数个字节用于填写实际输入的字符个数.STRSS DB 10 DUP(?) ;第第3个字节开始存键盘接收的字符个字节开始存键盘接收的字符.;-需要显示的字符串-MESS DB 0DH,0AH,What is your name?,0DH,0AH,$ DMESS DB 0DH,0AH,Hello,$ mess1 db 0DH,0AH,Match.,13,10,$mess

4、2 db 0DH,0AH,Not match!,13,10,$;-建立从键盘接收字符串到内存输入缓冲区2-BUF2 DB 10 ACTL2 DB ? STRSS2 DB 10 DUP(?) ; 接收键盘输入的字符串接收键盘输入的字符串, DS:DX=缓冲区首址缓冲区首址 LEA DX,BUFMOV AH,0AHINT 21H ;-取键入字符串的实际长度,在键入的字符串后添加字符取键入字符串的实际长度,在键入的字符串后添加字符- MOV AX,0 MOV AL,ACTL MOV SI,AXLEA BX,STRSS MOV BX+SI,BYTE PTR $ ;在键入的字符串后加在键入的字符串后加$

5、 CMPSB /字节串比较(SI)-(DI)CMPSW /字串比较(SI+1)(SI) - (DI+1)(DI)把由SI指向的数据段中的一个字节或字与由DI指向的附加段中一个字节或字相减,不保留结果,只根据结果置标志位。1)(SI)-(DI)2)字节操作:(SI)-(SI)+-1,(DI)-(DI)+-1字操作:(SI)-(SI)+-2,(DI)-(DI)+-2指令把由(SI)指向的数据段中的一个字(或字节)与由(DI)指向的附加段中的一个字(或字节)相减,但不保存结果,只根据结果设置条件码,指令其它特性和MOVS指令的规定相同。一般说来,有时缓冲区中的串字符需要逐次取出时CLD(CLear

6、Direction flag) 清除方向标志指令格式:CLD执行操作:令DF=0,其后SI,DI执行增量操作该指令使DF=0,在执行串操作指令时可使地址自动增量STD(SeT Direction flag) 设置方向标志指令格式:STD执行操作:令DF=1,其后SI,DI执行减量操作该指令使DF=1,在执行串操作指令时可使地址自动减量。REPE/REPZ和REPNZ/REPNE联合工作的CMPSB指令;-比较字符串1、2- mov ax,0 mov si,ax mov di,ax lea si,STRSS lea di,STRSS2 cld ;DF=0 mov cx,10 repz cmpsb

7、 jz match lea dx,mess2 jmp dispmatch: mov dx,offset mess1disp: mov ah,9 int 21hJMP LP判定鼠标的状态可以用 INT 33H 的0函数如:MOV AX, 0 INT 33H CMP AX, 0 JE EXIT MOV M_BUTTON, BX若 AX = 0,表示没有鼠标可使用,若AX = FFFFH,表示有鼠标可以使用,并且会将鼠标的按钮数存到BX 中。INT 33H 的01函数用于显示鼠标的光标如:MOV AX, 01 INT 33H在调用过后,鼠标会显示出来;在图形界面会显示 箭头;在文字编辑界面,会显示一

8、个长方块表示鼠标的位置,颜色是背景的相反颜色;得到光标的坐标用3函数, (在80*25的模式下,象数是640*200)调用中断过后, CX 储存水平位置, DX 储存垂直位置; BX 储存按钮(BUTTON)的状态, D0 是左按钮, D1 是右按钮, D2 是中间按钮, 如果是按下的话是1, 没按的话是0;CX 的范围为0-639, DX 为0-199设置光标的位置用4函数但在调用中断之前,必须将新的光标的位置的水平位置存于CX 中, 将垂直位置存于 DX 中;如果要定位到(9*5),则相应的CX,DX为(72*40),就是分别乘以8得到鼠标按钮的信息,用05函数如: MOV AX, 05

9、MOV BX , X; X 的值取0表示需要看左边按钮, 取1为右边,2为中间按钮 INT 33H在调用过后, AX 存放按钮的信息,D0 是左按钮, D1 是右按钮, D2 是中间按钮, 如果是按下的话是1, 没按的话是0; BX 存放被按下的按钮的个数; CX , DX为光标的坐标 显示器是计算机系统的基本输出设备,主要用于数据处理结果及图形的输出。 PC系列机及兼容机的图形显示系统以显示卡的换代为发展标志,经历了MDA、CGA、EGA、VGA、SVGA等几个发展阶段。 当前流行的都是高分辨率(分辨率为16801080,19201200等)Super VGA显示器.1、 文本显示模式 所谓

10、文本显示模式文本显示模式是指以字符为单位显示的方式。字符通常是指字母、数字、普通符号(如运算符号)和一些特殊符号(如菱形块和矩形块)。 ASCII码属性ASCII码属性ASCII码属性ASCII码属性ASCII码属性B800:0000000100020003000400050F9C0F9D0F9E0F9F屏幕(0,0)(79,24)0列79列0行至24行 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0前景前景000 = 黑黑111 = 白白亮度亮度0 = 正常亮度正常亮度1 = 加强亮度加强亮度闪烁闪烁0 = 正常显示正常显示1 = 闪烁显示闪烁显示背景背景000 = 黑黑11

11、1 = 白白单色属性单色属性 7 6 5 4 3 2 1 0 前景前景闪烁闪烁背景背景BL R G B I R G B16色属性色属性图形显示模式 图形显示模式图形显示模式就是利用显示器屏上的像素点(Pixel)构成图形或图像。VGA显示器、显示器与显示卡的接口都采用模拟方式处理色彩,因此它们都具有无限显示色彩的传输和处理能力;但主机和显示卡只能用数字方式来表示和处理色彩,因此若需要表现丰富的色彩,显存需求量将很大。显卡类型模式号显示分辨率显示缓冲区首地址MDA07H720350(2C)B000:0HCGA04H06H320200(4C)640200(2C)B800:0HB800:0HEGA0

12、DH0EH0FH10H320200(16C)640200(16C)640350(4C)640350(16C)A000:0HA000:0HA000:0HA000:0HVGA11H12H13H640480(2C)640480(16C)320200(256C)A000:0HA000:0HA000:0HTVGA5BH5CH5DH5EH5FH62H800600(16C)640400(256C)640480(256C)800600(256C)1024768(16C)1024768(256C)A000:0HA000:0HA000:0HA000:0HA000:0HA000:0H压缩像素法中视频缓冲区与显示屏的

13、映射关系 TVGA分页映射机制 BIOS显示中断显示中断 INT 10H 功能号功能号 AH=0,1, 2, 3, 5, 6, 7, 8, 9, 0AH, 0EH 13H (p.328) 例:清除屏幕例:清除屏幕 mov ah, 6; 屏幕初始化屏幕初始化mov al, 0; 全屏空白全屏空白mov bh, 7; 卷入行属性卷入行属性mov ch, 0; 左上角行号左上角行号mov cl, 0; 左上角列号左上角列号mov dh, 24; 右下角行号右下角行号mov dl, 79; 右下角列号右下角列号int10h; BIOS调用调用 定义窗口例例: 在品红背景下,显示在品红背景下,显示5个浅

14、绿色闪烁的星号。个浅绿色闪烁的星号。 MOVAH,09 ;光标位置下显示光标位置下显示 MOVAL,* ;显示字符显示字符 MOVBH,0 ;显示页显示页0 MOVBL,0DAH ; 1 101 1010 (表表9.7) MOVCX,05 ;显示次数显示次数 INT 10H ;BIOS调用调用例例:在屏幕上以在屏幕上以红底红底兰字兰字显示字符串:显示字符串:“WORLD SCENERY” STRING DB WORLD SCENERY ;定义在定义在ES段段 LEN_TR DW 13 MOV AL,3 ;8025, 16色文色文本方式本方式MOV AH,0INT 10HMOV BP,SEG S

15、TRINGMOV ES,BP ;串地址串地址ES:BPMOV BP,OFFSET STRING MOV CX,LEN_STR ;串长度串长度 MOV DX,0 ;起始行列起始行列MOV BX,0041H;0100 0001(属性)(属性)MOV AL,1;子功能子功能MOV AH,13H;显示字符串显示字符串INT 10HINT 10H中断的图形功能调用 AH功能说明调用参数返回参数0C H写像素点DX=行坐标,CX=列坐标,AL=颜色值0D H读像素点DX=行坐标,CX=列坐标AL=像素点值0FH取显示模式AL=模式号10 H设置某颜色的RGB值AL=10H,BX=颜色索引号DH=R,CH=G,CL=BDH=R,CH=G,CL=B设置一组颜色的RGB值AL=12H,CX=颜色数DS:DX=缓冲区首地址读出某颜色的RGB值AL=15HBX=颜色号读出一组颜色的R

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论