微机原理实验指导书

2020-04-17 00:57

实验一 DEBUG软件的使用

—、实验目的

1.学习DEBUG软件的基本使用方法。 2.掌握8088/8086的寻址方式。

3.掌握数据传送、算术运算逻辑运算等类指令的基本操作。 二、实验内容与步骤

本实验进行前必须保证系统盘上有DEBUG.EXE文件。在DOS环境下执行DEBUG命令就在屏幕上显示DEBUG提示符:“-”(短划线)。

D:\LLW>DEBUG↘ ;以下在字符下加下划线表示键入的内容,↘代表回车

1.装载文件——(N、L命令)

-N EXSE2_3.EXE ↘ ;程序命名为EXSE2_3.EXE -L↘

2.反汇编命令(U命令) -U ↘

3.显示当前环境和寄存器内容(R命令) -R↘

4.以十六进制和ASCII码形式显示内存单元内容(D命令)

-D↘

5.修改寄存器内容

-R cx↘ ;修改完后检查是否已修改

6.输入数据(可以是指令的机器码或操作数)——即修改内存内容(E命令) -E 段地址:偏移地址↘ ;修改完后检查是否已修改 7.程序输入——汇编命令(A命令) 输入程序应注意以下几点:

(1)输入的数字必须是十六进制数,并且不输入H。 (2)分号后面的内容(注释)不要输入。

(3)不输入标号,条件转移指令中的标号用偏移地址代替。

-A↘;以下用↘代表回车键,下面加下划线部分代表要键入的内容。(可以是任意程序)。 重新回到DEBUG提示符“-”状态,表示汇编命令已结束。 8.执行机器指令程序到指定断点——(G命令)

-G=段地址:偏移地址(起始) 段地址:偏移地址(指定断点) 9.程序调试练习

修改并调试以下程序,使之完成30000H开始的内存单元中存入31个先自然递增然后又自然递减的数据(00H~0FH~00H)的功能。程序从CS:0100H开始存放。调试完成后程序命名为PCS1.EXE并存盘。

程序如下: ;PCS1

MOV AX,3000H MOV DS,AX MOV SI,0 MOV CL,0FH XOR AX,AX L1:MOV [SI],AL

1

INC AL DEC CL JNZ L1

MOV CX,10H L2:MOV [SI],AL INC SI DEC AL LOOP L2 INT 20H 步骤:

(1)用A命令输入程序;

(2)用反汇编U命令显示程序及目标码: (3)存盘程序命名为PCSl.EXE;

(4)用断点执行G命令执行程序到INT 20H指令(不执行INT 20H指令); (5)用D命令检查程序执行后31个数是否已写入存储器3000H:0H中。 -R↘ -D↘

显示如下:????

(6)修改程序、调试直到显示结果正确。

三、思考题

1.EXE文件程序的第一条可执行指令的IP等于多少?

2.在DEBUG环境下显示的程序和数字是什么形式?标号又是什么形式? 四、实验报告

1.打印PCSl.EXE的反汇编文件,并在每条指令后加上注释。 2.回答思考题。

3.打印本次实验中所有DEBUG命令及运行界面。 4.试述本次实验中你学会的DEBUG命令。

2

实验二 汇编语言程序的建立和运行

—、实验目的

1.熟悉伪指令和汇编运算符,掌握汇编语言程序的编写方法。

2.学习汇编语言源程序的编辑、汇编、连接、调试及运行的全过程。 二、实验内容及步骤 ·

要建立和运行汇编语言程序,系统盘上应该具有如下文件:

.EDIT.COM(或其他全屏幕编辑软件如WS.COM、EDLIN.COM等) 编辑程序 .MASM.EXE 宏汇编程序 .LINK.EXE 链接程序 .DEBUG.EXE 调试程序 1.程序编辑。用EDIT或者其他编辑软件编辑书中149页程序源程序并存盘。 2.程序汇编

如果被汇编的程序没有语法错误,则屏幕上还给出如下信息: 0 Warning Errors 0 Severe Errors

汇编过程中如果发现有错误,程序员必须重新用编辑软件修改错误后再进行汇编,直至汇编正确通过。需要强调的是汇编过程只能指出源程序中的语法错误,而不能指出算法和逻辑等错误。 3.程序链接

汇编过程由源程序产生了二进制的目标文件(OBJ文件),但目标文件用的是浮动地址,它不能直接上机执行,必须用链接程序(LINK.EXE)将OBJ文件转换成可执行的EXE文件。

4.程序调试与运行

有了EXE文件后就可以运行程序了。此时只要打入文件名(不输入扩展名),回车即可。

