微机原理实验指导书_第1页
微机原理实验指导书_第2页
微机原理实验指导书_第3页
微机原理实验指导书_第4页
微机原理实验指导书_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

微机原理及其接口技术

电子与信息工程学院改编

目录

第一章汇编语言程序上机实验.............................1

1.1汇编语言程序上机应具备的工具软件.................1

1.2调试程序(DEBUG)功能简介..........................1

1.3预习报告格式......................................3

1.4实验报告格式.......................................3

第二章软件实验.........................................4

实验一Debug程序的使用................................4

实验二.汇编语言上机环境及基本步骤....................10

实验三两个多位十进制数相加的实验...................13

实验四循环结构程序设计...............................16

实验五子程序设计.....................................18

第三章硬件实验........................

3.1DICE—8086K实验箱使用说明.......

3.2系统安装与使用..................

实验一存储器读写实验...............

实验二8259单级中断控制器实验......

实验三8255A并行口实验.............

实验四定时器/计数器..............

实验五数码管显示实验...............

第一章汇编语言程序上机实验快览微机原理及其接口技术实验

第一章汇编语言程序上机实验

1.1汇编语言程序上机应具备的工具软件

汇编语言程序上机操作,必须经过文件的“建立一汇编一连接一执行”四个阶段。因此系统磁盘

上还应具备下列T具软件C

1.全屏幕编辑程序。用以将程序键入内容,经编辑后生成源文件(.ASM)存盘。常用的编辑程序

有记事本、EDIT.EXE,SK.EXE。

2.宏汇编程序,如MS的MASM.EXE,用以将源文件(.ASM)汇编生成二进制代码的目标文件(.OBJ)、

列表文件(.LST)、及符号交叉引用表文件(.CRF)。

3.连接程序LINK.EXEa用以将目标文件(.OBJ)与欲使用的库文件(.LIB)及其它目标模块,

连接装配生成一个可执行文件(.EXE)、及各段空间分配的列表文件(.MAP)。

4.调试程序DEBUG.COM。用以对.EXE或.COM文件进行调试,排错。

值得提出的是,人工输入的现成程序,或自编程序,难免不出现键入错误、疏漏错误、语法错误

及逻辑错误。虽然在静态自查及汇编阶段均可被查出,但程序内在的逻辑功能性错取,还必须借助调

试工具,在监测环境下动态运行程序时才能表露出来。因此程序调试这一环节必不可少。

1.2调试程序(DEBUG)功能简介

<1>A一一行汇编

命令格式:A[起始地址]

(起始地址缺省时:前面未用过汇编命令,则从CS:100单元开始:前面已用过汇编命令,则仅紧接

上述汇编的最后一个单元开始。)退出A命令:<Ctrl〉+〈C〉

如:-A0100/

则可从CS:0100单元开始输入指令。

<2>U一一反汇编

命令格式:U[地址范围]

(如仅指定起始地址:则从指定的地址开始,反汇编32个字节;如未指定地址范围:则将上一个

U命令的最后一个单元地址加1作为起始地址。)

如:-U0030/

则反汇编CS:0030单元开始的指令。

<3>D--显示内存单元内容

(内容可为十六进制数或相应的ASCII码字符)

命令格式:D[地址范围]

(显示指定内存单元中的卜六进制数或相应的ASCI】码字符)。

如:-D0010/

则显示DS:0010单元的内容。

<4>E一一修改内存单元内容

命令格式:E始地址[字符串]

如:-EDS:100AABB/

1

第一章汇编语言程序上机实验快览微机原理及其接口技术实验

则将AA、BB存入DS:0100——DS:0101单元。

<5>R一一查看、修改寄存器内容

命令格式:R[寄存器名]

如:-R/

则显示所有寄存器内容、标志位状态及下一条指令。

如:-RAX/

则显示AX寄存器内容。如需修改,则输入1-4个十六进制数,再按回车。如不需修改,直接按回车。

如:-RF/

