Visual studio Visual Studio 2015使用Irvine编写ASM时大量“加载/卸载”调试输出
在我的头撞了一个小时后,我决定问你们这件事。我正在使用KipIrvine的东西进行汇编编码,如果有帮助的话,我正在Windows 10上使用Visual Studio 2015。显然,这个调试输出不应该发生,它应该运行我的程序,而不是仅仅给我一个大的卸载/加载调试菜单,对吗?以下是调试输出的一小部分: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
'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命令,等等?如果不提供问题的答案,就不会这样。既然这个问题似乎是以一种对其他人没有帮助的方式解决的,我建议删除这个问题。然而,由于您今天已经删除了一个被否决的问题,这可能会导致您收到临时问题禁令。