IBM-PC汇编语言程序设计第二版第9章课件_第1页
IBM-PC汇编语言程序设计第二版第9章课件_第2页
IBM-PC汇编语言程序设计第二版第9章课件_第3页
IBM-PC汇编语言程序设计第二版第9章课件_第4页
IBM-PC汇编语言程序设计第二版第9章课件_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

●键盘I/O●显示器I/O●打印机I/O●串行通信口I/O第九章BIOS和DOS中断子程序调用

主程序

……CALLSUBP

……

子程序…………RETDOS/BIOS调用

源程序

……INTn

……DOS/BIOS

例行程序…………IRET实现机制不同

BIOS和DOS基本调用调用方法:1、将调用参数装入指定的寄存器中;2、BIOS或DOS功能号装入AH;3、如需子功能号,把它装入AL;4、按中断号调用DOS或BIOS中断(INT);5、检查或取得返回参数。

1.键盘I/O(1)BIOS键盘中断(INT16H)AH功能返回参数

0从键盘读一字符AL=字符码,AH=扫描码

1读键盘缓冲区的字符如ZF=0,AL=字符码,

AH=扫描码如ZF=1,缓冲区空

2取键盘状态字节AL=键盘状态字节

字符数字键字符码为ASCII码功能键、控制键字符码为0对应一个扫描码DOS键盘中断(INT21H)AH

功能调用参数返回参数

1

从键盘输入一个字符并回显在屏幕上AL=字符

6读键盘字符,不回显DL=0FFH若有字符可取,AL=字符,ZF=0

若无字符可取,AL=0,ZF=1

7

从键盘输入一个字符,不回显AL=字符

8从键盘输入一个字符,不回显,AL=字符检测Ctrl-Break

A

输入字符到缓冲区DS:DX=缓冲区首址

B

读键盘状态AL=0FFH有键入,AL=00无键入

C

清除键盘缓冲区,AL=键盘功能号并调用一种键盘功能(1,6,7,8或A)例:输入字符串到缓冲区STRING

DATASEGMENT

MAXLENDB32

MAXLENDB32,0,32DUP(?)ACTLENDB?MAXLENDB32,33DUP(?)STRINGDB32DUP(?)DATAENDSCODE SEGMENT

… LEA DX,MAXLEN MOV AH,0AH INT 21H …CODE ENDS END32568H61H70H70H79H0DHMAXLENACTLENSTRING

BIOS显示中断INT10H

功能号AH=0,1,2,3,5,6,7,8,9,0AH,0EH13H(p.328)

例:清除屏幕

mov ah,6 ;屏幕初始化

mov al,0 ;全屏空白

mov

bh,7 ;卷入行属性

mov

ch,0 ;左上角行号

mov

cl,0 ;左上角列号

mov dh,24 ;右下角行号

mov dl,79 ;右下角列号

int 10h ;BIOS调用

定义窗口例:

在品红背景下,显示5个浅绿色闪烁的星号。

MOV AH,09

;光标位置下显示MOV AL,’*’ ;显示字符MOV BH,0 ;显示页0MOV BL,0DAH;1

101

1010

(表9.7)

MOV CX,05 ;显示次数

INT 10H

;BIOS调用例:在屏幕上以红底兰字显示字符串:“WORLDSCENERY”STRING DB ‘WORLDSCENERY’;定义在ES段LEN_TR DW 13 ┇ MOV AL,3 ;80×25,16色文

本方式

MOV AH,0

INT 10H MOV BP,SEGSTRING MOV ES,BP ;串地址ES:BP MOV BP,OFFSETSTRING MOV CX,LEN_STR;串长度

MOV DX,0 ;起始行列 MOV BX,0041H ;0100

0001(属性) MOV AL,1 ;子功能

MOV AH,13H

;显示字符串

INT 10H

例:显示字符串MESSAGEDB‘Thesortoperationisfinished.’,13,10,’$’……

MOVAH,9 MOVDX,SEGMESSAGE MOVDS,DX MOVDX,OFFSETMESSAGE

INT21H3.打印机I/O(p.336)INTAH功能调用参数返回参数21H5

打印一个字符

DL=字符

17H0

打印一个字符

AL=字符AH=状态字节

并回送状态字节

DX=打印机号

17H1

初始化打印机

DX=打印机号AH=状态字节

回送状态字节

17H2

回送状态字节

DX=打印机号AH=状态字节例:

打印字符串TEXT(DOS)TEXTDB‘Hello,everybody!’COUNTEQU$-TEXT;COUNT=17…… MOVCX,COUNT MOVBX,0 NEXT:MOVAH,5

MOVDL,TEXT[BX]

INT21H INC BX LOOPNEXT

4.串行通信口I/ODOS串行通信口功能(INT21H)AH功能调用参数返回参数3读字符AL=读入的数据4写字符DL=写入的数据(2)BIOS串行通信口功能(INT14H)AH功能调用参数返回参数0初始化串行通信口AL=初始化参数AH=通信口状态DX=通信口号AL=modem状态1向通信口写字符AL=所写字符成功:AL=字符DX=通信口号失败:AH=口状态2从通信口读字符DX=通信口号成

温馨提示

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

评论

0/150

提交评论