《计算机组成与结构》实验指导书.docx

上传人:b****8 文档编号:12067526 上传时间:2023-06-04 格式:DOCX 页数:49 大小:254.97KB
下载 相关 举报
《计算机组成与结构》实验指导书.docx_第1页
第1页 / 共49页
《计算机组成与结构》实验指导书.docx_第2页
第2页 / 共49页
《计算机组成与结构》实验指导书.docx_第3页
第3页 / 共49页
《计算机组成与结构》实验指导书.docx_第4页
第4页 / 共49页
《计算机组成与结构》实验指导书.docx_第5页
第5页 / 共49页
《计算机组成与结构》实验指导书.docx_第6页
第6页 / 共49页
《计算机组成与结构》实验指导书.docx_第7页
第7页 / 共49页
《计算机组成与结构》实验指导书.docx_第8页
第8页 / 共49页
《计算机组成与结构》实验指导书.docx_第9页
第9页 / 共49页
《计算机组成与结构》实验指导书.docx_第10页
第10页 / 共49页
《计算机组成与结构》实验指导书.docx_第11页
第11页 / 共49页
《计算机组成与结构》实验指导书.docx_第12页
第12页 / 共49页
《计算机组成与结构》实验指导书.docx_第13页
第13页 / 共49页
《计算机组成与结构》实验指导书.docx_第14页
第14页 / 共49页
《计算机组成与结构》实验指导书.docx_第15页
第15页 / 共49页
《计算机组成与结构》实验指导书.docx_第16页
第16页 / 共49页
《计算机组成与结构》实验指导书.docx_第17页
第17页 / 共49页
《计算机组成与结构》实验指导书.docx_第18页
第18页 / 共49页
《计算机组成与结构》实验指导书.docx_第19页
第19页 / 共49页
《计算机组成与结构》实验指导书.docx_第20页
第20页 / 共49页
亲,该文档总共49页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

《计算机组成与结构》实验指导书.docx

《《计算机组成与结构》实验指导书.docx》由会员分享,可在线阅读,更多相关《《计算机组成与结构》实验指导书.docx(49页珍藏版)》请在冰点文库上搜索。

《计算机组成与结构》实验指导书.docx

《计算机组成与结构》实验指导书

 

《计算机体系结构》

实验指导书

目录

实验一熟悉汇编语言程序开发环境3

实验二DEBUG的启动及其基本命令的使用4

实验三系统功能调用12

实验四内存操作数及寻址方法13

实验五分支程序设计14

实验六汇编语言程序的调试与运行15

实验七循环程序设计17

实验八顺序程序设计18

实验九子程序设计20

实验十循环程序设计23

实验十二综合程序设计26

实验十三综合程序设计27

附录--DEBUG使用手册28

附录汇编软件MASM和调试、工具软件DEBUG使用31

1.1实验目的31

1.2相关基础知识31

1.2.1汇编语言程序上机步骤31

1.2.2调试工具软件DEBUG34

1.3汇编语言上机实验37

1.4应用DEBUG软件调试程序实验39

实验一熟悉汇编语言程序开发环境

一、实验学时:

2

二、实验类型:

验证性

三、开出要求:

必修

四.实验目的

1、熟悉在PC机上编辑、汇编、连接、调试和运行汇编语言程序的过程。

2、熟悉汇编过程中一些常见出错信息。

五.实验内容

1、启动EDIT编辑软件,输入下面的汇编源程序(不包括行号),用S+学号后4位+.ASM作为文件名保存到D:

盘上,然后汇编、连接并调试运行。

1datasegment

2out1db'Helloworld$’

3axdb'MynameisDJX$';有错行,将ax改为ax1

4dataens;有错行,将ens改为ends

5

6codesegment

7assumecs:

code;ds:

data

8start:

movax,data

9movds,ax

10leadx,out1

11movah,9

12int21h

13

14movdl,0a35h;有错行,将0a35h改为0ah

15movah,2

16int21h

17movdl,0dh

18mooah,2;有错行,将moo改为mov

19int21h

20

21leadx,ax;有错行,将ax改为ax1

22movah,9

23int21h

24movah,4ch

