Ваша программа использует DOS API. В современной ОС она должна работать на виртуальной машине, например NTVDM или DOSbox. Это, вероятно, главная причина, которая делает его медленным.
Вы можете создать собственный исполняемый файл с этим кодом, который должен быть быстрее:
bits 32
global main
extern putchar
section .text
main:
push 'z'
call putchar
pop ecx
xor eax, eax
ret
В Unix вы можете скомпилировать и выполнить его с помощью следующих команд:
nasm file.asm -f elf
gcc file.o -o file
./file
В Windows замените -f elf
на -f win32
. Если вы используете компилятор и компоновщик Visual Studio, попробуйте использовать cl file.o
в командной строке VS (не проверено).