则显示八个标志位状态,如需修改,则输入此标志位的相应值,再按回车。如不需修改,直接按回车。

<6>G一一运行一一连续运行或设断点运行

命令格式:G[二起始地址][断点地址](断点地址必需是有效指令的第一个字节)

若缺省”二起始地址”,则以CS:IP(现行地址)为起始地址,程序执行到断点处,显示断点处所有

寄存器内容和八个标志位状态,以及下一条指令。

如:-G9/

(断点地址为0009)若缺省“断定地址”,程序顺序执行完毕,显示:Programtcrminatodnormally

(程序执行完毕)。

如:-G/

若前面已设过断点,然后程序再顺序执行完毕。

<7>T一一跟踪一一单步运行

命令格式:T[=起始地址][N](指令条数)若缺省”二起始地址”,则以CS:IP(现行地址)为起始地

址,程序执行N条指令后,显示断点处所有寄存器内容和八个标志位状态,及下一条指令。

如:-T5/

则执行5条指令。

如:-T/

则只执行一条指令。

注意:若调试程序中有过程调用(包括软中断调用INTN指令),则需使用P命令。(如用T命令,

程序进入调用子程序内。

如:-P/

则执行一条指令或一个子程序。

<8>Q——退出

如:-QZ

退出DEBUG返回DOS状态。

2

第一章汇编语言程序上机实验快览微机原理及其接口技术实验

1.3预习报告格式

1.实验目的与要求

2.实验内容

3.实验仪器

4.实验原理(软件实验画流程图,硬件实验画电路图)

5.实验步骤

6.实验源程序

7.实验现象或结果记录

1.4实验报告格式

1.实验目的与要求

2.实验内容

3.实验仪器

4.实验原理(软件实验画流程图,硬件实验画电路图)

5.实验步骤

6.实验源程序

7.实验现象或实验结果

8.实验总结(实验过程遇到的问题如何解决?实验体会,思考题解答等)

3

第三章硬件实验微机原理及其接口技术实验

第二章软件实验

实验一Debug程序的使用

一、实验目的

1.学习使用DFRUG调试命令.

2.学习用DEBUG调试简单程序。

3.通过程序验证码制及其对标志位的影响。

4.通过调试熟悉和掌握个寄存器的作用与特点。

二、实验内容

用DEBUG调试简单程序。

三、实验仪器

微机一台

四、实验步骤

1.由DOS进入DEBUG调试环境。

(1)C:>DEBUG将调试程序装入内存

注意:当机器控制权由DOS成功地转移给调试程序后,将显示“一”号,它是DEBUG的状态提

示符,表示可以接受调试子命令了。

(2)—R显示CPU中各寄存器当前初始内容,请记录下列各项:

AX=BX-cx=DX=BP=SI=DI=

DS=ES=ss=SP=CS=IP=

FLAG寄存器中的8个标志位状态值是:

OFDFIFSFZFAFPFCF

说明:

1)此时,调试工作区的四个段值相同,指向同一起点,表明公用一个64KB空间;

2)SS:SP指向堆栈顶单元,SP为FFFE或FFEE,正好是本段的最高可用地址,表明堆栈自动使用

最高地址,栈区由底向上生长:

3)CS:IP为约定的调试工作区地点(IP=0100),可由此装入待调试程序代码,或汇编键入的程序

小段,工作区由低址往下使用:

4)DEBUG用符号给出标志寄存器中8个标志位的当前状态,其含义如下表所示。

标志位含义’1'的对应符号'()'的对应符号

OF溢出0V有NV无

DF方向DN递减UP递增

IF中断EI允许DI禁止

SF符号NG负PL正

ZF全零ZR零NZ非零

AF辅助进位AC有NA无

PF奇偶性PE偶PO奇

CF进位CY有NC无

4

第三章硬件实验微机原理及其接口技术实验

(3)结束程序,返回DOS。

-Q

2,用DEBUG调试简单程序

例1-ACS:0106

MOVAX,1234

MOVBX,2345

