【问题标题】:I/O in NASM programs in Windows 7Windows 7 中 NASM 程序中的 I/O
【发布时间】:2010-02-24 16:17:40
【问题描述】:

我想用 NASM 汇编语言编程。我有 NASM 2.07 和 Borland C++ 编译器 5.0 (bcc32)。我的操作系统是 Windows 7。我不知道如何在 Windows 平台上使用 NASM 进行输入和输出。请问你能帮我吗?

【问题讨论】:

  • 你的问题表明你在问之前没有做任何研究。

标签: nasm


【解决方案1】:

最简单的方法是调用 Win32 函数,可通过链接 kernel32 库 (IIRC) 访问。

【讨论】:

    【解决方案2】:

    您可以使用“C”函数“printf”和“scanf”。 为此,您需要将其声明为“extern”。 有一个简单的例子:

    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                 ;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-06-14
      • 2023-03-14
      • 2017-02-27
      • 1970-01-01
      • 2016-12-21
      • 1970-01-01
      • 2012-06-02
      相关资源
      最近更新 更多