25int21h

26codeends

27endstart

六、实验条件

DOS运行环境

七.实验报告

1、写出编辑、汇编、连接和运行汇编语言程序的完整实验步骤及运行结果。

2、理解汇编出错信息并写出中文含义。

3.实验体会

八、实验成绩评定办法

根据学生的实验预习、实验纪律、实验动手能力、实验报告结果及编程技巧,进行综合评定,给出A(90)、B(80)、C(70)、D(60)、E(不及格)。

实验二DEBUG的启动及其基本命令的使用

一.实验目的:

掌握DEBUG的基本命令及其功能

二.实验内容:

DEBUG是专门为汇编语言设计的一种调试工具,它通过步进,设置断点等方式为汇编语言程序员提供了非常有效的调试手段。

DEBUG的命令都是一个字母,后跟一个或多个参数:

字母 [参数]

命令的使用中注意:

① 字母不分大小写;

② 只使用16进制数,没有后缀字母;

③ 分隔符(空格或逗号)只在两个数值之间是必须的,命令和参数间可无分隔符;

④ 每个命令只有按了回车键后才有效,可以用Ctrl+Break中止命令的执行;

⑤ 命令如果不符合Debug的规则,则将以“error”提示,并用“^”指示错误位置。

许多命令的参数是主存逻辑地址,形式是“段基地址 :

 偏移地址”。

其中,段基地址可以是段寄存器或数值;偏移地址是数值。

如果不输入段地址,则采用默认值,可以是缺省段寄存器值。

如果没有提供偏移地址,则通常就是当前偏移地址。

对主存操作的命令还支持地址范围这种参数,它的形式是:

“开始地址 结束地址”(结束地址不能具有段地址),或者是:

“开始地址 L字节长度”。

DEBUG命令一览:

分类

命令格式

功能简介

读写寄存器

R

显示所有寄存器的当前内容

R寄存器名

显示和修改指定寄存器内容

RF

显示和修改标志寄存器内容

汇编和反汇编

A[内存地址]

从指定地址开始汇编指令

U[内存块]

对指定内存块进行反汇编

执行指令

T[:

内存地址][条数]

单步或多步执行指令

P[=内存地址][条数]

单步或多步执行指令

G[=内存地址]

连续执行指令

G[=内存地址]断点地址

设断点执行程序

读写内存

D[内存块]

显示指定内存块内容

E内存地址字符或数值串

修改指定内存内容

F内存块字符或数值串

填充指定内存块

S内存块字符串或数值

在指定内存块中查找串

M内存块1内存块2的首地址

复制内存块内容

C内存块1内存块2的首地址

比较两个指定内存块

读写磁盘

N[d:

][path]文件名.扩展名

指定欲读写的磁盘文件

W内存地址

将指定内存块写入文件

L[内存地址]

将文件调入内存

读写I/O端口

I端口地址

读入指定端口的内容

O端口地址数值

将数据写入指定端口

十六进制加减

H数值1数值2

计算并显示两数之和,两数之差

退出DEBUG

Q

退出DEBUG,返回DOS

1、DEBUG程序的启动

在DOS提示符下,可键入命令:

C:

\>DEBUG↙

DEBUG命令的完整格式为:

DEBUG[d:

][path][文件名][参数1][参数2]。

其中[d:

]是盘符,[path]是路径,文件名是被调试文件的名称,它须是执行文件(EXE),两个参数是运行被调试文件时所需要的命令参数,在DEBUG程序调入后,出现提示符“-”,此时,可键入所需的DEBUG命令。

在启动DEBUG时,如果输入了文件名,则DEBUG程序把指定文件装入内存。

用户可以通过DEBUG的命令对指定文件进行修改、显示和执行。

如果没有文件名,则是以当前内存的内容工作,或者用命名命令和装入命令把需要的文件装入内存,然后再用DEBUG的命令进行修改、显示和执行。

2、DEBUG的主要命令

(1)、检查和修改寄存器内容的命令R,它有三种方式:

1)显示CPU内部所有寄存器内容和标志位状态,格式为:

-R

例如:

输入-R↙,得到结果如下:

2)显示和修改某个指定寄存器内容,格式为:

