求教,API函数 字符串参数压栈问题
问题如下:有一段代码,是这样的,
---------------------------------
.mode tiny
。。。。省略
Code16 segment use16
。。。。省略
Code16 end
code32 segment use32
****** 省略
code32 end
。。。。省略
----------------------------------------
在******的部分中有调用API函数CreateFile,
参数1为字符串 ,压栈的时候的问题:
用下面的 A部分 代码给参数1赋值可以正常运行,用 B部分 就不行,是为什么啊?
注: C 部分 的代码都没有改动....
;------------A----------------用这部分可以正常运行-----------
; push 0
; push 6578652Eh ;exe.
; push 325C3A43h ;2:\C
; mov edx,esp ;edx -->C:\1.exe
;------------B----------------用这部分不能正常运行-----------
EXE_NAME db 'C:\1.exe',0
mov edx,offset EXE_NAME
;------------C------------------------------
push 0 ;HANDLE hTemplateFile 参数7
push 20h or 80h or 00000004h ;DWORD dwFlagsAndAttributes, // 属性
push 2 ;DWORD dwCreationDisposition, /// 创建方式
push 0 ;LPSECURITY_ATTRIBUTES lpSecurityAttributes,NULL
push 00000001h ;DWORD dwShareMode, // 共享模式
push 40000000h ;DWORD dwDesiredAccess, // 访问方式
push edx ;LPCTSTR lpFileName,//指向文件名指针 参数1
mov eax,77E7C1F7h ;2K中 CreateFileA Kernel32 77E7C1F7h
call eax
------------------------------------
各位大大抽空帮忙看看,谢谢了~~~