-
-
[旧帖]
[己解决]菜鸟求助,简单汇编问题
0.00雪花
-
发表于:
2007-12-5 11:20
4329
-
[旧帖] [己解决]菜鸟求助,简单汇编问题
0.00雪花
这是自己写的一段小程序,本意是显示3次messagebox后结束。
但是实际效果是个死循环。messagebox一直弹不停。
想用od加载看看怎么回事,结果每次都只执行一次??
为什么正常运行和用od加载运行的效果会不一样呢?
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.386
.model flat,stdcall
option casemap:none
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Include 文件定义
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
include windows.inc
include user32.inc
includelib user32.lib
include kernel32.inc
includelib kernel32.lib
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 数据段
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.data
szCaption db 'hi',0
szText db 'hello!',0
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 代码段
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.code
start:
xor al,al
mov ecx,3
lab:
inc al
invoke MessageBox,NULL,offset szText,offset szCaption,MB_OK
jnz exit ;这里不论是jz还是jnz都是死循环
loop lab
exit:
invoke ExitProcess,NULL
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
end start
这是自己写的一段小程序,本意是显示3次messagebox后结束。
但是实际效果是个死循环。messagebox一直弹不停。
想用od加载看看怎么回事,结果每次都只执行一次??
为什么正常运行和用od加载运行的效果会不一样呢?
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课