MOVCX,0

ADDAX,BX

MOVCX,AX

1NT20

运行程序

(注:执行程序时IP应指向要执行的指令,需要修改时

-RIP

当前值

输入需要值该处为0106

当然也可以在T或G命令中指出程序起始地址)

-R显示各寄存器当前内容及首条指令

-T3跟踪执行三条赋值传送指令,记录寄存器及标志位变化

一T2跟踪执行相加及送和数指令,记录寄存器及标志位变化

-G执行软件中断指令INT20,机器将显示“程序正常终止”的信息,并显示“一”,表明

仍处在DEBUG的调试控制状态卜,注意未用T命令,因为我们不想进入到20H中断处理程序

中去,P命令也可实现相同操作

实验现象记录:记录每条指令执行后各相关寄存器值及标志位状态

例2—ACS:116

MOVAX40124]

MOVBXJ0126]

ADDAX,BX

MOV[0128],AX

INT20

DW2222

DW8888

DW0

设置断点分段运行程序

-G=CS:11611D从指定入口运行程序,至断点UD停,可见两个数已取至AX,BX,但还

没有求和

-G122从上一断点运行至新断点停,已完成求和并存入指定结果单元

-G完成程序

观看内存内容

-DCS:11612A显示本程序小段目标代码和数据单元内容

-UCS:11612A反汇编指定范围的内存内容-

实验现象记录:通过反汇编,记录程序执行前指定范围的内存内容,并记录每条指令执行后各相

关寄存器值及指定范围的内存内容

5

第三章硬件实验微机原理及其接口技术实验

例3—ACS:0192

MOVDXJ9B

MOVAH,9

INT21

INT20

DB'HELLO,WORLD!$'

一P命令单步执行(从P=CS:0192开始)

实验现象记录:观察每条指令执行后各寄存器的变化,记录DX,AX的变化。

思考:根据程序输入情况,考虑‘HELLO,WORLD!$'在内存中的ASCII码和地址范围

-D________________________

ASCH码为:;

例4自己设计一段小程序验证补码的加法、进位、溢出的概念;

参考程序(可对数据进行修改):

-ACS:0100

MOVAL,74

ADDAL,70

MOVAL,7A

ADDAL,94

MOVAL,43

ADCAL,65

INT20

—P命令单步执行

实验现象记录:记录每条指令执行后AX及标志位变化

例5

1.使用R命令,实现AX=0108,BX=F1AA

-R-R

2.编辑下列程序

-ACS:0100

XCHGAL,BH

SUBAX,BX

AAS

INT20

-P命令执行单步执行

实验现象记录:记录每条指令执行后,AX、BX以及标志位的变化。

例6执行下列程序,用P命令或T命令跟踪

-ACS:0100

MOVAX,0200

MOVDX,1E4F

CALLAX

6

第三章硬件实验微机原理及其接口技术实验

MOVDX,167C

ADDDH,DL

MOV10300],DX

INT20

-ACS:0200

PUSHAX

MOVAX,01OB

POPAX

RET

实验现象记录:

1)改变IP的值为0100后,用T命令单步执行

MOVAX,0200

MOVDX,1E4F两条指令后,即执行CALL指令前记录IP、SP及堆栈区域内容。

IPSP[SP-2][SP][SP+2]

AX=020OBX=OOOOCX=O0GODX=1E4FSP=00F9BP=OOOOSI=O0OODI=OOG)G

])S=073FES=073FSS=073FCS=073FIP=01O6MUUPEIPLNZACP0NC

673F:0106FFDOCALLAX

-DSS:0OF7OOFF

0?3F:O0F0A3-01G801G801000000

2)执行CALL指令后记录IP、SP及堆栈区域内容变化。

IPSP[SP-2][SP][SP+2]

诙二0200BX=O0G0CX=0G00DX=1E4FSP=QGF7BP=OO0OSI=O00GDI=0O0O

DS=G73FES=073FSS=073FCS=073FIP=QZ00MUUPEIPLMZACP0NC

