文档详情

汇编语言程序设计课件-8-9.ppt

发布:2025-02-12约1.91千字共13页下载文档
文本预览下载声明

第八章实模式下的中断程序设计

8.4DOS功能调用

1号功能调用

2号功能调用

9号功能调用

0AH号功能调用

8.4DOS功能调用

例:MOVAH,1

INT21H

调用方法

设置入口参数。

功能调用号送AH存放器。

发软中断指令“INT21H”。

8.4DOS功能调用

例如:

MOVAH,1

INT21H

1号功能调用

功能:从标准输入设备上读入一个字符,并将该字符回显在标准输出设备上。

入口参数:无

出口参数:AL=读到字符的ASCII码

8.4DOS功能调用

例如:

MOVDL,39H;输出字符‘9’

MOVAH,2

INT21H

2号功能调用

功能:在标准输出设备上显示一个字符。

入口参数:DL=要输出字符的ASCII码

出口参数:无

8.4DOS功能调用

9号功能调用

功能:在标准输出设备上显示一个字符串。

入口参数:DS:DX=需要显示字符串的首地址。字符串以‘$’为结束标志。

出口参数:无

8.4DOS功能调用

0AH号功能调用

功能:从标准输入读一个字符串。

入口参数:DS:DX=输入缓冲区首地址

出口参数:接收到的输入字符串在缓冲区中。

字符串以回车符结束,回车符是接收到的字符串的最后一个字符

实际读入的字符数〔不包括回车符〕

第九章输入输出程序设计

典型的I/O接口

9.1.3端口寻址的输入输出方式

CPU专门的I/O指令,用地址来区分不同的端口。

一个外设有多个端口地址。

直接寻址方式

地址是一个字节,地址范围0-255

间接寻址

用DX存放器间接寻址外设

可寻址216=64K个端口,地址范围0-FFFFH

9.1.3输入输出指令

这组指令只限于使用AX或AL与外部设备的端口传送信息。

一个外设有多个端口地址。

直接寻址方式

地址是一个字节,地址范围0-255

间接寻址

用DX存放器间接寻址外设

可寻址216=64K个端口,地址范围0-FFFFH

1.直接输入输出指令

类型

IN指令

格式:INAL,PORT;字节输入

INAX,PORT;字输入

PORT是外设的端口编号,是一字节无符号数,只能取值00H~0FFH,有256个端口地址

执行操作:

字节:AL←〔PORT〕

字:AX←〔PORT+1〕,〔PORT〕

OUT指令

格式:OUTPORT,AL;字节输出

OUTPORT,AX;字输出

执行操作:

字节:〔PORT〕←AL

字:〔PORT+1〕,〔PORT〕←AX

AL/AX

端口

在进行数据传送前,先将端口地址送入DX存放器中。

例如:MOVDX,4308H

类型

IN指令

格式:INAL,DX;字节输入

INAX,DX;字输入

DX为外设端口地址,范围可设置为0000H~0FFFFH,允许有65536个端口地址

执行操作:

字节:AL←〔DX〕

字:AX←〔DX+1〕,〔DX〕

OUT指令

格式:OUTDX,AL;字节输出

OUTDX,AX;字输出

执行操作:

字节:〔DX〕←AL

字:〔DX+1〕,〔DX〕←AX

2.间接输入输出指令

例题【9-1】

设打印机接口芯片中数据端口地址0378H,状态端口地

址0379H,在状态存放器中,D0位表示打印机当前状态,

D0=1表示忙,D0=0表示闲,编程向打印机送100个字节

的数据,设数据首地址在BX中。

例题【9-1】解答

MOVCX,100;送100个字符

OUT1: MOVDX,0379H;端口地址在DX中

TEST1: INAL,DX;取端口地址中的状态信息

ANDAL,01H ;仅保存D0位

JNZTEST1;D0=1,打印机忙,返回等待

MOVDX,0378H;打印机空闲时,向外送数

MOVAL,[BX];取内存的一个字符送AL

OUTDX,AL;送打印机的数据端口

INCBX;内存地址加1

LOOPOUT1;未送完,返回

显示全部
相似文档