Я предлагаю несколько вещей, сначала отдельное изучение ассемблера и изучение вызовов операционной системы. Второй - не начинайте с x86 в качестве первого языка ассемблера. Сделайте это третьим, четвертым или последним, который вы изучите. Если вы чувствуете, что должны, я рекомендую начать с 8088/8086 и получить основу в x86, прежде чем углубляться в то, чем он стал.
arm / thumb / msp430 / mico8 / avr - все это хорошие наборы команд первый, второй, третий и т. Д. По второму или третьему (из другого семейства), если не по первому, у вас будет хорошая основа в работе компьютеров. pcemu не мое. Я раздвоил версию и удалил операционную систему, чтобы использовать ее для изучения языка ассемблера. За несколько долларов вы можете получить хорошие использованные копии руководства 8088/8086 от intel
http://www.amazon.com/gp/product/1555120814
Опять же, хорошая основа того, что стало сегодня x86.
Когда все это будет сделано, начните просматривать вызовы операционной системы из asm ... конечно, вам может понадобиться несколько из asm, чтобы начать, печатать что-то вроде, например, чтобы увидеть, как работает ваша программа.