有的程序中没有将结果显示在CRT屏幕上,因此不能知道程序运行结果,这时必须在DEBUG状态下查看寄存器或内存单元。 三、思考题

1.用DEBUG软件调试程序(.EXE文件形式),不执行任何指令,可以用D命令(-DDS: 0)查看数据段的原始数据吗?为什么?

2.汇编语言源程序通过了汇编和链接是否就正确无误了?为什么?

3.汇编语言源程序经汇编和链接后产生的是哪一种可执行文件?这种文件中IP的初始值一般是多少?

四、实验报告

1.填写EXSE3_1.ASM程序中分号后的空白,贴在习题本上。 2.打印调试通过后的程序清单。 3.回答思考题。

4.以本程序为例说明汇编语言程序的建立和运行的主要步骤。

3

实验三 代码转换实验

一、实验目的

1.掌握计算机常用代码的软件转换技术。 2.进一步熟悉DEBUG软件的使用。 3.掌握简单循环程序的编程方法。 二、实验内容

代码转换是计算机和I/O设备进行信息交换的重要技术之一。各种I/O设备所提供和接收的数据编码不尽相同,如图2-1所示。为了处理这些信息,计算机必须将各种不同编码形式的信息转换成别种适当的数据形式。例如,键盘输入的数据均为ASCII码形式存储在内存中,通常要求将其转换成相应的数据格式。一般实现代码转换有两种方法:

1.软件法 利用CPU的算术逻辑运算功能,通过运算或查表实现各种数据代码间的转换。该方法经济但速度慢。

2.硬件法 利用专用代码转换集成电路进行转换。如74LS47可把BCD码转换为七段代码。这种方法需要硬件费用,但速度快。 本实验要求掌握软件编码转换技术。

计算机常用的代码有二进制、八进制、十六进制、BCD码、ASCII码、七段码等。 (一)ASCII码转换为未组合BCD码

设从键盘输入十进制数的ASCII码已存放在起始地址为CS:0150H的单元中,把它转换成未组合BCD码后,再分别存入起始地址为CS:015AH的单元中。若输入的不是十进制数的ASCII码,则相应存放结果单元的内容为“FF”。 提示:

1.未组合BCD码是一位十进制数字占一个字节,高半字节为0,低半字节为该十进制数字的BCD码。ASCII码转换为未组合BCD码只需减30H。

2.程序框图如图所示。

3.程序执行前,需要在CS:0150H内存缓冲区写入待转换的ASCII码。方法如下; 方法一:用A命令

-A CS:0150 ↘

CS:0150 DB 35,39,30,41,32↘

4

方法二:用E命令 -E CS:0150

CS:0150 35,39,30,41,32 ↘ 4.执行程序后检查执行结果可用D命令:

-D CS:015A ↘

CS:015A 05,09,00,FF,02

5.参考程序:

;PCS3-1

ORG 0100H

MOV CX,0005H MOV DI,150H BB: MOV BL,0FFH MOV AL,[DI] CMP AL,3AH JNB DONE SUB AL,30H JB DONE

MOV BL,AL DONE:MOV AL,BL

MOV [DI+0AH],AL

INC DI LOOP BB MOV AH,4CH

INT 21H ’

ORG 0150H

DB 35H,39H,30H,41H,32H

(二)BCD码转换为二进制码

在各种智能仪器和信息处理中,人们总习惯于用十进制数来表示信息。但是绝大多数计算机没有十进制运算指令(仅有十进制调整指令)。所以常规的方法是将输入的十进制数转换为二进制数后,再进行各种数据处理。

BCD码分为组合BCD码和未组合BCD码。组合BCD码每字节存放两位BCD数,未组合BCD码每字节只存放一位BCD数,高半字节为0。组合BCD码加、减后必须用DAA和DAS指令进行调整(乘法或除法没有调整指令)。未组合BCD码则可进行加、减、乘、除四则运算,其调整指令分别为AAA,AAS,AAM和AAD。

本实验是要把两位未组合BCD码数转换成二进制数。

设未组合BCD码以存放在起始地址为CS:0150H的区域,把它们转换为二进制数后,再分别存入起始地址为CS:0165H的区域。例如 ORG 0150H

DB 03H,06H,08H,09H,06H,05H,02H,09H 则转换后CS:0165H开始的单元的内容为:

CS:0165H 24H,00H,59H,00H,41H,00H,1DH,00H 提示:

1.算法是 “十位×10 +个位”。其中的10可以用“10=8+2”来实现。

5


微机原理实验指导书.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:计算机应用基础(专科)无纸化考试Windows xp综合练习

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: