汇编语言程序设计课件-8-9.ppt
第八章实模式下的中断程序设计
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;未送完,返回