APP下载

汇编语言程序上机调试运行方法

2018-02-19

信息记录材料 2018年7期
关键词:汇编语言模拟器命令

梁 伟

(大连计算机职业中专 辽宁 大连 116033)

1 引言

《微机原理与汇编语言》是计算机专业的一门主要课程,本课程的教学目标是使学生掌握汇编语程序设计的基本知识,理解计算机编程原理。本课程教学内容分为基础教学模块和实践教学模块,基础教学模块包括微型计算机中的基本结构、指令系统、汇编语言程序等基本知识。实践教学模块包括汇编源程序的编译,连接与调试运行。

汇编语言程序上机操作需要调用编辑程序,建立以.ASM为扩展名的源程序文件;调用汇编程序,生成以.OBJ为扩展名目标程序文件;调用连接程序,生成以.EXE为扩展名的执行文件,然后运行。

由于masm软件的限制,在64位系统电脑上进行汇编实验时会遇到问题,可以通过运行DOS模拟器软件,模拟生成一个DOS窗口,使用模拟DOSBox工具来进行汇编实验,在模拟DOS窗口中调试和执行汇编语言程序。

2 安装DOS模拟器DOSBOX

(1)安装DOS模拟器DOSBOX,安装时不需修改安装路径,单击next按钮,直到安装完成,安装DOSBOX后,在桌面上可以看到DOSBOX的快捷图标。

(2)设置DOSBox的虚拟盘,安装DOSBOX后,当打开DOSBOX快捷图标时会发现两个窗口,不要关闭其中任何一个窗口。然后执行Z:>mount D D:命令,将D盘设置为DOSBox的虚拟盘,执行Z:> D: 命令,进入D盘。

(3)存放汇编调试软件,在D盘建立asmtest文件夹,将masm编译、link连接和debug调试汇编程序的命令文件都存放在asmtest这个文件夹下。

(4)D盘文件夹路径映射,可以在开始菜单里找到DOSBox 0.74 Options文件,打开文件之后,把mount D D:asmtest命令和D: 命令加在最后两行,并保存文件。此时调试汇编程序的DOS环境设置完成。

[autoexec]

# You can put your MOUNT lines here.

mount D D:asmtest

D:

3 汇编语言程序编辑、汇编、连接过程

下面以计数控制循环例题ltloop.asm程序为例,介绍汇编语言程序上机运行过程。

【例题】试编制一程序,将SOURCE源数据区的10个字节数据传送到DEST目的数据区。

(1)用编辑器编辑汇编语言源程序,把ltloop.asm文件存放在d:asmtest路径下。

data segment

SOURCE DB 1,2,3,4,5,6,7,8,9,10

DEST DB 10 dup(?)

data ends

code segment

assume cs:code,ds:data

start: MOV AX, DATA

MOV DS, AX

MOV CX,10

MOV SI,-1

next: INC SI

MOV AL, SOURCE[SI]

MOV DEST[SI],AL

LOOP next

mov ah,4ch

int 21h

code ends

end start.

(2)打开DOS模拟器DOSBOX,进行MASM汇编操作,在DOSBOX平台上使用汇编程序是MASM,在DOS提示符后键入MASM命令。

D: >masm ltloop.asm

Object filename [ltloop.OBJ]: (可直接按Enter) Source listing [NUL.LST]:

Cross-reference [NUL.CRF]: 48056 + 463299 Bytes symbol space free

0 Warning Errors 0 Severe Errors

若有错误,应再用文本编辑器进行编辑,然后再汇编,直至汇编通过。

(3)LINK连接目标程序并生成EXE执行文件,源程序ltloop.asm被汇编通过后,生成以.OBJ为扩展名目标程序文件,需要经过连接才能执行,在DOSBOX平台上键入LINK命令。

D: >link ltloop.obj

Run File [LTLOOP.EXE]:(直接回车确认)List File[NUL.MAP]:(缺省不产生)

Libraries [.LIB]:(直接按回车键)

4 汇编语言程序运行与调试过程

(1)运行与调试文件,DEBUG是一种汇编语言程序的调试工具,在DOS提示符后键入LINK DEBUG命令。

D:>debug ltloop.exe

- (连字符“-”是 DEBUG的提示符)

(2)用反汇编命令U显示可执行代码

-ucs:0

163A:0000 B83016 MOV AX,1630

(3)用R命令显示寄存器值

-r

AX=0000 BX=0000 CX=0387 DX=0000 SP=0080 BP=0000 SI=0000 DI=0000

DS=1620 ES=1620 SS=1632 CS=163A IP=0000 NV UP EI PL NZ NA PO NC

163A:0000 B83016 MOV AX,1630

(4)用T命令跟踪执行程序

-t

AX=1601 BX=0000 CX=000A DX=0000 SP=0080 BP=0000 SI=0000 DI=0000

DS=1630 ES=1620 SS=1632 CS=163A IP=0014 NV UP EI PL ZR AC PE NC

163A:0014 E2F5 LOOP 000B

(5)用D命令查看数据,将SOURCE源数据区的10个字节数据传送到DEST目的数据区。

-dds:0

1630:0000 0102030405060708-090A 010203040506 ................

1630:0010 0708090A 00000000-00000000 00000000 ................

(6)用Q命令退出DEBUG返回到操作系统

(7)返回到Windows操作系统,在DOS提示符后键入exit返回Windows。

以上以计数控制循环程序为例,说明了汇编语言程序上机调试运行的基本过程。实践教学模块还有顺序程序设计调试、分支程序设计调试方法与循环程序设计调试等。学生通过上机调试运行实践,培养学生正确书写汇编源程序,学会分析一般程序,熟悉掌握简单程序的设计的能力,为学习本专业其它编程课程和进行与硬件有关的技术工作打好基础。

[1] 沈美明,温冬婵.《IBM-PC汇编语言程序设计》清华大学.

[2] 肖金立.《微型计算机原理与应用》.

[3] 陈文尧.未来汇编软件.

猜你喜欢

汇编语言模拟器命令
只听主人的命令
了不起的安检模拟器
盲盒模拟器
划船模拟器
高等学校计算机专业课程教学改革实践——以汇编语言与接口技术课程为例
汇编语言与C语言的混合程序设计技术研究
移防命令下达后
提高《汇编语言程序设计》教学效率的思考与实践
这是人民的命令
动态飞行模拟器及其发展概述