实验1初级程序的编写与调试实验解析.doc
文本预览下载声明
南昌大学实验报告
学生姓名: 学 号: 专业班级:
实验类型:■ 验证 □ 综合 □ 设计 □ 创新 实验日期: 2015年11月19日 实验成绩:
实验1 初级程序的编写与调试实验(一)
一.实验目的
1.熟悉DEBUG命令;学会DEBUG中的D命令、E命令、R命令、T命令、A命令、G命令等的使用。对于U命令、N命令、W命令等,也应该试用一下;
2.掌握数据在内存中的存放方式和内存操作数的几种寻址方式,段寄存器和物理地址计算;
3.熟悉数据传送指令、算术运算指令、逻辑指令、循环指令的使用。
4.掌握简单的汇编语言程序编写与调试。
二.实验内容
内存操作数及各种寻址方式使用;
求累加和程序;
多字节加法程序;
数据串搬家程序;
段寄存器概念及字符串传送指令练习。
三.实验要求
1.仔细阅读有关DEBUG命令的内容,对有关命令,要求事先准备好使用的例子;
2.阅读数据传送指令、算术运算指令、逻辑指令、循环指令的使用方法
3.用DEBUG的有关命令调试本实验中的求累加和程序、多字节加法程序、程序段
四.实验环境
PC微机;
DOS操作系统或 Windows 操作系统;
MASM.EXE,LINK.EXE,DEBUG.COM或宏汇编集成环境。
五.实验步骤
1.内存操作数及各种寻址方式使用
MOV AX,1234
MOV [1000],AX
MOV BX,1002
MOV BYTE PTR [BX],20
MOV DL,39
INC BX
MOV [BX],DL
DEC DL
MOV SI,3
MOV [BX+SI],DL
MOV [BX+SI+1],DL
MOV WORD PTR[BX+SI+2],2846
步骤:
(1) 用A命令键入上述程序,并用T命令逐条运行。
(2) 每运行一条有关内存操作数的指令,要用D命令检查并记录有关内存单元的内容并注明是什么寻址方式。
注意D命令显示结果中右边的ASCII字符及双字节数存放法。
Mov [1000],ax 直接寻址方式
Mov [bx+si],dl 相对变址寻址方式 Mov [bx+si+1],dl 相对基址变址寻址方式
Mov [bx+si+2],2846 相对基址变址寻址方式
2.求累加和程序:
程序:
MOV BX,1000
MOV CX,10
SUB AX,AX
LOP: ADD AL,[BX]
ADC AH,0
INC BX
J: LOOP LOP
INT 3
步骤:
(1)用A命令将程序键入到100H开始的内存中,在键入时记下标号LOP和J的实际地址,在键入LOOP指令时LOP用实际地址值代替;
(2)用命令N AA 将此程序命名为文件AA(文件名可任取);
(3)用R命令将BX:CX改为程序长度值(即最后一条指令后面的地址减去开始地址;
(4)用命令W 100将此程序存到AA命名的磁盘文件中;
(5)用命令Q退出DEBUG;
(6)用命令DEBUG AA再次调入DEBUG和文件AA,可用U命令检查调入程序;
若调入DEBUG时忘了加AA文件名,可用N命令和L命令将文件调入;
(7)用E命令在内存地址1000H处键入16个数字;
(8)用命令G=100 J(J用实际地址代替),使程序运行并停在断点J上,检查AX,BX的值是否符合你的预计值;
(9)用T命令运行一步,观察程序方向(IP值)和CX值是否与你的估计一样,若不一样,检查程序是否有错;
(10)重复G、J与T,再检查AX是否正确;
(11)用G命令使程序运行到结束,检查AX值是否正确。
3.多字节加法程序
程序:
MOV DI,1000
MOV CX,8
MOV SI,2000
CLC
LOP: MOV AL,[SI]
ADC [DI],AL
INC SI
INC DI
LOOP LOP
INT 20
步骤:
(1) 用命令键入此程序
(2) 用E命令在1000H开始处键入一个8字节被加数,在2000H开始处键入一个8字节加数,均为低字节在前面。
4.数据串搬家程序
(1)用A命令键入下列程序:
MOV SI,1000
MOV DI,1500
MOV CX,0FH
LOP:MOV AL,[SI]
MOV [DI],AL
INC SI
INC DI
DEC CX
JNZ LOP
INT 20
(2)用A命令DB伪指令在1000H键入下列字符串:
‘IBM_PC COMPUTER
用G命令运行此程序,并用D命令检查目的地址处的字符与源串是否一致。
5.
显示全部