-R寄存器名

例如:

输入-RAX,得到结果如下:

表示AX当前内容为0000,此时若不对其作修改,可按ENTER键,否则,输入修改内容后,如:

则AX内容由0000改为0A0A

3)R命令显示标志寄存器标志位状态的含义如下表所示:

标志名

置位(值为1)

复位(值为0)

溢出Overflow(是/否)

OV

NV

方向Direction(减量/增量)

DN

UP

中断Interrupt(允许/屏蔽)

EI

DI

符号Sign(负/正)

NG

PL

零Zero(是/否)

ZR

NZ

辅助进位AuxiliaryCarry(是/否)

AC

NA

奇偶Parity(偶/奇)

PE

PO

进位Carry(是/否)

CY

NC

修改标志位状态,命令格式为:

-RF

例如:

输入-RF,输出结果如下:

这时若不作修改可按ENTER键,否则在“-”号之后键入修改值,键入顺序任意。

如:

(2)、汇编命令A,格式为:

-A[地址]

该命令从指定地址开始允许输入汇编语句,把它们汇编成机器代码相继存放在从指定地址开始的存储器中。

A命令中如果没有指定地址,则接着上一个A命令的最后一个单元开始;若还没有使用过A命令,则从当前CS :

 IP开始。

例如:

输入代码,则代码存储在OAFO:

0100至OAFO:

010D单元中。

(3)、反汇编命令U,有两种格式:

1)-U[地址]

该命令从指定地址开始,反汇编32个字节,若地址省略,则从上一个U命令的最后一条指令的下一个单元开始显示32个字节。

2)-U范围

该命令对指定范围的内存单元进行反汇编,例如:

-U0100011E或-U10011E或-U0AF0:

0100011E或–U0AF0:

0100L1F(L用来引导指令的条数,1F为指令的条数),这些命令是等效的。

(4)、运行命令G,格式为:

-G[=地址1][地址2[地址3。

]]

其中地址1规定了运行起始地址,后面的若干地址均为断点地址。

若省略地址,则运行从IP所指的地址开始。

例如:

(5)、追踪命令T,有两种格式:

1)逐条指令追踪:

-T

该命令从指定地址起执行一条指令后停下来,显示寄存器内容和状态值。

例如:

2)多条指令追踪:

(有问题)

-T[=地址][值]

该命令从指定地址起执行n条命令后停下来,n由[值]确定。

(6)、显示内存单元内容的命令D,格式为:

-D[地址](从给出的地址开始连续显示128个字节的单元内容)或-D[范围],例如:

(7)、修改内存单元内容的命令E,它有两种格式:

1)用给定的内容代替指定范围的单元内容:

-E地址内容表

例如:

-E2000:

0100F3“XYZ”8D

其中F3,“X”“Y”“Z”和8D各占一个字节,用这五个字节代替原内存单元2000:

0100到0104的内容,“X”“Y”“Z”将分别按它们的ASCII码值代入。

2)逐个单元相继地修改:

-E地址

例如:

-E100:

0AF0:

0100F3.E7

此命令是将原100号单元的内容F3改为E7。

E7是键入值。

(8)、命名命令N,格式为:

-N文件名

此命令将文件名格式化在CS:

5CH的文件控制块内,以便使用L或W命令把文件装入内存进行调试或者存盘。

例如:

(9)、装入命令L,它有两种功能:

1)把磁盘上指定扇区的内容装入到内存指定地址起始的单元中,格式为:

-L地址驱动器扇区号扇区个数

2)装入指定文件,格式为:

-L[地址]

此命令装入已在CS:

5CH中格式化的文件控制块所指定的文件。

在用L命令前,BX和CX中应包含所读文件的字节数。

3)装入已在文件控制块中的文件,格式为:

-L

此命令与-L[地址]相同功能。

(10)、写命令W,有两种格式:

1)把数据写入磁盘的指定扇区:

-W地址驱动器扇区号扇区数

2)把数据写入指定文件中:

-W[地址]

此命令把指定内存区域中的数据写入由CS:

5CH处的FCB所规定的文件中。

