如何编写汇编语言以使DMA正常工作

时间:2018-09-19 01:55:30

标签: assembly io cpu x86-16

我知道有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地址。所有这些,汇编语言应该是什么?

我发现了很多,但是没有找到答案。我是否错过了一些让我感到困惑的重要事情?希望有人帮忙。谢谢

0 个答案:

没有答案