073F:020050PUSHAX

-D8S:00F5OOFF

073F:OOFOA301O8-O1080108010000OG

3)执行PUSH指令后记录IP、SP及堆栈区域内容变化。

AX=0Z00BX=0O00CX=O000DX=1E4FSP=00F5BP=Q0O0SI=0OO0DI=0000

DS=073FES=073FSS=073FCS=073FIP=O201NUUPEIPLNZACPONC

073F:0Z01B8OB01MOUAX,01OB

373F:OOFOOZ3F07A30100OZ08-0108010801OOOGOOMm

4)执行POP指令后记录IP、SP及堆栈区域内容变化。

AX=OZOOBX=0OOOCX=0OOODX=1E4FSP=0OF7BP=000OSI=0000DI=0O0O

DS=G73FES=073FSS=073FCS=073FIP=0ZO5NUUPEIPLNZACPONC

073F:0ZO5C3RET

-DSS:OOF0OOFF

IG73F:O0F000050Z3F07A30108-01G8010801000000...7.....

5)执行RET指令后记录IP、SP及堆栈区域内容变化。

7

第三章硬件实验微机原理及其接口技术实验

AX=GZ0OBX=000OCX=00O0DX=1E4FSP=00F9BP=000OSI=0000DI=00OG

DS=073FES=0?3FSS=0?3FCS=073FIP=0108NUUPEIPLMZACPONC

G73F:0106BA7C16MOUDX,16?C

-DSS:O0FO0OFF

G73F:00F0OZ000O08QI3F07A3-01G80108010000GO7

6)执行MOV[0300],DX指令后,DS:[0300]中的内容为927c

7)去掉POPAX指令(想想在不重新录入指令的情况下,如何去掉指令?),重新执行1)-6),

观察运行过程,当执行RET指令后,IP为多少?为什么与之前的不同?o程序执行后DS:[0300]中

内容为6D4F

执行RET前:

AX=O10BBX=0O0GCX=O0O0DX=1E4FSP=O0F5BP=OO00SI=000©DI=00O0

DS=073FES=073FSS=O73FCS=073FIP=O2O4NUUPEIPLNZACPONC

073F:0e04C3RET

-DSS:O0F00OFF

073F:00FOOZ3F07A301000ZG8-010801

执行RET后:

hX-0101:BX=00OOCX=0O0ODX=1E4FSP=00F7BP=OOOOSI=0OOODI=OOOO

DS073FES=073FSS=073FCS=073FIP=0ZOONUUPEIPLNZACP0NC

|073F:0ZOO50PUSHAX

卜DSS:OOF0OOFF

|073F:0OFO0000OZ3F07A30108-01G601080100OOOO

执行PUSHAX后:

AX=010BBX=OOOOCX=0O0ODX=1E4FSP=00F5BP=O000SI=0000DI=0O0O

DS=G73FES=Q73FSS=073FCS=073FIP=Q2Q1NUUPEIPLNZACPONC

073F:O201B80B01MOUAX,010B

-DSS:0OFOOOFF

O73F:0OF0OZ3F07A3010B0108-010801080100GO00.7.................

执行MOVAX,01OB后:

AX=010BBX=O000CX=000ODX=1E4FSP=00F5BP=OQ0OSI=0000DI=0OOG

DS=073FES=073FSS=073FCS=0?3FIP=O2O4NUUPEIPLNZACPONC

G73F:O2O4C3RET

执行RET后:

AX=O10BBX=00O0CX=0000DX=1E4FSP=00F7BP=000O31=0000DI=0000

DS=073FES=073FSS=073FCS=073FIP=01OBNUUPEIPLNZACPONC

0?3F:O1OB00D6ADDDH,DL

-DSS:00FOOOFF

073F:O0F000OB013F07A30108-01G8010801OOOOOO...?..........

执行

ADDDH,DL

MOV[0300],DX后:

