Ввод / вывод в программах NASM в Windows 7 - PullRequest
2 голосов
/ 24 февраля 2010

Я хочу программировать на языке ассемблера NASM. У меня есть NASM 2.07 и компилятор Borland C ++ 5.0 (bcc32). Моя ОС - Windows 7. Я не знаю, как выполнять ввод и вывод с помощью NASM на платформе Windows. Не могли бы вы мне помочь пожалуйста?

Ответы [ 4 ]

3 голосов
/ 11 марта 2010

Если вы новичок в NASM, я бы предложил не использовать Borland C ++ 5.0. У меня есть набор инструментов на моем сайте здесь , который представляет собой полную цепочку инструментов для программирования на win32.

Вы модифицируете main.asm и запускаете make.bat, чтобы скомпилировать и связать его. Это не становится легче, чем это. В комплект поставки входит документация и электронная книга по программированию NASM.

2 голосов
/ 24 февраля 2010

Самый простой способ - вызвать функции Win32, доступные путем связывания библиотек ядра32 (IIRC).

0 голосов
/ 20 ноября 2014

Вы можете использовать функции «C» «printf» и «scanf». Для этого вам нужно объявить его как «внешний». Вот простой пример:

section .data
    input_string   db 0
    format         db "%s", 0
    output_string1 db "type something", 10, 0 ; "type something\n"
    output_string2 db "you wrote: %s", 0

extern _printf
extern _scanf

section .text
global _main
_main:                  ; int main()

    push output_string1 ;
    call _printf        ; printf(string1);
    add  esp, 4         ;

    push output_string1 ;
    push format         ;
    call _scanf         ; scanf(format, string1);
    add  esp, 8         ;


    push input_string   ;
    push output_string2 ;
    call _printf        ; printf(output_string2, input_string);
    add  esp, 8         ;

    xor  eax, eax       ; return 0;
    ret                 ;
0 голосов
/ 23 апреля 2014

Установите Cygwin с помощью NASM. Cygwin - это терминал для Windows. Проверьте этот учебник http://www.avivos.net/gcc-g-c-and-cpp-compiler-and-ssh-in-windows-8-cygwin/ На самом деле это для установки gcc и g ++, но вы можете выбрать nasm одинаково.

...