能力值:
( LV2,RANK:10 )
在线值:
|
-
-
2 楼
这个是X86的汇编啊?
|
能力值:
( LV3,RANK:20 )
|
-
-
3 楼
这个问题我以前也遇到过,
问题在于这一句
mov sp,16
如果随意改变了栈顶的值,以后只要进行堆栈的操作比如push 或者pop都会出错,然后后面的指令就全乱了。
|
能力值:
( LV3,RANK:20 )
|
-
-
4 楼
8086你可能不会调试
把这个win32汇编程序编译一下,用od调试,然后你就全明白了
.386
.model flat,stdcall
option casemap:none
include windows.inc
include kernel32.inc
includelib kernel32.lib
.code
start:
mov eax,2000h
mov esp,10h
push eax
mov eax,3366h
push eax
invoke ExitProcess,NULL
end start
|
能力值:
( LV3,RANK:20 )
|
-
-
5 楼
http://www.asmedu.net/blog/user/postcontent.jsp?neighborId=5117&kindLevel=1&kindId=4055&postId=3558&readSg=1
这个是我3年前的帖子,现在那个论坛账号都忘了,最后还是我自己回答的,
反正是引起了异常,然后后面就不会分析了
|
能力值:
( LV3,RANK:20 )
|
-
-
6 楼
我也自己回答自己的问题。
mov sp,16 这句应该为16h
真是郁闷。
还是自己不懂。
谢谢那位热心的朋友。
dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h ; 占用了16位
dw 0,0,0,0,0 ;5个字占20位
|
能力值:
( LV3,RANK:20 )
|
-
-
7 楼
mov ss,ax
mov sp,16
mov ax,data
执行mov ss,ax后下一条指令就是mov ax,data了,mov sp,16被偷偷执行掉了
书上说学到后面就会明白,我后来都没去想那个问题了,OD里是没这种事,谁能否解释一下
|
|
|