Ну, сборка не обязательно способ понять, что происходит.Я бы сказал, что это контрамент.Пользовательский процесс не видит реальную память или ioports, он видит только то, что ему показывает ядро.Например, ваш параллельный порт обрабатывается ядром, поэтому для его использования необходимо использовать системные вызовы.Использование ассемблера не поможет вам преодолеть барьер ядра.
Если вы хотите понять, что происходит, может быть, вы должны спросить себя, что вы действительно хотите знать?Если вы не знаете, что ищете, то я предлагаю начать с подхода высокого уровня и перейти вниз:
- написать программу на C, которая делает то, что вы хотите.
- изучите его, проведите его, узнайте, как он выполняет системный вызов!
- отсюда вы можете либо выполнить системный вызов самостоятельно, либо перейти на другую сторону барьера системного вызова в пространстве ядра.Но тогда это новая история
Если вы хотите пойти другим путем, то есть снизу вверх, понять, как работает процессор и т. Д., Я предлагаю начать с чего-то гораздо более простого, напримердоска PIC.