У меня есть (очень) базовое понимание сборки с использованием системных вызовов в Linux (я использую сборщик GNU as
).
В Windows 7 я использую порт MinGW (32-разрядный) компилятора GCC для создания ассемблерных программ. В Linux я регулярно использую библиотеку C для некоторых взаимодействий с ОС в моих программах ассемблера, и на моей платформе Windows это отлично работает также с помощью MinGW. Иногда, однако, я хочу использовать низкоуровневые системные вызовы - в основном, чтобы мои исполняемые файлы были как можно меньше. В Linux я знаю, как это сделать:
movl $0, %ebx
movl $1, %eax
int $0x80 ; exit with code 0
Я также использую эти системные вызовы для чтения/записи символов в/из терминала (например, для записи в syscall с 4 в EAX). Мне было интересно, как это сделать на платформе Windows NT. Является ли это возможным? Я просмотрел эту таблицу, но я действительно не понимаю имена системных вызовов. Любая помощь приветствуется.