8086 processor
To read how a DMA controller works, you might want to search for the 8257 Intel DMA controller, which was designed to work with the 8086.
If you intend to write assembly code, yes you need an 8086 or some other processor to execute the instructions. A DMA controller has registers and transfers data from a source address to a target address without the interaction of a CPU, once the transfer is initiated. Basically the DMA controller "owns" the databus for a limited time. You can not really emulate a DMA controller in software because that is nothing else but a regular software controlled data transfer. With a DMA, the data transfer is hardware controlled
hth, Bob