在用W命令前,BX和CX中应包含要写入文件的字节数。

(11)、十六进制运算命令H,格式为:

-H [数据1] [数据2]

其功能是将两个十六进制数进行相加、相减运算,结果显示在屏幕上。

例如:

(12)、退出DEBUG命令Q,该命令格式为:

-Q

它退出DEBUG程序,返回DOS,但该命令本身并不把在内存中的文件存盘,如需存盘,应在执行Q命令前先执行写命令W。

三.实验要求:

用汇编语言编写一个计算“3+5”的加法程序,并将结果输出到屏幕上。

四.实验报告:

写出在DEBUG状态下编写、运行程序的过程以及调试所中遇到的问题是如何解决的,并对调试过程中的问题进行分析,对执行结果进行分析。

实验三系统功能调用

一、实验学时:

2

二、实验类型:

验证性

三、开出要求:

必修

四、实验目的

1、掌握接受键盘数据的方法,并了解将键盘数据显示时,须转为ASCII码的原理。

2、掌握DOS功能调用的编程方法。

五、实验内容

试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来。

六、实验条件

DOS运行环境

七、实验步骤

编写汇编语言程序,利用DOS系统功能调用INT21H的1号功能从键盘输入一个字符并利用2号功能在显示器上显示这个字符。

八、实验报告

1、程序的功能、结构,程序流程图。

2、上机实验步骤、实验所遇到的问题及解决的方法,实验体会。

九、实验成绩评定办法

根据学生的实验预习、实验纪律、实验动手能力、实验报告结果及编程技巧,进行综合评定,给出A(90)、B(80)、C(70)、D(60)、E(不及格)。

 

实验四内存操作数及寻址方法

一.实验目的:

1、熟练掌握DEBUG的常用命令,学会用DEBUG调试程序。

2、掌握数据在内存中的存放方式和内存操作数的几种寻址方式。

3、掌握简单指令的执行过程。

二.实验内容:

1、设堆栈指针SP=2000H,AX=3000H,BX=5000H;请编一程序段将AX和BX的内容进行交换。

请用堆栈作为两寄存器交换内容的中间存储单元,用DEBUG调试程序进行汇编与调试。

2、设DS=当前段地址,BX=0300H,SI=0002H;请用DEBUG的命令将存储器偏移地址300H~304H连续单元顺序装入0AH,0BH,0CH,0DH,0EH。

在DEBUG状态下送入下面程序,并用单步执行的方法,分析每条指令源地址的形成过程,当数据传送完毕时,AX中的内容是什么。

程序清单如下:

MOVAX,BX

MOVAX,0304H

MOVAX,[0304H]

MOVAX,[BX]

MOVAX,0001[BX]

MOVAX,[BX][SI]

MOVAX,0001[BX][SI]

HLT

三.实验要求:

1、实验前要做好充分准备,包括汇编程序清单、调试步骤、调试方法,以及对程序结果的分析等。

2、本实验只要求在DEBUG调试程序状态下进行,包括汇编程序、调试程序和执行程序。

四.实验报告:

1、程序说明。

说明程序的功能、结构。

2、调试说明。

包括上机调试的情况、上机调试步骤、调试所遇到的问题是如何解决的,并对调试过程中的问题进行分析,对执行结果进行分析。

3、写出源程序清单和执行结果。

实验五分支程序设计

一、实验学时:

2

二、实验类型:

验证性

三、开出要求:

必修

四、实验目的

1、掌握分支程序的结构。

2、掌握分支程序的设计方法。

五、实验内容

1.试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来,输入的其余字符用“?

”号显示。

2.试编写一个汇编语言程序,要求从键盘输入任意2个1位数,计算其乘积,然后除以10,将其商输出,若输入其它字符,则输出“pleaseinputnumberbetween0and9!

”号。

(选做)。

六、实验条件

DOS运行环境

七、实验报告

1、程序的功能,程序流程图。

2、上机实验步骤、实验所遇到的问题及解决的方法,实验体会。

八、思考问题

1、大小写字母之间的转换和数字与数字字符之间转换的不同点

2、如何同时将大写转小写和将小写转大写。

九、实验成绩评定办法

