第二章 软件实验 微机原理及其接口技术实验
第二章 软件实验
实验一 Debug程序的使用
一、实验目的
1. 学习使用DEBUG调试命令。 2. 学习用DEBUG调试简单程序。
3. 通过程序验证码制及其对标志位的影响。 4. 通过调试熟悉和掌握个寄存器的作用与特点。 二、实验内容
用DEBUG调试简单程序。 三、实验仪器
微机一台 四、实验步骤
1.由DOS进入DEBUG调试环境。 (1) C:>DEBUG将调试程序装入内存
注意:当机器控制权由DOS成功地转移给调试程序后,将显示“-”号,它是DEBUG的状态提示符,表示可以接受调试子命令了。
(2) -R 显示CPU中各寄存器当前初始内容,请记录下列各项: AX= DS= OF BX= ES= DF IF CX= SS= SF DX= SP= ZF BP= CS= AF SI= IP= PF DI= CF FLAG寄存器中的8个标志位状态值是: 说明:
1) 此时,调试工作区的四个段值相同,指向同一起点,表明公用一个64KB空间;
2) SS:SP指向堆栈顶单元,SP为FFFE或FFEE,正好是本段的最高可用地址,表明堆
栈自动使用最高地址,栈区由底向上生长; 3) CS:IP为约定的调试工作区地点(IP=0100),可由此装入待调试程序代码,或汇编键
入的程序小段,工作区由低址往下使用;
4) DEBUG用符号给出标志寄存器中8个标志位的当前状态,其含义如下表所示。 标志位含义 OF溢出 DF方向 IF中断 SF符号 ZF全零 AF辅助进位 PF奇偶性 CF进位
‘1’的对应符号 OV有 DN递减 EI允许 NG负 ZR零 AC有 PE偶 CY有 4
‘0’的对应符号 NV无 UP递增 DI禁止 PL正 NZ非零 NA无 PO奇 NC无 第二章 软件实验 微机原理及其接口技术实验
(3) 结束程序,返回DOS。 -Q
2.用DEBUG调试简单程序
例1 -A CS:0106 MOV AX,1234
MOV BX,2345 MOV CX,0 ADD AX,BX MOV CX,AX INT 20
运行程序
(注:执行程序时IP应指向要执行的指令,需要修改时 -RIP 当前值
输入需要值 该处为0106
当然也可以在T或G命令中指出程序起始地址) -R 显示各寄存器当前内容及首条指令
-T3 跟踪执行三条赋值传送指令,记录寄存器及标志位变化 -T2跟踪执行相加及送和数指令,记录寄存器及标志位变化 -G 执行软件中断指令INT 20,机器将显示“程序正常终止”的信息,并显示“-”,表明仍处在DEBUG的调试控制状态下,注意未用T命令,因为我们不想进入到20H中断处理程序中去,P命令也可实现相同操作
实验现象记录:记录每条指令执行后各相关寄存器值及标志位状态
例2 -A CS:116
MOV AX,[0124] MOV BX ,[0126] ADD AX,BX MOV [0128],AX INT 20 DW 2222 DW 8888 DW 0
设置断点分段运行程序
-G=CS:116 11D 从指定入口运行程序,至断点11D停,可见两个数已取至AX,BX,但还没有求和
-G122 从上一断点运行至新断点停,已完成求和并存入指定结果单元 -G 完成程序 观看内存内容
-DCS:116 12A 显示本程序小段目标代码和数据单元内容 -UCS:116 12A 反汇编指定范围的内存内容-
5
第二章 软件实验 微机原理及其接口技术实验
实验现象记录:通过反汇编,记录程序执行前指定范围的内存内容,并记录每条指令执行后各相关寄存器值及指定范围的内存内容)
例3 -A CS:0192
MOV DX,19B MOV AH,9 INT 21 INT 20
DB ?HELLO,WORLD! $? -P 命令单步执行
实验现象记录:观察每条指令执行后各寄存器的变化,记录DX,AX的变化。
思考:根据程序输入情况,考虑‘HELLO,WORLD!$’在内存中的ASCⅡ码和地址范围
-D
ASCⅡ码为: ;
例4 自己设计一段小程序验证补码的加法、进位、溢出的概念; 参考程序(可对数据进行修改): -A CS:0100 MOV AL,74 ADD AL,70 MOV AL,7A ADD AL,94 MOV AL,43 ADC AL,65 INT 20
-P命令单步执行
实验现象记录:记录每条指令执行后AX及标志位变化
例5
1. 使用R命令,实现AX=0108,BX=F1AA -R -R
2.编辑下列程序 -A CS:0100 XCHG AL,BH SUB AX,BX AAS INT 20
-P 命令执行单步执行
实验现象记录:记录每条指令执行后,AX、BX以及标志位的变化。
6
第二章 软件实验 微机原理及其接口技术实验
例6 执行下列程序,用P命令或T命令跟踪 -A CS:0100 MOV AX,0200 MOV DX,1E4F
CALL AX ;调用子程序 MOV DX,167C ADD DH,DL MOV [0300],DX INT 20
;********下面是子程序段******** -A CS:0200 PUSH AX MOV AX, 010B POP AX RET
实验现象记录:1)跟踪执行程序,观察在子程序调用过程中
IP SP 堆栈区域内容 2)程序运行完毕后DS:[0300]中的内容为 3)如果去掉POP AX,程序执行后DS:[0300]中内容为
7
第二章 软件实验 微机原理及其接口技术实验
实验二. 汇编语言上机环境及基本步骤
一、实验目的:
1. 掌握编写汇编源程序的基本格式。 2. 熟悉汇编语言上机环境。
3. 掌握汇编源程序的编辑和修改,熟悉EDIT或记事本的使用方法。
4. 掌握汇编源程序编译、连接成可执行文件的过程,熟悉MASM,LINK的使用方法。 二、实验内容:
在屏幕上显示并打印字符串“This is a sample program.” 三、实验仪器
微机一台 四、实验步骤:
1.在E盘以自己的名字的汉语拼音建立一个工作目录(文件夹,名称不要太长,不超过8个字符比如zhangsan),将文件MASM.EXE,LINK.EXE复制到该目录下,编辑的源文件也保存到该目录下。
从WINDOWS进入DOS环境:C:\\>
2.用EDIT编辑SW1.ASM源文件。 (1). 从当前目录进入自己的目录下,
C:\\>E: 回车
E:\\> CD zhangsan ↙回车 键入EDIT并回车: E:\\ zhangsan>EDIT
根据菜单提示进行各种操作。
(2)进入EDIT编辑------EDIT是一种全屏幕编辑软件,可输入、编辑、修改、保存、另存源程序非
常方便。
说明:也可在WIDNDOWS环境下用记事本编辑源文件,在保存时,保存类型应选择所有文件,不能选择文本文件(*.txt),否则在编译时会找不到源文件的。 (3).编辑新文件:
a、在EDIT编辑器中输入汇编源程序。 b、检查输入有无错误。
c、打开文件菜单FILE?选择另存为SAVE AS┅?输入文件名为:SW1.ASM?保存。 注意:保存到你自己的文件夹中
d、若需要修改此文件,用FILE菜单?选择打开OPEN?输入文件名SW1.ASM,即可修改。修改
后注意重新再存盘。
(4).编辑汇编源程序
a、在EDIT(或记事本)中输入源程序。 b、检查。
c、存盘。可保存为SW1.ASM
3.用汇编程序MASM将SW1.ASM文件汇编,生成SW1.OBJ目标文件。 (1).一般简单程序只需生成.OBJ文件,可键入简化命令: E:\\zhangsan>MASM SW1;↙
8