AX=010BBX=Q000CX=00O0DX=6D4FSP=Q0F7BP=0Q0OSI=00QODI=O0OO

DS=073FES=G73FSS=073FCS=073FIP=O111NUUPEIPLNZACPONC

073F:0111CD2QINT20

8

第三章硬件实验微机原理及其接口技术实验

-DDS:03O0O30F

9?3F:O3004F6DGO00GO0000Q0-0000000000000000

提示:去掉POPAX指令方法

-ACS:0204

073F:0204RET

即可

9

第三章硬件实验微机原理及其接口技术实验

实验二汇编语言上机环境及基本步骤

一、实验目的:

1.掌握编写汇编源程序的基本格式。

2.熟悉汇编语言上机环境。

3.掌握汇编源程序的编辑和修改,熟悉EDIT或记事本的使用方法。

4.掌握汇编源程序编译、连接成可执行文件的过程,熟悉MASM,LINK的使用方法。

二、实验内容:

在屏幕上显示并打印字符用“Thisisasampleprogram.M

三、实验仪器

微机一台

四、实验步骤:

1.在E盘以自己的名字的汉语拼音建立一个工作目录(文件夹,名称不要太长,不超过8个字

符比如zhangsan),将文件MASM.EXEJJNK.EXE复制到该目录下,编辑的源文件也保存到该

目录下。

从WINDOWS进入DOS环境:C:\>

2.用EDIT编辑SW1.ASM源文件。

(1)从当前目录进入自己的目录下,

C:\>E:/回车

E:\>CDzhangsan/叵车

键入EDIT并回车:

E:\zhangsan>EDIT

根据菜单提示进行各种操作。

(2)进入EDIT编辑……EDIT是一种全屏幕编辑软件,可输入、编辑、修改、保存、另存源程序

非常方便。

说明:也可在WIDNDOWS环境下用记事本编辑源文件,在保存时,保存类型应选择所有文件,

不能选择文本文件3.txt),否则在编译时会找不到源文件的。

(3)编辑新文件:

a、在EDIT编辑器中输入汇编源程序。

b、检查输入有无错误。

c、打开文件菜单FILE9选择另存为SAVEAS•一9输入文件名为:SW1.ASM9保存。

注意:保存到你自己的文件夹中

d、若需要修改此文件,用FILE菜单-选择打开OPEN1输入文件名SW1.ASM,即可修改。修

改后注意重新再存盘。

(4)编辑汇编源程序

a、在EDIT(或记事本)中输入源程序。

b、检查。

c、存盘。可保存为SW1.ASM

3.用汇编程序MASM将SW1.ASM文件汇编,生成SW1.OBJ目标文件。

(I)一般简单程序只需生成OBJ文件,可键入简化命令:

E:\zhangsan>MASMSW1;/

若有错误,则显示错误行号及错误性质,如:

SWI.ASM(5):errorA2006:undefinedsyinbor:xxxx

(2)若有错重新进入EDIT进行修改。修改后并再存盘,退出编辑,回到DOS,再汇编。

10

第三章硬件实验微机原理及其接口技术实验

E:\zhangsan>MASMSWI;/

(3)没有任何错误时,显示:

Assembling:SW\asm

表示汇编成功,生成SW1.OBJ文件。

(4)用DIR命令查看应有SWI.OBJ:

E:\zhangsan>DIRSWI.*

4.用连接程序LINK将SW1.OBJ文件连接,生成SW1.EXE可执行文件。

(1)一般仅生成SW1.EXE文件,可键入简化命令:

E:\zhangsan>LINKSWI/

若有错误,则显示错误信息,则应返回编辑、修改、存盘,再汇编、连接直到连接成功,生成

SW1.EXE可执行文件。

(2)用DIR命令查看应有SW1.EXE:

E:\zhangsan>DIRSW1.*/

5.调试与运行SW1.EXE文件

用DOS操作系统所带的DEBUG调试程序对可执行文件进行调试。

(1)E:\zhangsan>debugsw1.exe

DOS窗口出现汇编提示符

