微机原理实验指导书文档格式.docx

上传人:b****5 文档编号:19418801 上传时间:2023-01-06 格式:DOCX 页数:40 大小:60.18KB
下载 相关 举报
微机原理实验指导书文档格式.docx_第1页
第1页 / 共40页
微机原理实验指导书文档格式.docx_第2页
第2页 / 共40页
微机原理实验指导书文档格式.docx_第3页
第3页 / 共40页
微机原理实验指导书文档格式.docx_第4页
第4页 / 共40页
微机原理实验指导书文档格式.docx_第5页
第5页 / 共40页
点击查看更多>>
下载资源
资源描述

微机原理实验指导书文档格式.docx

《微机原理实验指导书文档格式.docx》由会员分享,可在线阅读,更多相关《微机原理实验指导书文档格式.docx(40页珍藏版)》请在冰豆网上搜索。

微机原理实验指导书文档格式.docx

调试情况,如上机时遇到的问题及解决办法,观察到的现象及其分析,对程序设计技巧的总结及分析等;

程序的输出结果及对结果的分析;

实验的心得体会。

(3)程序框图

(4)程序清单

4.为了更好地进行上机管理,要求用硬盘存储程序,并建立和使用子目录,以避免文件被别人删除。

为便于统一管理硬盘中的文件,要求实验者在e:

\学号目录下建立自己的文件,文件按以下格式命名:

字母学号.扩充名,其中字母取a~z的26个英文字母,按实验顺序从a至z排列,学号取后面的6位。

如学号为20043727的学生第三个实验第一个源程序所对应的文件名为c1043727.ASM,本次实验的第二个源程序为c2043727,实验报告对应的文件名为c043727.doc。

实验报告写完后,将源程序文件及实验报告上传到教师机上相应的目录中。

具体目录上机时由指导老师告之。

三、实验的基本方法

1.从教师机下载汇编程序MASM.EXE和连接程序LINK.EXE到学生机的相应文件夹(文件夹以学号命名)下。

2.进入DOS环境中相应的目录下。

如学生的文件来为:

d:

\20043727,则对应的操作为

(1)选择windows的“开始”→“程序”→“附件”→“命令提示符”

(2)在DOS命令提示符下输入如下命令(其中带下划线部分为输入内容)。

C:

\DocumentsandSettings\new>

D:

\>

cd20043727

\20043727>

edita1043727.asm

进入编辑程序,在其环境下输入编好的源程序,然后在盘上生成一个扩展名为.asm的文件。

3.用宏汇编程序MASM,将扩展名为.ASM的源程序汇编成目标程序,即生成盘上扩展名为.OBJ的文件。

若编过程出现错误,则无法生成目标程序,需要回到编辑程序进行修改,修改后重新汇编直到无错出现。

4.用连接程序LINK,将扩展名为.OBJ的目标程序连接装配成可执行文件,即在盘上生成扩展名为.EXE的文件。

5.用调试程序DEBUG,调试扩展名为.EXE的文件,以发现程序中的逻辑错误并进行排除。

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

一.实验目的:

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

二.实验内容:

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

1、DEBUG程序的启动

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

C>

DEBUG[d:

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

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

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

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

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

2、DEBUG的主要命令

汇编命令A,格式为:

-A[地址]

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

反汇编命令U,有两种格式:

1)-U[地址]

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

2)-U范围

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

-U04BA:

01000108或–U04BA:

0100L9

此二命令是等效的。

运行命令G,格式为:

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

]]

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

追踪命令T,有两种格式:

1)逐条指令追踪:

-T[=地址]

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

2)多条指令追踪:

-T[=地址][值]

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

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

-D[地址]或-D[范围]

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

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

-E地址内容表

例如:

-E2000:

0100F3“XYZ”8D

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

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

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

-E地址

-E100:

18E4:

010089.78

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

78是程序员键入的。

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

1)显示CPU内部所有寄存器内容和标志位状态;

格式为:

-R

R命令显示中标志位状态的含义如下表所示:

标志名

置位

复位

溢出Overflow(是/否)

OV

NV

方向Direction(减量/增量)

DN

UP

中断Interrupt(允许/屏蔽)

EI

DI

符号Sign(负/正)

NG

PL

零Zero(是/否)

ZR

NZ

辅助进位AuxiliaryCarry(是/否)

AC

NA

奇偶Parity(偶/奇)

PE

PO

进位Carry(是/否)

CY

NC

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

-R寄存器名

例如打入:

-RAX

系统将响应如下:

AXFIF4

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

-RBX

BX0369

059F

则BX内容由0369改为059F

3)显示和修改标志位状态,命令格式为:

-RF

系统将给出响应,如

OVDNEINGZRACPECY-

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

OVDNEINGZRACPECY-PONZDINV

命名命令N,格式为:

-N文件名

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

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

装入命令L,它有两种功能:

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

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

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

-L[地址]

此命令装入已在CS:

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

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

写命令W,有两种格式:

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

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

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

-W[地址]

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

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

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

退出DEBUG命令Q,该命令格式为

Q

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

三.操作步骤

