Visual studio Visual Studio 2015使用Irvine编写ASM时大量“加载/卸载”调试输出

Visual studio Visual Studio 2015使用Irvine编写ASM时大量“加载/卸载”调试输出,visual-studio,debugging,assembly,visual-studio-2015,irvine32,Visual Studio,Debugging,Assembly,Visual Studio 2015,Irvine32,在我的头撞了一个小时后,我决定问你们这件事。我正在使用KipIrvine的东西进行汇编编码,如果有帮助的话,我正在Windows 10上使用Visual Studio 2015。显然,这个调试输出不应该发生,它应该运行我的程序,而不是仅仅给我一个大的卸载/加载调试菜单,对吗?以下是调试输出的一小部分: 'ohgodpleasework.exe' (Win32): Loaded 'C:\Users\Algor\Desktop\visualstudio2k15\Project64_VS2015\x6

在我的头撞了一个小时后,我决定问你们这件事。我正在使用KipIrvine的东西进行汇编编码,如果有帮助的话,我正在Windows 10上使用Visual Studio 2015。显然,这个调试输出不应该发生,它应该运行我的程序,而不是仅仅给我一个大的卸载/加载调试菜单,对吗?以下是调试输出的一小部分:

'ohgodpleasework.exe' (Win32): Loaded 'C:\Users\Algor\Desktop\visualstudio2k15\Project64_VS2015\x64\Debug\ohgodpleasework.exe'. Symbols loaded.
'ohgodpleasework.exe' (Win32): Loaded 'C:\Windows\System32\ntdll.dll'. Symbols loaded.
'ohgodpleasework.exe' (Win32): Loaded 'C:\Windows\System32\kernel32.dll'. Symbols loaded.
'ohgodpleasework.exe' (Win32): Unloaded 'C:\Windows\System32\kernel32.dll'
'ohgodpleasework.exe' (Win32): Loaded 'C:\Windows\System32\kernel32.dll'. Symbols loaded.
'ohgodpleasework.exe' (Win32): Loaded 'C:\Windows\System32\KernelBase.dll'. Symbols loaded.
'ohgodpleasework.exe' (Win32): Unloaded 'C:\Windows\System32\KernelBase.dll'
'ohgodpleasework.exe' (Win32): Loaded 'C:\Windows\System32\KernelBase.dll'. Symbols loaded.
'ohgodpleasework.exe' (Win32): Unloaded 'C:\Windows\System32\KernelBase.dll'
该KernelBase.dll有大约75行自己的代码,只是加载/卸载的代码行。结果是:

 "The program '[1896] ohgodpleasework.exe' has exited with code 0 (0x0)."
谁能提供一些见解

根据要求,以下是我尝试运行的代码:

; Use of if statement


INCLUDE C:\Irvine\Irvine32.inc

.data
cost Dword  ?            
revenue Dword  ?


str1 Byte "Enter revenue", 0dh, 0ah, 0
str2 Byte "Enter cost", 0dh, 0ah, 0
str3 Byte "Break Even", 0dh, 0ah, 0
str4 Byte "Profit = ", 0
Str5 Byte "Loss = ", 0


.code
main PROC
    lea edx,str1
    call WriteString
    call ReadDec
    mov  revenue, eax

    lea  edx,str2
    call WriteString
    call ReadDec
    mov  cost, eax

    cmp  revenue, eax
    JE   L1             ;if (revenue== cost)
    JA   L2             ;if else (revenue > cost)
    JB   L3             ;if else (revenue < cost)

    L1:
        lea edx, str3
        call WriteString 
        jmp  Stop
    L2:
        mov  ebx, cost
        mov  eax, revenue

        sub  eax, ebx
        lea  edx, str4
        call WriteString
        call WriteDec
        call crlf
        jmp Stop

    L3:

        mov  ebx, revenue
        mov  eax, cost
        sub  eax, ebx
        lea edx, str5
        call WriteString
        call WriteDec
        call crlf


    Stop:   

    exit
main ENDP

END main
你可以控制它

ToolsOptionsDebug输出窗口

模块加载消息


模块卸载消息

您为什么在意?实际问题是什么?看起来它启动和完成时没有错误。请不要删除问题,然后重新发布。你能发布你程序的源代码吗?也许输出是正确的,但它不会进入调试器,而是像正常执行一样运行。另外,请描述您是如何编译并运行代码的,以及调试工作正常时您希望发生什么。您是否在某个地方设置了断点,或者是否使用了step into命令而不是run命令,等等?如果不提供问题的答案,就不会这样。既然这个问题似乎是以一种对其他人没有帮助的方式解决的,我建议删除这个问题。然而,由于您今天已经删除了一个被否决的问题,这可能会导致您收到临时问题禁令。