当前位置:文档之家› 实验二-汇编语言程序的上机步骤

实验二-汇编语言程序的上机步骤

实验二汇编语言程序的上机步骤
一、实验目的
熟练掌握汇编语言程序的上机步骤和程序调试方法。

二、实验内容及步骤
1.通过CMD命令进入DOS方式。

2.通过CD命令和MD命令建立和进入用户程序目录。

3.将实验一笑脸程序补充为一个完整的汇编语言程序。

4.熟读第五部分内容:环境简介
5.通过编辑——汇编——连接步骤生成.EXE形式的笑脸程序Smile.exe。

6.运行Smile.exe程序,观察运行结果。

7.用“DUBUG Smile.exe”命令将Smile.exe程序装入内存,通过R命令读取Smile.exe程序在内存的地址。

8.用反汇编U命令观察笑脸程序。

9.重复实验一“使用DEBUG调试程序”中的步骤(4)和(5),观察程序运行结果。

10.验证题
以下程序段用以显示信息“Press any key when you ready.”。

在用户按下任一键后,另起一行显示信息“Input your password:”。

DSEG SEGMENT use16
MESS1 DB ‘Press any key when you ready’,0AH,0DH,‘$’
MESS2 DB ‘Input your password:’,’$’
DSEG ENDS
SSEG SEGMENT STACK
DB 80H DUP(0)
SSEG ENDS
CSEG SEGMENT
ASSUME DS:DSEG,SS:SSEG,CS:CSEG
START:MOV AX,DSEG
MOV DS,AX
MOV DX,OFFSET MESS1
MOV AH,09H
INT 21H ;显示“press any key when you ready.”
MOV AH,08H
INT 21H ;等待用户按任一键
MOV DX,OFFSET MESS2
MOV AH,09H
INT 21H ;显示“Input your password:”
MOV AH,4CH
INT 21H
CSEG ENDS
END START
三、实验要求
认真完成实验每一步骤,详细记录实验过程、现象和结果,及时整理实验报告。

四、实验作业
1.分析DEBUG下输入并调试程序和完整汇编语言程序调试方式的优缺点。

2.编写一个显示全部26个大写A-Z字符的程序段,并在DUBUG下调试通过。

3.编写一程序,作BCD数的四则运算,在程序中设置非压缩BCD数X,从键盘输入一位十进制数Y。

将X+Y、X-Y、X*Y及X/Y(不考虑余数)分别送ANS _A,ANS_S,ANS_M及ANS_D变量。

上机调试程序;检查执行结果。

4.编写一程序,实现两个三字节无符号数DATA1和DATA2的相加,结果送四字节变量ANS。

上机调试程序,检查执行结果。

5.将上述程序补充为完整的汇编语言程序,通过步骤编辑、汇编、连接,生成.EXE文件,并运行之。

观察程序运行结果。

6.写出实验体会。

五、汇编环境简介
1.编辑程序编辑汇编语言源程序
使用文本编辑程序(如DOS 自带的EDIT.EXE)进行文件的编辑建立汇编语言程序。

格式:EDIT 文件名.ASM (回车)
2.汇编程序生成目标程序
经过编辑命令建立的汇编语言源程序使用汇编程序(如微软公司的MASM.EXE)编译成目标程序。

格式:MASM 文件名
在汇编程序调入后,先显示版本号,然后出现以下第一行提示:
Object filename [源文件名.OBJ]: ;默认该文件名回车,或者输入新文件名。

Source Listing [NUL.LST] : 源文件名或其他 ;输入文件名可建立列表文件。

Cross Reference [NUL.CRF]: 源文件名或其他 ;输入文件名可建立交叉索引文件。

Warning Errors ;显示警告错误个数
severe Errors ;显示严重错误个数
如果汇编过程中发现源程序有错误,由以上两种错误类型分别列出。

此时可分析错误原因,返回编辑程序修改源程序。

汇编程序出错信息见《汇编程序出错信息表》, 注意出错的类型及出错的源文件对应行。

若不需要产生 .LST 和 .CRF 文件, 可在 > MASM 文件名命令后加";",即> MASM 文件名;
3.链接程序生成可执行文件
汇编后建立的目标码文件,必须经过链接程序(如LINK.EXE)完成链接后才能生成可执行的命令文件。

格式:LINK 文件名 ;回车后调入链接程序,此时屏幕显示:
Run File [文件名.EXE]: ;回车默认该文件名。

List File [NUL.MAP]: ;输入文件名可建立映像文件。

Libraries [ .LIB]: ;回车,汇编语言没有库文件。

Warning: ;提示错误。

如果有错误,须返回编辑程序重新修改源程序。

若不需要产生 .MAP文件, 可在 > MASM 文件名命令后加";",即
> MASM 文件名;
若要生成 .COM 文件, 则用 EXE2BIN 实现:
> EXE2BIN A.EXE
4.汇编语言动态调试工具调试汇编源程序
DEBUG 是专为汇编语言设计的一种调试工具,可用来检查、修改存储单元和寄存器的内容,装入、存储及启动运行程序,也可用 DEBUG 汇编简单的汇编语言程序。

格式:DEBUG 文件名.EXE
- ; "-" 是 DEBUG 的提示符
DEBUG 下的基本命令及格式:
命令任务格式
A(Assmble) 汇编语句 A[address]
C(Compare) 比较内存 C range address
D(Dump) 显示内存 D [address]
E(Enter) 改变内存 E address list
F(Fill) 填充内存 F range list
G(GO) 执行程序 G [address]
H(Hexarthmetic) 十六进制运算 H Value Value
I(Input) 输入 I port address
L(Load) 装入内存 L[address]
M(Move) 传送内存 M range range
N(Name) 定义文件 N [d:][path]filename[.com]
O(out put) 输出字节 O port address byte
Q(Quit) 退出 DEBUG状态 Q
R((Register) 显示寄存器 R[register name]
S(Search) 检索字符 S rang list
T(Trace) 单步/多步跟踪 T orT[address][value]
U(Unassmble) 反汇编 U [address]orU[range]
W(Write) 文件或数据写盘 W [address[drive sector sector]] 六、汇编程序出错信息表。

相关主题