【问题标题】:masm32 invoking stdout gives no outputmasm32 调用 stdout 没有输出
【发布时间】:2013-10-02 19:01:47
【问题描述】:

我正在使用 masm32 在 Windows 7 上编译和链接,它适用于以下代码。然而,调用 stdOut 并不仅仅是在我的命令提示符上打印任何内容。我做错了什么?

.386

.model flat, stdcall
    option casemap:none

    include C:\masm32\include\windows.inc
    include C:\masm32\include\kernel32.inc
    include C:\masm32\include\user32.inc
    include C:\masm32\include\masm32.inc

    includelib C:\masm32\lib\kernel32.lib
    includelib C:\masm32\lib\user32.lib
    includelib C:\masm32\lib\masm32.lib

.data    
    MsgBoxCaption   db "Message Box Caption", 0
    MsgBoxText      db "Win32 Assembly is great!", 0

.data? 
    ; declare an uninitialized byte, referred to as location sum
    sum             dd ?

.code
    start:    
        mov eax, 1d
        mov ebx, 1d

        ; result will be stored in the first argument
        add eax, ebx  

        ; push eax onto the stack
        push eax

        ; pop value into sum
        pop sum

        ; invoke MessageBox, NULL, addr MsgBoxText, addr MsgBoxCaption, MB_OK

        invoke StdOut, addr MsgBoxCaption
        invoke StdOut, addr sum

        ; exit with status code 0 
        invoke ExitProcess, 0
    end start

【问题讨论】:

    标签: assembly x86 masm32


    【解决方案1】:

    已解决...我为链接器使用了错误的参数

    如何正确链接

    ml /c /coff /Cp hello.asm
    link /subsystem:console /libpath:c:\masm32\lib hello.obj
    

    如何不链接此程序

    ml /c /coff /Cp hello.asm
    link /subsystem:windows /libpath:c:\masm32\lib hello.obj
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-08
      • 1970-01-01
      • 1970-01-01
      • 2014-07-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多