(2)用U命令反汇编。反汇编后,窗口出现从CS:0000开始到CS:001F止的内容信息,左边为地

址,中间为机器码,右边为对应的反汇编指令。

U命令显示的第一条指令是源程序中标号为START的指令MOVAX,STACK,在DEBUG下

STACK已变为具体的数值,说明系统已将堆栈段分配到具体的单元开始的的存储区,数据段类同。

'用R命令查看和修改寄存器的值

使IP指向第一条指令

(4)'用T命令单步执行程序,记录寄存器的变化情况。

(5)'用D命令查看数据段和代码段内存区内容,并记录结果。

(6)'用G命令执行程序,观察结果。

(7)'用Q命令退出DEBUGo

(8)'在DOS下直接执行程序3

E:\zhangsan>SVV1/

观察运行情况。

执行SW1.EXE文件,屏幕应显示:“Thisisasampleprogram."。由连接程序牛.成的.EXE,在DOS

F,直接键入文件名(不要扩展名.EXE)就可以把文件装入内存,并立即执行。但有的程序没有直接

显示结果;对于较复杂程序难免会出现错误,直接观察很难找到错误所在,这样就要借用调试程序进

行调试。

五、实验源程序

程序一:

,*水*木木***定义数据段*****木***

DATASEGMENT

DA1DB'Thisisasampleprogram?

DB0DH,0AH/$,

DATAENDS

,*木******定义堆栈E殳*水*求****本

11

第三章硬件实验微机原理及其接口技术实验

STACKSEGMENT

STIDB100DUP(?)

STACKENDS

・********定义代码段*********

CODESEGMENT

MAINPROCFAR

ASSUMECS:CODE,DS:DATA,SS:STACK

START:MOVAX,STACK滋堆栈段地址

MOVSS,AX

PUSHDS;返回DOS作准备

MOVAX,0

PUSHAX

MOVAX,DATA;送数据段段地址

MOVDS,AX

MOVAH,9QOS9号功能调用,显示字符串

MOVDX,OFFSETDAI

INT21H

RET

MAINENDP

CODEENDS

ENDSTART

程序二:

CODESEGMENT

ASSUMECS:CODE

START:MOVAL,33H

MOVDL,35H

ADDDL,AL

SIBDL,30H

MOVAH,02H

TNT21H

MOVAH,4CI1

INT21H

CODEENDS

ENDSTART

六、思考题

1试用另外一种方式返回DOS操作系统。

2在屏幕上显示并打印字符串“MynameisXXX!”XXX为自己姓名汉语拼音。

12

第三章硬件实验微机原理及其接口技术实验

实验三两个多位十进制数相加的实验

一、实验目的

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

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

二、实验内容

将两个多位十进制数相加,要求被加数均以ASCII码形式各自顺序存放在以DATA1和DATA2为首

的5个内存单元中(低位在前),结果送回DATA1处。

三、实验仪器

微机一台

四、实验原理

程序流程图:

五、实验步骤

1.编辑、汇编、连接生成可执行文件LW.EXE;

2.在DOS状态下启动该程序;

3.在DEBUG状态下调试研究程序工作过程.

六、实验源程序(LW.ASM)

CRLFMACRO

MOVDL,ODH

13

第三章硬件实验微机原理及其接口技术实验

MOVAH,02H;屏幕显示回车符

INT21H

MOVDL,0AH

MOVAH,02H:屏幕显示换行符

INT21H

ENDM

DATASEGMENT

DATA1DB33H,39H,31H,37H,34H

DATA2DB36H,35H,30H,38H,32H

DATAENDS

STACKSEGMENT

STADB20DUP(?)

TOPEQULENGTHSTA

STACKENDS

CODESEGMENT

ASSUMECS:CODE,DS:DATA,SS:STACK,ES:DATA

START:MOVAX.DATA

MOVDS,AX

MOVAX,STACK

MOVSS,AX

MOVAX,TOP

MOVSP.AX

