Я знаю, что есть 3 способа передачи данных ввода / вывода: режим программы, режим прерывания и режим DMA.А для программного режима, если я хочу передать байт из ввода-вывода в ОЗУ, я должен написать так:
MOV PORT1,000AH # tell io the address
IN ACC,PORT2 # read data from this address
MOV [0x5566], ACC # mov this data to RAM
И если я хочу передать много байтов, я использую эту программу.Это нормально.Но вот мой вопрос:
Что если я хочу использовать режим DMA, как написать свой язык ассемблера для передачи многих байтов из ввода-вывода в ОЗУ?
Я знаюкак работает DMA, но я не совсем понимаю, кто им говорит, чтобы сделать это?Все это, каким должен быть язык ассемблера?
Я нашел много, но не нашел ответа.Я что-то упустил, что меня смутило?Я надеюсь, что чья-то помощь. Спасибо