1.调用字处理程序建立源程序文件如图1-1所示。

DATASEGMENT

STRING1DB'

Movethecursorbackward'

STRING2DB'

MESS1DB'

Match.'

13,10,'

$'

MESS2DB'

NoMatch.'

DATAENDS

STACKSEGMENTSTACK

DB40DUP(?

STACKENDS

PROGNAMSEGMENT

ASSUMECS:

PROGNAM,DS:

DATA,ES:

DATA,SS:

STACK

MAINPROCFAR

START:

XORAX,AX

PUSHAX

PUSHDS

MOVAX,DATA

MOVDS,AX

MOVES,AX

MOVAX,STACK

MOVSS,AX

LEASI,STRING1

LEADI,STRING2

CLD

MOVCX,25

REPZCMPSB

JZMATCH

LEADX,MESS2

JMPSHORTDISP

MATCH:

LEADX,MESS1

DISP:

MOVAH,09h

INT21H

RET

MAINENDP

PROGNAMENDS

ENDSTART

图1-1

2.在DOS环境下,用汇编程序MASM对源文件汇编产生目标文件OBJ,命令格式如下:

D:

\ASM\MASM源程序文件名.asm

如汇编程序指示出错则需要重新调用编辑程序修改错误,直至汇编通过为止。

3.用连接程序link产生执行文件exe

\ASM\LINK源程序文件名.obj

4.执行程序

可直接从DOS执行程序如下:

\ASM\源程序文件名

Match

此时可看到程序的运行结果。

为了调试程序的另一部分,可重新进行编辑程序修改两个字符串的内容,使它们互不相同,如修改后的数据段为

STRINT1DB‘Movethecursorbackward.’

STRINT2DB‘Movethecursorfordward.’

Mess1DB‘Match.’,13,10,’$’

Mess2DB‘NoMatch.’,13,10,’$’

DATAENDS

然后,重新汇编、连接、执行,结果为:

Nomatch!

至此,程序已调试完毕,运行结果正确。

5.用DEBUG调试程序

另一种调试程序的方法是使用DEBUG程序。

调用格式如下:

\asm\DEBUG源程序文件名.exe

此时,DEBUG已将执行程序装入内存,可直接用g命令运行程序。

-g

Match.

为了调试程序的另一部分,可在DEBUG中修改字符串内容。

可先用u命令显示程序,以便了解指令地址。

显示结果如图1-2所示

-u

14F0:

00001EPUSHDS

000133C0XORAX,AX

000350PUSHAX

0004B8E814MOVAX,14E8

00078ED8MOVDS,AX

00098EC0MOVES,AX

000BB8ED14MOVAX,14ED

000E8ED0MOVSS,AX

00108D360000LEASI,[0000]

00148D3E1800LEADI,[0018]

0018FCCLD

0019B91900MOVCX,0019

001CF3REPZ

001DA6CMPSB

001E7406JZ0026

00208D163900LEADX,[0039]

0024EB04JMP002A

00268D163000LEADX,[0030]

002AB409MOVAH,09

002CCD21INT21

002ECBRETF

图1-2

将断点设置在程序的主要部分运行以前,并查看数据区的内容。

如图1-3所示。

-g0b

AX=14E8BX=0000CX=00AFDX=0000SP=FFFCBP=0000SI=0000DI=0000

DS=14E8ES=14E8SS=14E8CS=14F0IP=000BNVUPEIPLZRNAPENC

-d0

14E8:

00004D6F766520746865-20637572736F7220Movethecursor

00106261636B77617264-2E4D6F7665207468backward.Moveth

00206520637572736F72-206261636B776172ecursorbackwar

0030642E4D617463682E-0D0A244E6F204D61d.Match...$NoMa

00407463682E0D0A2400-0000000000000000tch...$.........

00500000000000000000-0000000000000000................

00600000000000000000-0000000000000000................

00700000000000000000-0000000000000000................

图1-3

用e命令修改数据区的字符串,操作如下:

-e29

002962.6661.6f63.726B.7777.6161.7272.64

003064.2e2E.20

再次用d命令查看修改结果。

00206520637572736F72-20666F7277617264ecursorforward

00302E204D617463682E-0D0A244E6F204D61.Match...$NoMa

图1-4

用g命令运行程序,结果为:

NoMatch....

用q命令退出debug.

-q

至此,程序已调试完毕。

为了进一步说明debug命令的使用方法,我们再次重复上述程序的调试过程,只是使用e、a、f来修改数据区的内容而已。

必须注意,由于在用debug调试程序时,只能修改当时有关的内存单元内容,因此重新用debug装入执行程序时,仍是原来在磁盘文件中的内容。

操作如下:

命令提示符:

debuga1.exe

-e29'

forward.'

20

图1-5

可见这种e命令方式避免使用ASCII码进入,对用户是比较方便的。

其中最后一个20是空格争的ASCII码,以补足原来的字节数。

也可使用a命令把数据区恢复原状,具体如下:

-a14e8:

29

0029db'

backward.'

0032

00500000000000000000-0000000000000000..............

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

当前位置:首页 > PPT模板 > 动物植物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1