MOVSI,OFFSETDATA2

MOVBX,05

CALLDISPL;显示5个加数

CRLF

MOVSLOFFSETDATA1

MOVBX,05

CALLDISPL;显示5个被加数

CRLF

MOVDI.OFFSETDATA2

CALLADDA

MOVSI.OFFSETDATA1

MOVBX,05

CALLDISPL

CRLF

MOVAX,4C00H;返回DOS操作系统

INT21H

DISPLPROCNEAR

DS1:MOVAH,02

MOVDL,[SI+BX-1]

INT21H:显示单字符

DECBX

14

第三章硬件实验微机原理及其接口技术实验

JNZDSI

RET

DISPLENDP

ADDAPROCNEAR

MOVDX,SI

MOVBRDI

MOVBX,05

ADI:SUBBYTEPTR[SI+BX-l],30H

SUBBYTEPTRfDI+BX-1],30H

DECBX

JNZADI

MOVSI,DX

MOVDLBP

MOVCX,05

CLC

AD2:MOVALJSI]

MOVBL,[DI]

ADCAUBL

AAA;ASCII加法调整指令

MOV[SI],AL

INCSI

INCDI

LOOPAD2

MOVSLDX

MOVDLBP

MOVBX,05

AD3:ADDBYTEPTR[SI+BX-I],30H

ADDBYTEPTR[DHBX-1],30H

DECBX

JNZAD3

RET

ADDAENDP

CODEENDS

ENDSTART

15

第三章硬件实验微机原理及其接口技术实验

实验四循环结构程序设计

一、实验目的

1.掌握循环程序的结构及执行过程;

2.掌握循环控制指令的功能;

3.掌握循环程序设计方法与调试方法。

二、实验内容

1.单重循环程序设计。

已知当前数据段中DATA1和DATA2开始分别存放若干字节数据,数据个数相同,编制程序检查

数据块中的数据是否相同,若相同,则在屏幕上显示I;否则显示0。

三、实验仪器

微机一台

四、实验原理

五、实验步骤

1.编辑、汇编、连接生成可执行文件;

2.在DOS状态下启动该程序;

3.在DEBUG状态下调试研究程序工作过程.

六、实验源程序

参考程序

・************FXAMASM*****************

DSEGSEGMENT

DATA1DB,ABCDEFG3'

DATA2DB'ABCDEF4G'

CNTDW8

DSEGENDS

CSEGSEGMENT

ASSUMECS:CSEG,DS:DSEG

START:MOVAX,DSEG

MOVDS,AX

MOVDL,31H;1的ASCII码送DL

LEASI,DATA1

LEADI,DATA2

MOVCX,CNT

DECSI

DECDI

AGAIN:INCSI

INCDI

MOVAL,[SI]

CMPAL,[DI]

LOOPZAGAIN

JZDISP

DECDL

D1SP:MOVAH,2

INT21H

MOVAH,4CH;返回DOS

16

第三章硬件实验微机原理及其接口技术实验

INT21H

CSEGENDS

ENDSTART

2.双重循环程序设计

见教材P163例题4-5:设有一个首地址为ARRAY的n字数组,试编制程序使该数组中的数按从

大到小的顺序排列。

DSEGSEGMENT

ARRAYDWNDUP();定义N字数组

DSEGENDS

CSEGSEGMENT

ASSUMECS:CSEG,DS:DSEG

START:MOVAX.DSEG

MOVDS,AX

MOVCX,N-l;设置内循环计数器初始值

L0P1:MOVDI,CX;设置外循环计数器初始值

MOVBX,0000H;设地址指针BX=OOOOH

MOVDL,OOH;清交换标志(置成不交换状态)

LOP2:MOVAX,ARRAYIBX];相邻两数比较

CMPAX,ARRAY[BX+2]

JGELOP3;若符合排序规定,转移

XCHGAX,ARRAY[BX+2];若不符合排序规定,两数交换

MOVARRAY[BX],AX

MOVDL,0IH

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论