鳴氜 发表于 2014-3-17 23:51:18

win32汇编调试出错怎么办。基本上按照视频做的。

代码如下:.386
.model flat,stdcall
option casemap:none

include                windows.inc
include                user32.inc
includelib                user32.lib
include                kernel32.inc
includelib                kernel32.lib

                .data
szCaption        db        'MESSAGE !',0
szText1                db        'do you love me ?',0
szText2                db        'yes,i love you too !',0
szText3                db        'whatever i do love you !',0
szText4                db        'flying !',0

                .code
start:               
                invoke        MessageBox,NULL,offest szText1,offest szCaption,MB_YESNO
                mov ebx,eax
                .if IDYES==ebx
                                invokeMessageBox,NULL,offest szText2,offest szCaption,MB_OK
                .elseif invoke         MessageBox,NULL,offest szText1,offest szCaption,MB_YESNO
                        .if IDYES==eax
                                invoke        MessageBox,NULL,offest szText2,offest szCaption,MB_YESNO
                        .else
                                invoke        MessageBox,NULL,offest szText3,offest szCaption,MB_YESNO
                        .endif
                .else
                        invoke MessageBox,NULL,offest szText4,offest szCaption,MB_YESNO
                .endif
end start
                               
               

wawa 发表于 2014-3-18 08:28:00

offset打错了

鳴氜 发表于 2014-3-18 12:43:42

wawa 发表于 2014-3-18 08:28 static/image/common/back.gif
offset打错了

恩恩,谢谢~

鳴氜 发表于 2014-3-18 12:47:21

wawa 发表于 2014-3-18 08:28 static/image/common/back.gif
offset打错了

不过改过之后还是有问题。

鳴氜 发表于 2014-3-18 13:24:48

鳴氜 发表于 2014-3-18 12:47 static/image/common/back.gif
不过改过之后还是有问题。

谢谢,我现在已经找到了问题了。。
else和表达式不能写在同一行,所以24行 的invoke报错

条件表达式 的 判定 不能写成 IDYES==eax 。只能写成 eax==IDYES,所以immediate operand not allowed

wawa 发表于 2014-3-19 08:41:42

自己找到了最好了
页: [1]
查看完整版本: win32汇编调试出错怎么办。基本上按照视频做的。