环境的搭建
安装dosbox
1
| sudo apt-get install dosbox
|
下载汇编必须的程序
- masm.exe
- link.exe
- debug.exe
以上的程序的下载
https://pan.baidu.com/s/1OpD1UX-nwGOK5rL7v_-z1Q 提取码: dzwy
下载后创建一个文件夹 命名Masm(自定义)将下载好的程序放入该文件夹中
终端运行dosbox
进入dos环境,在dos环境中挂载c盘,并进入
汇编程序的编写执行
在Masm中打开文本编辑器, 输入以下代码,保存为hello.asm
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| DATA SEGMENT STRING DB 'Hello World!', '$' DATA ENDS
STACK1 SEGMENT PARA STACK DW 20H DUP (0) STACK1 ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA, SS:STACK1 BEGIN: MOV AX, DATA MOV DS, AX LEA DX, STRING MOV AH, 9 INT 21H MOV AH, 4CH INT 21H CODE ENDS END BEGIN
|
运行dosbox
dosbox
在dos环境中
1 2 3 4 5 6 7
| MASM.EXE HELLO.ASM
LINK.EXE HEELO.OBJ
HELLO.EXE
EXIT
|
Dosbox的配置
Dosbox的配置文件位于当前用户目录下的.dosbox中
1 2 3 4 5 6
| $ vim .dosbox/dosbox-0.74-2.conf #[autoexec]下添加,在运行dosbox时自动挂载 mount c: /xx/Masm c: #或者在执行dosbox时 $ dosbox -c "mount c: /xx/Masm"
|
VSCODE编写Masm
安装插件
其实没必要装什么插件,装一个语法高亮就好了
在市场上随便一搜Masm或者asm
我用的是
ASM Code Lens
单纯觉得配色好
为dosbox配置task任务
在 当Masm/.vsocode
下创建tasks.json
输入
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| {
"version": "2.0.0", "tasks": [ { "label": "dosbox", "type": "shell", "command": "dosbox", "args": [ "-c", "mount c: ${workspaceFolder}", "-c", "c:", "-c", "MASM ${fileBasenameNoExtension}.asm", "-c", "LINK ${fileBasenameNoExtension}.obj", "-c", "DEBUG ${fileBasenameNoExtension}.exe", ], "problemMatcher": [], "group": { "kind": "build", "isDefault": true } } ] }
|
保存,在写asm文件时保存后按 shift+ctrl+B 可自动进入调试(记得一路回车)
退出调试模式
在dos下, q
回车
Alt+Enter可以切换Dosbox全屏或窗口显示