汇编语言实验(VScode+masm32+dosbox)
1. VScode
- 搜索插件 MASM安装 支持语法高亮等
- 终端使用 cmd
2. DOSbox 安装
- 下载 https://www.dosbox.com/
- 更改路径安装 例如:d:\DOS
- 配置 双击打开d:\DOS下的 DOSBox 0.74-3 Options.bat,在末尾添加
MOUNT D D:\asmdos
D:
这样就将D:\asmdos设置成 DOSBox 下的D:
MOUNT D D:\asmdos
D:
3. masm32安装
- 下载: http://www.masm32.com/
- 更改路径,一路next安装
4. 环境变量
- 此电脑->右键属性->高级系统设置->环境变量->双击PATH->新建变量
->浏览找到 DOSBox.exe->确定保存 - 同理,将masm32安装路径下的 bin文件夹(包含ml.exe、link16.exe等)
5. hello world 汇编程序
- VScode打开一个文件夹作为工作区
- 新建 HLW.asm (后缀是.asm),输入代码
;功能:显示提示PASSWORD ?,
; 键盘输入字符串与0AB比较
; 相同则输出 Hello world!
; 不同则返回DOs
D SEGMENT
PASS1 DB '0AB' ;储存密码
N EQU $-PASS1 ;密码长度
D1 DB 'PASSWORD ?',0DH,0AH,'$'
PASS2 DB 20
DB ?
DB 20 DUP(?) ;键盘输入缓存
D2 DB 0DH,0AH,'OUTPUT: HELLO WORlD!$'
D ENDS ;数据段
CODE SEGMENT ;代码段
ASSUME CS:CODE,ES:D
BG: MOV AX,D
MOV DS,AX ;D段地址送入DS
MOV ES,AX
LEA DX,D1
MOV AH,9
INT 21H ;显示输入提示
LEA DX,PASS2
MOV AH,0AH
INT 21H ;输入字符串
LEA SI,PASS1
LEA DI,PASS2
MOV CX,N
LEA DI,PASS2+2
CLD
REPZ CMPSB ;输入字符串与原密码比较
JZ DISHL
LAST: MOV AH,4CH ;返回DOS
INT 21H
DISHL: LEA DX,D2 ;屏幕显示helloworld
MOV AH,9
INT 21H
JMP LAST
CODE ENDS
END BG;
6. masm, link
- VScode 终端cmd 输入
- D:\asmdos> cd test 改变到HLW.asm 所在文件夹
- D:\asmdos\test>ml HLW.asm 得到HLW.obj
- D:\asmdos\test>link16 HLW.OBJ (回车回车使用默认),得到HLW.exe
- D:\asmdos\test>DOSbox 运行DOSBox
- DOSBox中运行HLW.exe
At last 问题总结
- VScode使用cmd来 Debug的方法没找到
- DOSBox 使用ml.exe ,link16.exe 出错
注:这学期学微机原理课,我只会写helloworld, 难免错误一大堆.
版权声明:本文为qq_45974254原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。