这是我学习过程中搭建汇编语言环境的记录,有不对也欢迎大家指正哈😁
我用的是DOSBox来搭建环境,MASN5.0来编译
浏览器搜DOSBox即可,也可以从下面给的链接直接找到
链接:https://www.dosbox.com/download.php?main=1
环境搭建
- 首先在链接里找到对应版本,我用的是Windows版本的,点击对应版本(如图1),就会跳转到下载页面(图2)下载安装即可
2.安装
都勾上后点Nest,一个是核心文件,一个是桌面快捷方式
3.文件存放路径,我这放在D盘,看个人喜好吧,点击Install(安装)即可
4. MASM5.0 直接搜也可以找到网友发的,也可以从下面给的链接直接下载即可
下载后解压得到,官网的是没有DEBUG.exe的
这里提供一个网友整理的版本,是GitHub上的,有DEBUG.exe
链接:https://github.com/froginwell/assembly/tree/master/software
解压后
环境搭建好当然要写一个新手上路必不可少的<"hello world!">来验证一下啦
下面是代码部分
assume cs:code, ds:data
data segment
str db 'HelloWorld!','$' ; 定义一个以'$'结尾的字符串
data ends
code segment
start:
mov ax,data ; 将数据段基地址加载到AX寄存器
mov ds,ax ; 将AX中的值复制到DS寄存器,使DS指向数据段
lea dx,str ; 获取字符串'str'的偏移地址,并加载到DX寄存器
mov ah,9 ; 设置AH=9,准备调用DOS功能号9(输出字符串)
int 21h ; 调用DOS中断21h,执行上述功能
mov ah,4ch ; 设置AH=4Ch,准备调用DOS功能号4Ch(退出程序)
int 21h ; 调用DOS中断21h,执行上述功能
code ends
end start ; 指定程序入口点为'start'
- 这里我们在MASM5.0的文件夹下直接建立一个hello.txt
- 将代码放入保存
- 然后将 .txt后缀改为 .asm
- 接着运行DOSBOX安装目录下的”DOSBOX.exe“,会弹出两个窗口,一个是常见的windows命令行窗口(win下作为控制台应用运行的程序基本都会弹这个),用不到但是不要关闭。另一个是DOSBOX的窗口(有蓝色文字的那个),操作都在这进行
- 为了能够使用masm中的那些程序(提供的指令),我们需要把masm5.0的安装目录挂载到DOSBOX(并作为DOSBOX的C盘)。输入的指令如下:
mount c: <masm5.0在你电脑上的位置,如“D://xxx/xxx/masm5.0”>
如图
- 然后,输入c:并回车切换到DOSBOX的C盘(即masm所在目录),为了确认挂载是否正常,可以使用dir指令列出目录下的文件来查看,可以看到,挂载正常。
-
然后我们就可以来编译、运行准备好的测试程序了。
- 第一步,编译。输入
masm hello
并回车来编译源程序,之后会让你命名编译产生的文件,一般回车三次跳过即可。 - 第二步,连接。输入
link hello
并回车来链接编译产生的文件,之后也会让命名,回车三次跳过。 - 第三步,输入
hello.exe
或者hello
来运行第二步中生成的可执行文件,然后你就会看到···
- 第一步,编译。输入
恭喜你成功打印了<"HelloWorld!"> ,点开文件夹我们可以看到编译生成的两个文件
- 进一步
前面的使用过程中有个明显的槽点——masm的路径要手动挂载,有点麻烦,所以,让我们可以来做点配置
- 首先,双击打开DOSBOX安装目录下的“DOSBox 0.74-3 Options.bat”(最好先关闭DOSBOX)
它会打开一个名为“DOSBox 0.74-3 Options.conf”的文件。然后,拉到最后,可以看到如下的一段内容:
注释告诉我们(上图红色框框的部分),写在[autoexec]所在行之后的内容会在DOSBOX启动以后被当作指令自动执行。那么,如果把挂载文件夹的指令写到这,当然就能实现“自动挂载”了。所以,我们修改这一部分内容如下:
[autoexec]
# Lines in this section will be run at startup.
# You can put your MOUNT lines here.
mount c: <你的masm5.0所在路径>
set PATH=$PATH$;<你的masm5.0所在路径>
c:
dir
增加部分的内容,除了PATH的设置以外都在前面出现过,总的来说就是自动挂载了masm5.0并切换到那个目录,然后列出所有文件(不想看的话可以把dir删掉)。
(1)
mount c: <你的masm5.0所在路径>
mount——是挂载命令语句
(2)
set PATH=$PATH$;<你的masm5.0所在路径>
将 MASM 文件中的编译程序添加至临时系统变量中,打开软件就添加,关闭就没有了。
(3)c:
转到C盘
为了方便代码管理,我们也可以建一个文件夹Assembly(自己命名就好了),在文件夹里新建一个用来存放汇编程序文件的子文件夹(如下图的ASM),同时将masm5.0解压放在这,如图
同样上诉类似来配置即可
[autoexec]
# Lines in this section will be run at startup.
# You can put your MOUNT lines here.
mount c: d:\Assembly
set PATH=$PATH$;c:\masm5.0\masm5.0
c:
cd c:\ASM
如图,可以挂在主文件夹作为c盘,此时c:就是d:\Assembly,所以设置环境时c:<余下的masm5.0路径即可>,c:转到c盘,cd: c:ASM 进入ASM文件夹。
文字倾斜部分的配置方法参考了
MengYiKeNan的Windows10搭建汇编环境——详细步骤(新手)
扩展
初始的界面很小,且不能直接拉伸界面,一般人都不习惯,都会修改以下大小。
双击打开DOSBox 0.74 Options.bat
(不要右键编辑,直接双击打开即可)
将
windowresolution=original
output=surface
修改成
windowresolution=1280x800 # 这个是小写字母 x
output=opengl