根据学生的实验预习、实验纪律、实验动手能力、实验报告结果及编程技巧,进行综合评定,给出A(90)、B(80)、C(70)、D(60)、E(不及格)。

实验六汇编语言程序的调试与运行

一.实验目的

1.学习数据传送和算术运算指令的用法

2.熟悉在PC机上编辑、汇编、连接、调试和运行汇编语言程序的过程。

二.实验内容

将两个多位十进制数相加,要求被加数和加数均以ASCII码形式各自顺序存放在DATA1和DATA2为首的5个内存单元中,结果送回DATA1处。

三.程序框图

图3.1两个多位十进制相加程序流程图

四.调试步骤

1.编辑源程序,建立一个以后缀为.ASM的文件.

2.汇编源程序,检查程序有否错误,有错时回到编辑状态,修改程序中错误行。

无错时继续第3步。

3.连接目标程序,产生可执行程序。

4.DEBUG调试可执行程序,记录数据段的内容。

5.在操作系统状态下,运行程序,并记录屏幕显示内容。

被加数

加数

屏幕显示内容

12732

06815

10732

43691

65087

17631

实验七循环程序设计

一、实验学时:

2

二、实验类型:

验证性

三、开出要求:

必修

四、实验目的

1、掌握循环程序的结构。

2、掌握循环程序的设计方法

五、实验内容

1.试编写一个汇编语言程序,要求依次输出ASCII码0---127对应的128个字符。

2.假设以GRADE为首地址的10个字的数组中存有一组学生成绩:

89,79,20,60,98,81,78,83,93,71,请编一完整程序找出GRADE中第一位学生的成绩名次并输出名次。

(提示:

一个学生的名次等于成绩高于等于该学生的人数加1)。

六、实验条件

DOS运行环境

七、实验报告

1、程序的功能、结构,程序流程图。

2、上机实验步骤、实验所遇到的问题及解决的方法,实验体会。

八、实验成绩评定办法

根据学生的实验预习、实验纪律、实验动手能力、实验报告结果及编程技巧,进行综合评定,给出A(90)、B(80)、C(70)、D(60)、E(不及格)。

实验八顺序程序设计

一.实验目的:

1、熟练掌握编写汇编语言原程序的基本方法和基本框架。

2、掌握查表法和查表指令XLAT。

3、熟练使用DEBUG调试程序。

二.实验内容:

用查表的方法将一位十六进制数转换成与它相应的ASCII码,并将结果存放到ASCI单元中。

三.编程提示:

既然指定用查表的方法,那么首先要建立一个表TABLE。

我们在表中按照十六进制数从小到大的顺序放入他们对应的ASCII码值。

DATASEGMENT

TABLEDB30H,31H,32H,33H,34H,35H,36H,37H

DB38H,39H,41H,42H,43H,44H,45H,46H

HEXDBX;X为待转换的十六进制数

ASCIDB?

;存放转换后的ASCII码

DATAENDS

四.实验要求:

实验前要做好充分准备,包括汇编程序清单、调试步骤、调试方法,以及对程序结果的分析等

五.实验报告:

1、程序说明。

说明程序的功能、结构。

2、调试说明。

包括上机调试的情况、上机调试步骤、调试所遇到的问题是如何解决的,并对调试过程中的问题进行分析,对执行结果进行分析。

3、写出源程序清单和执行结果。

MOVAL,HEX

ADDAL,30H

CMPAL,39H

JBELAB2

ADDAL,7

LAB:

MOVASCII,AL

MOVAH,4CH

INT21H

实验九子程序设计

一.实验目的

1.掌握循环程序设计的方法(两重性循环结构)

2.掌握正确分配与使用寄存器。

二.实验内容与要求

3.以GRADE为首地址的10个字的数组中保存有学生成绩。

建立一个10个字的RNAK数组,并根据GRADE中的学生成绩将学生名次填入RANK数组中(提示:

一个学生的名次等于成绩高于等于该学生的人数加1)。

4.寄存器分配情况说明如下:

5.AX存放当前被测学生的成绩

6.BX存放当前被测学生的相对地址指针

7.CX内循环计数值

