我知道有3种传输IO数据的方式: 编程模式,中断模式和DMA模式。 对于程序模式,如果我想从IO向RAM发送一个字节,我应该这样写
MOV PORT1,000AH # tell io the address
IN ACC,PORT2 # read data from this address
MOV [0x5566], ACC # mov this data to RAM
如果我要传输许多字节,我会编写该程序。没关系。 但这是我的问题:
如果我想使用DMA模式怎么办,如何编写汇编语言以将许多字节从IO传输到RAM?
我知道DMA的工作原理,但是我对谁告诉他们执行此操作感到困惑?我认为cpu需要告诉IO起始地址,数据长度,RAM地址。所有这些,汇编语言应该是什么?
我发现了很多,但是没有找到答案。我是否错过了一些让我感到困惑的重要事情?希望有人帮忙。谢谢