汇编语言环境搭建&&输出'Hello World'

老师给的压缩包里虽然有两个搭建环境的步骤,但是内容跳跃太大,新手友好度极低,如果一味按照那两个文件,往往是看得一头雾水,恐怕很难达到理想的效果

所以,应该怎么做呢?

(以下内容电脑端阅读体验更佳)

一、搭建汇编环境

首先说明一点,为什么要这样大费周章地搭建环境?像教材一样通过“运行”直接打开dos命令窗口进行相关操作不就行了吗?

——因为教材所教授的内容是在16位操作系统下运行的,而在现如今普遍是win10 64位的系统下,由于兼容性问题会无法运行,如图

再者,Windows xp 系统自带debug.exe,但在不断的系统更迭之中,很多东西都被淘汰掉了。

目前在win10中已经不再自带debug.exe

在学校机房的xp系统下,通过“运行”打开dos窗口,直接输入debug,即可显示出相关内容。

而在win10的dos窗口下,直接输入debug

所以在机房xp系统可以轻松实现的汇编操作,在win10下只能提前搭建环境,或者是用安装虚拟机模拟出xp系统,相比而言后者会更加繁琐的。

1.安装DOSBox

把从班级事务群里下载的压缩包解压,会出现三个压缩包和两个文档

解压 DOSBox0.74-win32-installer.rar

打开安装程序,一直点下一步就行了

2.配置DOSBox

在任意一个磁盘中,建立一个新文件夹,用于保存汇编工具(如MASM、Link、DEBUG等工具)和汇编文件(*.asm)

比如,我在E盘建了一个AssemblyLanguage文件夹,即E:\AssemblyLanguage

接着,把剩下两个压缩包都解压了

从masm6文件夹里 找到这几个核心文件,全部复制粘贴到你创建的新文件夹中

文件

在MASM6.15文件夹中虽然也有这些文件,即使文件名一模一样,由于masm版本不同,两个文件夹中的文件还是在实质上有差别的。如果从MASM6.15文件夹复制这些文件,在后续运行过程中可能会报错,如This program cannot be run in DOS mode

再从MASM6.15文件夹中找到ML.ERR复制粘贴到你创建的新文件夹中

就大功告成了~

(实际上我发现好像并不需要这个ML.ERR文件,但是我记得在前几次搭建环境的过程中有提示缺少这个文件……玄学问题)

(以上所列举的核心文件基本上覆盖了大部分需要的功能,或许会有遗漏,如果运行过程中系统提示缺少某个文件,找到并复制粘贴过来就好)

二、如何输出Hello World!

前期工作

打开桌面上的DOSBox,这时会弹出两个窗口,我们的主要操作在前面的小窗口进行,但后面的窗口不要关闭

窗口

(以下命令的拼写忽略大小写)

此时的盘符Z表示的是虚拟硬盘,我们需要用mount命令更改DOSBox的映射指向,指向你创建的文件夹

输入

mount c e:\assemblylanguage 回车

若出现语句出现Drive C is mounted as local directory e:\assemblylanguage\

表明映射成功

映射

我知道可能你会说

啊~ 我好懒啊不想每一次打开都要输一行字映射一遍……
那么,有没有一款产品……啊不对,有没有一种方法可以让它自动映射呢?

没错!是有的!

打开DOSBOX的安装根目录(默认安装路径:C:\Program Files\DOSBox-0.74;若是32位的系统,则默认安装路径:C:\Program Files (x86)\DOSBox-0.74),双击文件DOSBox 0.74 Options.bat,运行该批处理文件后系统会用文本文档Notepad打开配置文件dosbox-0.74.conf。

将光标定位到dosbox-0.74.conf文件的[autoexec]节点(一般在该文件末尾),在文件中添加以下内容:

1
2
MOUNT C E:\AssemblyLanguage                  # 将目录E:\AssemblyLanguage挂载为DOSBOX下的C:
set PATH=$PATH$;E:\AssemblyLanguage # 将E:\AssemblyLanguage写入环境变量PATH中

再次打开DOSBox后,就会发现最前面几行自动显示

Z:>MOUNT C E:\AssemblyLanguage

Drive C is mounted as local directory E:\AssemblyLanguage\

等字样,表明已经映射成功

然后,输入dos命令c:更改盘符,进入虚拟盘C:这个虚拟盘C就是刚才创建的文件夹AssemblyLanguage

嘿嘿嘿,接下来就动起你们灵巧的手指,开始汇编语言程序设计吧~

1.建立ASM源程序文件

运行DOSBOX,在命令符C:>下输入命令:edit 文件名.asm ,启动EDIT.EXE进入代码编辑状态

进入界面后光标可能会消失 按快捷键 ctrl+alt+del(小数点) 调出任务管理器即可

输入以下代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
data segment
string db 'Hello World!$'
data ends
code segment
main proc far
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
mov dx,offset string
mov ah,9
int 21h
mov ah,4ch
int 21h
main endp
code ends
end start

保存源文件并退出编辑:FILE->SAVE AS…>FileName:hello.asm>enter

这时,你所创建的文件夹里会多出一个HELLO.ASM文件

其实,虽然这样创建源文件可以体会到上古时代程序员编程的感觉,但相对而言还是略繁琐。在此墙!裂!推!荐!另外一种做法——在你所创建的文件夹里新建一个.txt后缀记事本文件,打开输入代码,保存退出,然后重命名把后缀txt改成asm,即可达到同样的效果

2.编译HELLO.ASM,生成.OBJ文件

输入命令:MASM 文件名.asm生成目标文件文件名.OBJ

之后就可以看到文件夹会新生成出一个HELLO.OBJ文件

3.链接生成.exe文件

输入命令:LINK 文件名.OBJ,链接生成可执行文件文件名.EXE

然后一直按回车直到不再生成新的语句

文件夹中已生成HELLO.EXE文件

4.执行exe文件

输入命令:HELLO.EXE 执行文件可以看到在屏幕上显示:Hello World!

5.DEBUG

输入命令:EBUG 文件名.EXE,在DEBUG的命令提示符“-”出现后开始调试

输入r查看程序运行前的寄存器组初始值

其他命令同理

文章目录
  1. 1. 一、搭建汇编环境
    1. 1.1. 1.安装DOSBox
    2. 1.2. 2.配置DOSBox
  2. 2. 二、如何输出Hello World!
    1. 2.1. 前期工作
    2. 2.2. 1.建立ASM源程序文件
    3. 2.3. 2.编译HELLO.ASM,生成.OBJ文件
    4. 2.4. 3.链接生成.exe文件
    5. 2.5. 4.执行exe文件
    6. 2.6. 5.DEBUG
|