「純粋」にはいくつかのレベルがあります。たとえば、特定の OS を使用する場合、入出力やメモリ割り当てなどを行うためにその API を使用する必要があります。この API 呼び出しは、さまざまな方法で提供されます。簡単なものもあれば、そう簡単ではないものもあります。
たとえば、Windows で作業している場合、システム DLL から関数をインポートする必要があります。ただし、関数のインポートは「アセンブリ プログラミング」と見なすことはできません。
これらの関数の呼び出し規約は C/C++/HLL であるため、アセンブリに似たものではなく、この呼び出し規約を使用する必要があります。
したがって、最初に OS が必要です。それはアセンブリに適しています。32 ビット Linux をお勧めします。これは int $80 を使用し、パラメーターの受け渡しを登録するため、アセンブリ言語に集中できます。
これは、FASM で書かれた非常に単純な「hello world」の例です。ご覧のとおり、オーバーヘッドは非常に小さく、関連するマクロはありません。
format ELF executable
entry _start
segment readable executable
_start:
mov eax, 4
mov ebx, 1
mov ecx, msg
mov edx, msg_size
int $80
mov eax, 1
xor ebx, ebx
int $80
segment readable writeable
msg db 'Hello world!',$0a
msg_size = $ - msg
もちろん、いくつかの Linux システム コールのマニュアルが必要になります。Linux x86 Asm ソフトウェア開発キットはまさにあなたが必要としているものです。