注册 登录
编程论坛 汇编论坛

[求助]关于从设备读数的问题

Powerqy 发布于 2007-06-01 08:33, 670 次点击
现有8个设备,使用软件查询方式与MPU通信,当状态d0=1时,为第1#设备读入字符;当状态d1=1时,为第2#设备读入字符;以此类推,当状态d7=1时,为第8#设备读入字符;设状态端口地址为10H,1#到8#设备数据端口地址为00H-07H,输入字符缓冲区首地址分别为BUFF1-BUFF8。

编程完成从这8个输入设备分别输入10个字符?
3 回复
#2
菜鸟上路2007-06-01 09:46
粗略的写了下,可以说明思路

NEXT:
MOV AH,01H
INT AL,10H
AND AH,AL
CMP AH,1
JNZ NEXT1
MOV DI,0
CALL INPUT
NEXT1:
ROR AH,1
CMP AH,02H
JNZ NEXT2
MOV DI,1
CALL INPUT
NEXT3:
ROR AH,1
CMP AH,04H
JNZ NEXT4
MOV DI,2
CALL INPUT
NEXT4:
ROR AH,1
CMP AH,08H
JNZ NEXT5
MOV DI,3
CALL INPUT
...
...
...
NEXT8:
ROR AH,1
CMP AH,80H
JNZ NEXT

INPUT PROC
PUSH AX
MOV SI,0
AGAIN:
XOR AL,AL
MOV AL,BUFF1[SI+DI]
INC SI
OUT 00H,AL
CMP SI,10H
JBE AGAIN
POP AX
INPUT ENDP
#3
Powerqy2007-06-01 13:09
首先这是从外设读数据的,而且读入的缓冲区不一样!

有一个疑问怎样把每个外设的数据都读了,第一次有可能一些外设没有被读到,第二次要再读这个状态端口,上次已经读过的设备的状态是0还是1?

谢谢!
#4
菜鸟上路2007-06-01 13:15
一个设备读10次啊
1