回 帖 发 新 帖 刷新版面

主题:考试有这么一道题目,答案看不太懂,帮我解释下好吗?

2. 下图是一个查询式输出的接口电路(10’)
(1),它有几个端口?写出它们的用途和各自的地址。
(2),D触发器何时置1,何时清0?
(3),在标注(1),(2),(3)的3根信号线上标注恰当的信号名称。
(4),若要将内存BUFFER地址开始的20个字节数据输出,用8086汇编指令写出输出数据的指令序列。
图见附件

答案如下:
(1) 有二个端口。
    数据端口用于接收来自CPU的数据,送往外设数据线,它的端口地址为 29H;
    状态端口用于记录外设的状态,送往数据总线,它的端口地址为 28H;
(2)     CPU把一个数据送入锁存器,同时把D触发器置1;
    外设输出完成,发出ACK信号,把D触发器清0 。
(3)     标注正确的信号名称:清零状态,D端为1信号,状态位。
(4)
    LEA SI , BUFFER
    MOV CX , 19
    MOV    AL , [SI]
    OUT    29H ,AL

W:  IN     AL , 28H
    TEST     AL , 80H
    JNZ    W
    INC  SI 
    MOV    AL , [SI]
    OUT    29H ,AL
    LOOP  W

汇编那段看不太懂,大大们帮忙注释下好吗?
就是明明20个数据要传,CX为什么只给19,循环19次啊
而且为什么第一次OUT不用判断D7位啊

回复列表 (共3个回复)

沙发

看来大家都是菜鸟呀

板凳

我认为是标号“w”之前已经有  OUT    29H ,AL

                           W:  

3 楼

至于D7问题我认为是因为
d7是忙标志位——————检查上一次是否完成,所以第一次用不着检查!

我来回复

您尚未登录,请登录后再回复。点此登录或注册