2023年12月13日发(作者:)

汇编语言(Assemblylanguage)实验环境搭建详解

汇编语言(Assembly language)实验环境搭建详解

汇编语言(assembly language)是特定于某个物理或虚拟计算机体系结构(与大多数高级语言相反)。汇编语言中,用助记符

(Mnemonics)代替机器指令的操作码,用地址符号(Symbol)或标号(Label)代替指令或操作数的地址。在不同的设备中,汇编语言

对应着不同的机器语言指令集,通过汇编过程转换成机器指令。

【CPU 只负责计算,本身不具备智能。你输入一条指令(instruction),它就运行一次,然后停下来,等待下一条指令。这些指令都是二

进制的,称为操作码(opcode),比如加法指令就是00000011。编译器的作用,就是将高级语言写好的程序,翻译成一条条操作码。

汇编语言是二进制指令的文本形式,与指令是一一对应的关系。比如前面提到的加法指令00000011写成汇编语言就是 ADD。只要还原成

二进制,汇编语言就可以被 CPU 直接执行,所以它是最底层的低级语言。

最早的时候,编写程序就是手写二进制指令,然后通过各种开关输入计算机,比如要做加法了,就按一下加法开关。后来,发明了纸带打孔

机,通过在纸带上打孔,将二进制指令自动输入计算机。把这些文字指令翻译成二进制,这个步骤就称为 assembling(汇编过程),完成

这个步骤的程序就叫做 assembler(汇编程序)。

每一种 CPU 的机器指令都是不一样的,因此对应的汇编语言也不一样。目前最常见的 x86 汇编语言,即 Intel 公司的 CPU 使用的那一

种。

基础知识可参见阮一峰的:

汇编语言入门教程

本文重点介绍实验环境的搭建

有很多很好的汇编程序(assembler),如:MASM (Microsoft Macro Assembler)。

MASM是微软公司为x86 微处理器家族开发的汇编开发环境,拥有可视化的开发界面,使开发人员不必再使用DOS环境进行汇编的开发,

编译速度快,支持80x86汇编以及Win32Asm,是Windows下开发汇编的利器。

在windows10中MASM环境的搭建:

在windows下搭建汇编语言(Assembly language)编程环境工具包,下载地址:

1)、创建一个用于保存汇编工具(、、、等工具)的目录,如:D: MASMdebug(根据你的情

况确定)。

2)、安装DOSBox

DOSBox是一个 DOS 模拟程序。、、、等工具是DOS下的工具,要想正确运行就需要DOSBox这

个 DOS 模拟程序。

双击安装:直接一路Next完成安装。

安装完成,在开始菜单中创建文件夹:

在桌面上创建快捷方式:

3)、将1)中建立目录D: MASMdebug 挂在到DOSBox的C——输入MOUNT C 回车(即按下Enter键),参见下图:

在DOSBOX中,输入C:回车(即按下Enter键)进入命令符C:>,此时,可以运行D: MASMdebug中的可执行程序——、

、等工具,参见下图:

进入,使用r指令查看cup寄存器内容,用q指令将退出debug程序。

运行DOSBOX,在命令符C:>下,命令的拼写忽略大小写,此时:

【输入命令:EDIT 文件名.asm,启动进入代码编辑状态,输入程序代码。可以使用记事本代替EDIT程序。】

输入命令:MASM 文件名.asm,生成目标文件文件名.OBJ(生成过程中可以修改目标文件名,直接回车可保持默认目标文件名)

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

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

编写运行汇编语言程序

有了前面准备工作,现在可以编写运行汇编语言程序了。

1. 编写汇编语言程序

打开“记事本“输入如下代码:

assume cs:code,ds:datas

datas segment

str db 'helloWorld!','$'

datas ends

code segment

mov ax,datas

mov ds,ax

lea dx,str ; 获取str的偏移地址

mov ah,9 ; 调用9号功能输出字符串

int 21h

mov ah,4ch int 21h

code ends

end

保存文件名为 ,注意扩展名为.asm。为了编译方便放在目录D: MASMdebug中,参见下图:

1. 输入MASM , 生成.obj文件,参见下图:

上述过程的示意图如下:

若使用更为简洁的(注意带英文分号;)编译形式:

MASM ;

参见下图:

3)连接,输入LINK ,参见下图:

上述过程的示意图如下:

若使用更为简洁的(注意带英文分号;)连接形式:

LINK ;

参见下图:

执行exe文件,参见下图:

特别提示,以后进入在DOSBOX中,开始时,需要挂载一下D: MASMdebug目录(根据你的情况确定)。

下面再给出一例汇编语言程序代码,你试着编译运行之:

DATA SEGMENT

BUFFER DB "1 STYLE ONE ", 0DH, 0AH

DB "2 STYLE TWO ", 0DH, 0AH

DB "3 EXIT ", 0DH, 0AH, '$'

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE, DS:DATA

START: MOV AX, DATA

MOV DS, AX

MOV DX, OFFSET BUFFER ;打印菜单

MOV AH, 09H

INT 21H

MOV AH,4CH ;退出程序

INT 21H

CODE ENDS

END START