32位汇编:实验7Win32汇编程序的编程环境
1. 环境配置
1.1 MASM32安装
将MASM32解压到D盘根目录下
1.2 环境变量设置批处理文件 Var.bat
@echo off
:: ---------- MASM32 ----------
set MASM32=D:\\masm32
set "PATH=%MASM32%\\bin;%PATH%"
set INCLUDE=%MASM32%\\Include
set LIB=%MASM32%\\lib:: ---------- VS2022 Build Tools 32-bit nmake ----------
set "PATH=D:\\Microsoft VS Studio\\Community\\VC\\Tools\\MSVC\\14.44.35207\\bin\\Hostx86\\x86;%PATH%":: ---------- 控制台 UTF-8,避免 link 输出乱码 ----------
chcp 65001 >nul
title MASM32+nmake 环境
prompt [MASM32]$S$P$G:: ---------- 跳进工程目录 ----------
cd /d D:\\code\\VScode\\8086\\win32\\ShiXun
cmd /k
2. 源程序文件
2.1 Test.asm
3. Makefile文件
3.1 Makefile
EXE = test7.exe
OBJS = test7.obj
RES =LINK_FLAG = /subsystem:windows
ML = $(MASM32)\\bin\\ml.exe # 强制旧版 6.14
ML_FLAG = /c /coff$(EXE): $(OBJS) $(RES)link $(LINK_FLAG) $(OBJS) $(RES).asm.obj:$(ML) $(ML_FLAG) $<.rc.res:rc $<clean:-del *.obj & del *.exe & del *.res 2>nul
4. 编译和运行步骤
4.1 编译连接
在test7.asm和Makefile所在的目录下执行:
nmake
4.2 运行程序
test7.exe
5.实验过程疑点解析
问题1:nmake 命令不可用
错误信息:
'nmake' 不是内部或外部命令,也不是可运行的程序或批处理文件
解决方案:
- 发现系统已安装 nmake:通过搜索找到多个 nmake.exe 版本
- 路径确认:确认 Visual Studio 安装路径中的 nmake
- 环境设置:将 nmake 所在目录添加到 PATH 或使用完整路径
问题2:头文件兼容性问题
错误信息:
winextra.inc(11052) : error A2026:constant expected
原因:Visual Studio 的 ml.exe 与 MASM32 头文件不兼容
解决方案:
- 使用 MASM32 自带的 ml.exe 和 link.exe
- 修改 Makefile 指定正确的工具路径
问题3:字符编码显示异常
现象:控制台显示乱码,中文字符不正常
解决方案:
- 运行
chcp 65001
设置 UTF-8 编码 - 修改控制台字体为支持中文的字体
- 使用 PowerShell 替代 cmd.exe