论坛: 编程破解 标题: masm32的问题? 复制本贴地址    
作者: seny11 [seny11]    论坛用户   登录
怎么简单的显示窗口就能运行,,但我换成了显示字符串就不行了?
.386
.model flat, stdcall
option casemap :none  ; case sensitive

include  ..\include\windows.inc
include    ..\include\kernel32.inc
includelib  ..\lib\kernel32.lib

      .data

szCaption        db    'Win32汇编例子',0
szText        db    'Win32汇编,Simple and powerful!',0

      .code

start:
      invoke    MessageBox,NULL,addr szText,addr szCaption,MB_OK
      invoke    ExitProcess,NULL

      end    start
这个可以运行.
---------------------------------------------------
但我把程序的一部分改成:
...前面一样`
.data
st1 db "hello",0
.code
start
mov edx,offset st1  ;或者lea edx,st1
mov ah,09h
int 21h
end start
就出错了..




地主 发表时间: 06-04-01 04:35

回复: jhkdiy [jhkdiy]   版主   登录
因为你使用了中断,而原来的例子使用windows的API函数。
如果要写DOS程序不要用masm32,它不是为这个设的(虽然有时可以编译成功),应该使用masm5.11来编译和链接DOS程序。尤其是中断。

B1层 发表时间: 06-04-01 22:18

论坛: 编程破解

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号