16位汇编环境
在学习16位汇编时,我选择的环境是在VMware中安装Windows XP虚拟机来学习;因为Windows XP提供了兼容的DOS环境,可以直接运行和调试16位汇编程序;在win10,win11环境中原生不支持直接运行 16 位程序,如果要在win10或者win11中运行和调试16位汇编程序则需要通过如安装DOS环境模拟器等通过一些工具和方法来支持16位汇编程序运行。
①安装Windows XP:使用的虚拟化软件为VM workstation16(VM以及XP镜像有需要的兄弟私聊)
创建虚拟机:
进入创建虚拟机向导,选择典型安装:
选择稍后安装操作系统
接着选择操作系统类型为Windows XP professional
设置虚拟机名称和虚拟机存放位置(不推荐将虚拟机存放在C盘):根据自己需要来
设置虚拟机空间大小
设置虚拟机相关硬件:
导入WindowsXP镜像:(内存、处理器也可以在这个界面上设置,如果需要的话);导入完成后点击右下角的关闭,退出该设置界面。
最后点击完成,即可开启虚拟机进行系统安装。
接着按enter键进行Windows XP系统安装:
F8同意:
无需进行分区,enter安装:
按下enter继续:
等待格式化:
等待Windows安装:
此处跳出安装程序,直接点击下一步:
公司或者单位名称可随便输:
接着直接点击下一步,不进行激活(随着VMware的更新迭代可能出现Windows XP虚拟机激活出现错误无限激活的情况);不激活也能用。
选择否;
设置administrator用户密码,点击下一步;
日期与时间无需设置:
安装网络软件,选择典型设置,下一步;
不加入域,下一步;
等待安装;
安装完成,下一步;
选择不自动更新,下一步;
下一步;
不激活XP系统:
根据自己的需要设置账户:
完成;
出现经典XP系统:
安装VMTools;
②将汇编语言开发工具MASM(有需要的可以私聊我)拖入XP系统中;
至此16位汇编环境搭建完成。
环境测试代码:一个简单的汇编代码,它将从键盘读取一个字符并显示在屏幕上
.MODEL SMALL
.STACK 100H
.DATA
CHAR_MSG DB "Enter a character: $"
CHAR_INPUT DB ?
CHAR_OUTPUT DB "You entered: $"
.CODE
MAIN PROC
MOV AX, @DATA
MOV DS, AX
; Display message
MOV AH, 09H
MOV DX, OFFSET CHAR_MSG
INT 21H
; Read character from keyboard
MOV AH, 01H
INT 21H
MOV CHAR_INPUT, AL
; Display input character
MOV AH, 09H
MOV DX, OFFSET CHAR_OUTPUT
INT 21H
; Display input character
MOV AH, 02H
MOV DL, CHAR_INPUT
INT 21H
; Exit program
MOV AH, 4CH
INT 21H
MAIN ENDP
END MAIN
在MASM文件夹中创建一个.txt文件,并将上述代码复制进该.txt文件中;
修改.txt文件后缀名为.asm:
win+r,输入cmd进入命令行窗口,接着进入文件所在目录(不熟悉的话直接从文件资源管理器中复制即可)
目录跳转:
cd C:\Documents and Settings\wolven\桌面\MASM 6.x\MASM 6.x
接着在cmd窗口中使用ML.exe程序将汇编代码汇编成目标文件(.obj),并链接生成可执行文件(.exe);
ML.exe 1.asm
直接运行该可执行文件,查看功能;
功能正常执行,汇编环境测试完成。