我相信这对大多数人来说都是微不足道的,但我对x86汇编语言并不是很熟悉.我只是想自学.
我在窗户.在我读到的任何地方,我被告知要INT 21用来返回操作系统.这退出程序,但我得到一个错误说Unhandled exception at 0x003d1313 in Assignment1.exe: 0xC0000005: Access violation reading location 0xffffffff.
谢谢!
在Windows上,如果您使用的是正式的汇编程序(例如MASM),则只需调用以下代码:
.386
.model flat, stdcall
option casemap:none
include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
includelib \masm32\lib\kernel32.lib
.data
.code
start:
invoke ExitProcess,0
end start
Run Code Online (Sandbox Code Playgroud)
如果您没有使用任何汇编程序并且只想执行一块二进制代码,请执行以下命令:
push xxx
push -1
push 0
mov eax, yyy
mov edx, 7FFE0300
call dword ptr ds:[edx]
Run Code Online (Sandbox Code Playgroud)
其中xxx是进程的退出代码,yyy是系统调用号NtTerminateProcess(使用http://www.pediy.com/document/Windows_System_Call_Table/Windows_System_Call_Table.htm来确定适当操作系统的电话号码.对于Windows 7,它是0x172 )