微机原理实验.docx

上传人:b****3 文档编号:3494627 上传时间:2022-11-23 格式:DOCX 页数:14 大小:212.08KB
下载 相关 举报
微机原理实验.docx_第1页
第1页 / 共14页
微机原理实验.docx_第2页
第2页 / 共14页
微机原理实验.docx_第3页
第3页 / 共14页
微机原理实验.docx_第4页
第4页 / 共14页
微机原理实验.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

微机原理实验.docx

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

微机原理实验.docx

微机原理实验

实验一数据传送实验

实验目的

1.熟练掌握汇编语言上机步骤

2.掌握数据传送指令的使用规则

3.了解汇编语言程序格式

4.掌握汇编语言程序调试方法

实验步骤

题目一:

数据段定义如下:

DATASEGMENT

arr1DB'abcdefghr"

MIDDB'********'

arr2DB9DUP(?

DATAENDS编写程序,将arr1起始的100个字节倒序存放到arr2起始的存储区中。

实验步骤:

1.在文本编辑器中编辑程序。

例如,在将程序输入到记事本中,保存时文件的扩展名应为ASM。

文件名其他字符自定,注意要少于8个英文字符。

例如,文件名可以是:

1.ASM或qwe.asm等等。

2.进入DOS方式。

如果是windowsxp和windows2000系统,使用“开始”|“运行”命令,在运行框中输入CMD,然后单击“确定”按钮。

如果是WINDOWS98系统,则命令应为“command”。

3.将编辑好的ASM文件汇编成目标文件(OBJ文件)

在DOS提示符下,进入MASM文件夹。

(若MASM文件夹在C盘,则在DOS下进入该文件夹的命令为:

CD\MASM)。

进入之后,在提示符下键入命令:

masm并按回车键。

然后在屏幕的提示下,键入要汇编的文件的文件全名。

例如,键入第一步中建立的1.asm文件。

如果源文件没有错误,那么就可以生成OBJ文件(例如,生成了1.obj),如果有错误,就要修改源程序文件。

4.将生成的目标文件连接成可执行文件(EXE文件)

在提示符下键入命令:

LINK并按回车键,在提示下输入要连接的目标文件的文件名(1.obj),成功后则会生成1.EXE文件。

5.运行生成的可执行文件。

可以在DOS的提示符下或者WINDOWS下运行程序,观察程序的运行结果。

但是如果程序的运行结果不显示在屏幕上,或者程序的结果与预期的不符,那么就需要使用调试工具来调试程序。

6.调试程序。

在提示符下键入DEBUG1.exe来调试程序。

调试命令

U——反汇编

G——执行程序

D——查看存储器

E——修改存储器

R——查看/修改寄存器

Q——退出调试环境

命令用法:

U——使用U命令时,先用U0从程序最开始处反汇编。

如果一个屏幕没有完全显示下全部指令,则以后用U命令继续反汇编。

G——使用G命令时,可以直接用G来执行所有指令,也可以在G后面跟上一个偏移地址x,使程序执行到x处然后暂停,再次用G命令则程序继续执行。

当G后面有偏移地址时,执行到了该处,屏幕同时给出当前寄存器的内容。

例如,使程序从指令偏移地址为0000处执行到001F处,所用的指令为G001F。

D——查看存储器内容的时候,要同时给出段地址和偏移地址。

例如本例中查看数据段的命令为D13F3:

0000

如果存储单元的内容表示某个字符的ASCII码,则注释区会有该字符的提示;否则注释区的内容没有意义。

E——修改存储器的内容

使用方法与D命令类似

R——查看/修改寄存器内容

直接用R命令可以查看所有寄存器的内容,如果后面,上某个寄存器名,则可修改它例如RAX。

7.调试时,要查看程序执行前和执行后存储器的变化。

所以在程序执行前后都要查看存储器的内容。

8.参考程序

DATASEGMENT

arr1DB'abcdefghr'

MIDDB'********'

arr2DB9DUP(?

DATAENDS

codesegment

assumecs:

code,ds:

data

mainprocfar

begin:

pushds

movax,0

pushax

movax,data

movds,ax

movcx,100

movsi,offsetarr1

movdi,offsetarr2

adddi,9

contin:

moval,[si]

mov[di],al

incsi

decdi

deccx

jnzcontin

ret

mainendp

codeends

endbegin

题目2编程从键盘上输入一个十以内的数字n,则屏幕显示n个‘a’。

这个程序不需要调试,因为它在屏幕上有输出结果。

参考程序:

codesegment

assumecs:

code

mainprocfar

begin:

pushds

movax,0

pushax

xorax,ax

movah,01h

int21h

andal,0fh

movcl,al

movdl,'a'

contin:

movah,02h

int21h

deccl

jnzcontin

ret

mainendp

codeends

endbegin

实验二算术/逻辑运算指令

实验目的

1.掌握算术/逻辑运算指令的规则和使用方法。

2.熟练掌握程序调试步骤。

3.熟练汇编语言程序格式

4.了解结构化程序设计思想

实验步骤

题目一:

数据段定义如下:

DATASEGMENT

FIRSTDB90H,5FH,6EH,69H,4AH,3BH

SECONDDB6DUP(?

DATAENDS

编写程序,将FIRST开始的6个字节十六进制数左移两位,结果存放在SECOND开始的存储区中。

按照实验一的步骤调试此程序,在实验报告中要给出程序的运行结果。

参考程序

DATASEGMENT

FIRSTDB90H,5FH,6EH,69H,4AH,3BH

SECONDDB6DUP(?

DATAENDS

codesegment

assumecs:

code,ds:

data

mainprocfar

begin:

pushds

movax,0

pushax

movax,data

movds,ax

movsi,offsetfirst

movdi,offsetsecond

movch,6

movcl,2

contin:

moval,[si]

salal,cl

mov[di],al

incsi

incdi

decch

jnzcontin

ret

mainendp

codeends

endbegin

题目二:

设有如下定义:

datasegment

str1db'abcdefghijk'

str2db'abcdefghikk'

resultdb?

dataends

编写一个程序,比较两个字符串是否相等。

若两个字符串相等,则在RESULT单元存放字符'E';否则存放字符'N'。

按照实验一的步骤调试此程序,并在实验报告中给出结果。

当把语句“str2db'abcdefghikk'”改为“str2db'abcdefghijk'”时,给出程序的另一个结果。

参考程序:

datasegment

str1db'abcdefghijk'

str2db'abcdefghikk'

resultdb?

dataends

codesegment

assumecs:

code,ds:

data

mainprocfar

begin:

pushds

movax,0

pushax

movax,data

movds,ax

moves,ax

movsi,offsetstr1

movdi,offsetstr2

movcx,11

cmpsb

andcx,0

jzgoon

moval,'E'

movresult,al

jmpover

goon:

moval,'N'

movresult,al

over:

ret

mainendp

codeends

endbegin

实验三8259A中断控制器实验

1.实验中所用8259A介绍

实验四8253计数器实验

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

当前位置:首页 > 党团工作 > 入党转正申请

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

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