(2)当d1是AL时,该指令从指定的端口中读1字节数据; 当d是AX时,CPU将从d2对应的端口读1字数据到AL,从 下一个端口号读1字节数据到AH,即总共读取16位数据送到 AX中。 【指令格式】OUTd1,d2 【功能】把操作数d2指明的1字节或2字节数据送到d对应 的外设端口中。 说明】 (1)d2只能是AL或AX。当外设端口号不超过25时,d1 操作数可直接写端口号码;端口号超过255时,必须先把端 口号放在DX中,以DX作为d操作数
(2)当d1是AL时,该指令从指定的端口中读1字节数据; 当d1是AX时,CPU将从d2对应的端口读1字节数据到AL,从 下一个端口号读1字节数据到AH,即总共读取16位数据送到 AX 中。 【指令格式】OUT d1 , d2 【功能】把操作数d2指明的1字节或2字节数据送到d1对应 的外设端口中。 【说明】 (1)d2只能是AL或AX。当外设端口号不超过255时,d1 操作数可直接写端口号码;端口号超过255时,必须先把端 口号放在DX中,以DX作为d1操作数
(2)当d2是AL时,该指令把AL中的8位数据送往d1指 定的外设端口;当d2,是AX时,该指令把AL中的8位数据送 到d1对应的端口,把AH中的8位数据送往下一端口,即把 16位数据送到d1对应的端口及下一端口中
(2)当d2是AL时,该指令把AL中的8位数据送往d1指 定的外设端口;当d2是AX时,该指令把AL中的8位数据送 到d1对应的端口,把AH中的8位数据送往下一端口,即把 16位数据送到d1对应的端口及下一端口中
【例8.1】说明下面各指令或程序段的功能。 (1) MOV DX, 61H IN ALDX (2)MOV BX, 61H MOV ALIBXI (3)OUT 2IH,AL (4)MOV SL21H MOv[S耵,AL
【例8.1】说明下面各指令或程序段的功能。 (1)MOV DX,61H IN AL,DX (2)MOV BX,61H MOV AL,[BX] (3)OUT 21H,AL (4)MOV SI,21H MOV [SI],AL
解】 (1)先把立即数6H放到DX中,然后以DX中的61H作 为外设端口号,从相应的外设端口读取1字节数据送到AL 中 (2)先把立即数61H放到BX中,然后以BX中的6H作 为偏移地址,以缺省段寄存器DS中的值为段地址,从相应 的内存中取出1字节数据送到AL中。 3)把AL中的1字节数据送往21H号外设端口 (4)先把立即数21H放到S中,然后以S中的21H作为 偏移地址,以缺省段寄存器DS中的值为段地址,把A中 的1字节数据送到相应的内存中
【解】 (1)先把立即数61H放到DX中,然后以DX中的61H作 为外设端口号,从相应的外设端口读取1字节数据送到AL 中。 (2)先把立即数61H放到BX中,然后以BX中的61H作 为偏移地址,以缺省段寄存器DS 中的值为段地址,从相应 的内存中取出1字节数据送到AL中。 (3)把AL中的1字节数据送往21H号外设端口。 (4)先把立即数21H放到SI中,然后以SI中的21H作为 偏移地址,以缺省段寄存器DS 中的值为段地址,把AL中 的1字节数据送到相应的内存中
814输入输出方式 主机与外设之间数据交换的方法有4种:无条件方式、 查询方式、中断方式、DMA方式
8.1.4 输入输出方式 主机与外设之间数据交换的方法有4种:无条件方式、 查询方式、中断方式、DMA方式