书上的例子,不知道出了什么问题????

[复制链接]
查看11 | 回复8 | 2021-1-27 06:46:23 | 显示全部楼层 |阅读模式
.386
.modelflat,stdcall
optioncasemap:none
includelib\masm32\lib\kernel32.lib
includelib\masm32\lib\user32.lib
include\masm32\include\kernel32.inc
include\masm32\include\user32.inc
include\masm32\include\windows.inc
.data
MsgTextdb"Helloworld!",0
MsgTitledb"Thisisamessagebox",0
.code
start:
invokeMessageBox,NULL,ADDRMsgText,ADDRMsgTitle,MB_OKor
MB_ICONINFORMATION
invokeExitProcess,NULL
endstart

========================================
@echooff
ml/c/cofffirst.asm
link/subsystem:windowsfirst.obj
pause>nul
书上说这样打~用masm编译,我用的是6.15
1,echooff是什么意思?
2,出现这样的错误
errorA4910:cannotopenfile:c:\masm6.15\ml.err
first.asm:fatalerrorA1000::\masm32\include\kerne132.inc
还请各位指教
分 -->
回复

使用道具 举报

千问 | 2021-1-27 06:46:23 | 显示全部楼层
用MASMPlus
回复

使用道具 举报

千问 | 2021-1-27 06:46:23 | 显示全部楼层
引用楼主tongxinren的帖子:.386
.modelflat,stdcall
optioncasemap:none
includelib\masm32\lib\kernel32.lib
includelib\masm32\lib\user32.lib
include\masm32\include\kernel32.inc
include\masm32\include\user32.inc
include\masm32\include\windows.inc
.data
MsgTextdb"Helloworld!",0
MsgTitledb"Thisisamessagebox",0
.code
start:
invokeMessageBox,NULL,ADDRMsgText,ADDRMsgTitle,MB_OKor

这个地方
[code=BatchFile]@echooff
ml/c/cofffirst.asm
link/subsystem:windowsfirst.obj
pause>nul[/code]是BAT批处理,不是汇编的一部分。
至于那个错误,是找不到那个文件吧。
回复

使用道具 举报

千问 | 2021-1-27 06:46:23 | 显示全部楼层
1,echooff是什么意思?
echooff用在批处理文件中,使后面的命令行不显示出来。前面加上@表示该行也不显示。这行命令没有实际意义,可有可无。
2,出现这样的错误
errorA4910:cannotopenfile:c:\masm6.15\ml.err
这个错误是你的MASM缺少ml.err文件,编译遇到错误时无法显示出具体的错误信息。
first.asm:fatalerrorA1000::\masm32\include\kerne132.inc
这行是无法找到kerne132.inc这个文件,因为你用的是MASM6.15,要用MASM32等编译Win32程序的MASM版本才行。
回复

使用道具 举报

千问 | 2021-1-27 06:46:23 | 显示全部楼层
库和头文件包含要使用全路径
includelibD:\masm32\lib\user32.lib
includeD:\masm32\include\kernel32.inc
。。。。。
上面的汇编代码保存为first.asm
下面保存为.bat批处理
========================================
@echooff
ml/c/cofffirst.asm
link/subsystem:windowsfirst.obj
pause>nul

回复

使用道具 举报

千问 | 2021-1-27 06:46:23 | 显示全部楼层
找不到文件:\masm32\lib\kernel32.lib,查看该目录下是否有这个文件
回复

使用道具 举报

千问 | 2021-1-27 06:46:23 | 显示全部楼层
要使用《inteal汇编程语言计设》MASM615的MAKE32批处理文件进行汇编才能通过呀。
在CSDN下载:inteal汇编程语言计设(第四、五版)。
回复

使用道具 举报

千问 | 2021-1-27 06:46:23 | 显示全部楼层
up一下。。。
回复

使用道具 举报

千问 | 2021-1-27 06:46:23 | 显示全部楼层
我用masm611编译出现此问题。也是书上的例子,不知什么原因。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行