8.DX存放当前被测学生的名次计数值

9.SI内循环测试时的地址指针

10.DI外循环计数值

三.程序框图

 

图7.1程序框图

 

实验十循环程序设计

一.实验目的:

1、掌握接受键盘数据的方法,并了解将键盘数据显示时,须转为ASCII码的原理。

2、掌握DOS功能调用的编程方法。

二.实验内容:

试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来。

三.编程提示:

利用DOS功能调用INT21H的1号功能从键盘输入字符和2号功能在显示器上显示一个字符。

四.实验要求:

实验前要做好充分准备,包括汇编程序清单、调试步骤、调试方法,以及对程序结果的分析等。

五.实验报告:

1、程序说明。

说明程序的功能、结构。

2、调试说明。

包括上机调试的情况、上机调试步骤、调试所遇到的问题是如何解决的,并对调试过程中的问题进行分析,对执行结果进行分析。

3、写出源程序清单和执行结果。

 

实验十一DOS中断及BIOS中断程序设计

一.实验目的

1.掌握程序设计方法,合理划分层次

2.掌握子程序的调用与返回的方法

3.了解子程序的嵌套与递归

二.实验内容与要求

编制一程序,要求键入一个班的学生成绩,并存放于50字的ERADE数组中,然后根据ERADE中的成绩,把学生名次填入50字的RANK数组中,再按学号顺序把名次从终端上显示出来。

提示:

程序MAIN

功能:

根据输入的学生成绩,计算并显示出学生名次。

程序INPUT

功能:

接收一个班级学生的成绩,各成绩之间用空格隔开。

程序RANKP

功能:

计算一个班级学生的名次。

(可参照循环程序

(一)中的程序段)

程序OUTPUT

功能:

输出(显示)一个班级的学生名次

程序DECIBIN

功能:

十进制转换二进制,存入BX

程序BINDEC

功能:

十进制转换二进制,并在屏幕上显示。

程序DEC_DIV

功能:

BX的内容除以CX的内容,并在屏幕上显示一位商。

三.程序框图:

图8.1程序流程图

四.步骤

1.自编主程序与子程序。

2.输入本班级某门基础课成绩。

实验十二综合程序设计

一、实验学时:

4

二、实验类型:

综合性

三、开出要求:

必修

四、实验目的

1、掌握分支、循环、子程序调用、DOS功能调用等基本的程序结构。

2、掌握综合程序的编制及调试方法。

五、实验内容

设有十个学生成绩分别是76,69,84,90,73,88,99,63,100和80分。

试编制一个子程序,统计低于60分,60~69分,70~79分,80~89分,90~99分和100分的人数,并输出显示统计结果。

六、实验条件

DOS运行环境

七、实验步骤

1、编写的程序中,成绩分等部分要求采用分支结构,统计所有成绩则用循环结构完成,显示统计结果采用DOS功能调用。

2、统计学生成绩和显示统计结果两部分程序要求用子程序结构来完成。

八、实验报告

1、说明程序的功能、结构,画出程序框图。

2、说明上机调试的情况、上机调试步骤、调试所遇到的问题是如何解决的,并对调试过程中的问题进行分析,对执行结果进行分析。

3、写出程序执行结果。

4、体会和意见。

九、实验成绩评定办法

根据学生的实验预习、实验纪律、实验动手能力、实验报告结果及编程技巧,进行综合评定,给出A(90)、B(80)、C(70)、D(60)、E(不及格)。

实验十三综合程序设计

一.实验目的:

1、掌握分支、循环、子程序调用、DOS功能调用等基本的程序结构。

2、掌握综合程序的编制及调试方法。

二.实验内容:

设有十个学生成绩分别是76,69,84,90,73,88,99,63,100和80分。

试编制一个子程序,统计低于60分,60~69分,70~79分,80~89分,90~99分和100分的人数,并输出显示统计结果。

三.编程提示:

1、成绩分等部分采用分支结构,统计所有成绩则用循环结构完成,显示统计结果采用DOS功能调用。

2、统计学生成绩和显示统计结果两部分内容用子程序结构来完成。

四.实验报告:

1、程序说明。

说明程序的功能、结

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2