微型计算机原理实验1数据传送doc.docx

上传人:b****2 文档编号:1064796 上传时间:2023-04-30 格式:DOCX 页数:9 大小:326.33KB
下载 相关 举报
微型计算机原理实验1数据传送doc.docx_第1页
第1页 / 共9页
微型计算机原理实验1数据传送doc.docx_第2页
第2页 / 共9页
微型计算机原理实验1数据传送doc.docx_第3页
第3页 / 共9页
微型计算机原理实验1数据传送doc.docx_第4页
第4页 / 共9页
微型计算机原理实验1数据传送doc.docx_第5页
第5页 / 共9页
微型计算机原理实验1数据传送doc.docx_第6页
第6页 / 共9页
微型计算机原理实验1数据传送doc.docx_第7页
第7页 / 共9页
微型计算机原理实验1数据传送doc.docx_第8页
第8页 / 共9页
微型计算机原理实验1数据传送doc.docx_第9页
第9页 / 共9页
亲,该文档总共9页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

微型计算机原理实验1数据传送doc.docx

《微型计算机原理实验1数据传送doc.docx》由会员分享,可在线阅读,更多相关《微型计算机原理实验1数据传送doc.docx(9页珍藏版)》请在冰点文库上搜索。

微型计算机原理实验1数据传送doc.docx

微型计算机原理实验1数据传送doc

实验一数据传送

一、实验目的

1.熟悉8086指令系统的数据传送指令及8086的寻址方式。

2.利用TurboDebugger调试工具来调试汇编语言程序。

二、实验预习要求

1.复习8086指令系统中的数据传送类指令和8086的寻址方式。

2.预习TurboDebugger的使用方法:

a如何启动TurboDebugger;

b如何在各窗口之间切换;

c如何查看或修改寄存器、状态标志和存储单元的内容;

d如何输入程序段;

e如何单步运行程序段和用设置断点的方法运行程序段。

3.按照题目要求预先编写好实验中的程序段。

三、实验任务

1.通过下述程序段的输入和执行来熟悉TurboDebugger的使用,并通过显示器屏幕观察程序的执行情况。

练习程序段如下:

MOVBL,08H

MOVCL,BL

MOVAX,03FFH

MOVBX,AX

MOVDS:

[0020H],BX

2.用以下程序段将一组数据压入(PUSH堆栈区,然后通过不同的出栈顺序出栈,观察出栈后数据的变化情况。

压栈程序段如下:

MOVAX,0102H

MOVBX,0304H

MOVCX,0506H

MOVDX,0708H

PUSHAX

PUSHBX

PUSHCX

PUSHDX

1、POPDX

POPCX

POPBX

POPAX

2、POPAX

POPBX

POPCX

POPDX

3、POPCX

POPDX

POPAX

POPBX

3.指出下列指令的错误并加以改正,上机验证之。

(1MOV[BX],[SI]

原因:

两个操作数不能同时为存储器操作数

修改:

改为MOVBX,[SI]

(2MOVAH,BX

原因:

MOV操作指令中两个操作数字长必须相同

修改:

改为MOVAX,BX

(3MOVAX,[SI][DI]

原因:

源操作数中同时出现两个变址寄存器

修改:

改为MOVAX,[BX][DI]

(4MOVBYTEPTR[BX],2000H

原因:

MOV操作指令中两个操作数字长必须相同

修改:

改为MOVWORDPTR[BX],2000H

(5MOVCS,AX

原因:

一般情况下,代码寄存器CS不能作为目标操作数修改:

改为MOVAX,CS

(6MOVDS,2000H

原因:

不能用立即数直接给段寄存器赋值

修改:

改为MOVDX,2000H

MOVDS,DX

4.设置各寄存器及存储单元的内容如下:

(BX=0010H,(SI=0001H

(10010H=12H,(10011H=34H,(10012H=56H,(10013H=78H(10120H=0ABH,(10121H=0CDH,(10122H=0EFH

说明下列各条指令执行完后AX寄存器中的内容,并上机验证。

(1MOVAX,1200H

执行后AX=1200H

(2MOVAX,BX

执行后AX=0010H

(3MOVAX,[0120H]

执行后AX=CDABH

(4MOVAX,[BX]

执行后AX=3412H

(5MOVAX,0110H[BX]

执行后AX=CDABH

(6MOVAX,[BX][SI]

执行后AX=5634H

(7MOVAX,0110H[BX][SI]

执行后AX=EFCDH

5.将DS:

1000H字节存储单元中的内容送到DS:

2020H单元中存放。

试分别用8086的直接寻址、寄存器间接寻址、变址寻址、寄存器相对寻址传送指令编写程序段,并上机验证结果。

直接寻址:

MOVAX,[1000H]

MOV[2020H],AX

寄存器间接寻址:

MOVSI,1000H

MOVAX,[SI]

MOVSI,2020H

MOV[SI],AX

变址寻址:

MOVBX,1000HMOVSI,0H

MOVAX,[BX][SI]MOVSI,1020HMOV[BX][SI],AX

寄存器相对寻址:

MOVBX,1000H

MOVAX,0H[BX]

MOV1020H[BX],AX

6.设AX寄存器中的内容为1111H,BX寄存器中的内容为2222H,DS:

0010H单元中的内容为3333H。

将AX寄存器中的内容与BX寄存器中的内容交换,然后再将BX寄存器中的内容与DS:

0010H单元中的内容进行交换。

试编写程序段,并上机验证结果。

MOVAX,1111H

MOVBX,2222H

MOV[0010H],3333H

XCHGAX,BX

XCHGBX,[0010H]

7.设(DS=1000H,(ES=2000H,有关存储器的内容如下图所示。

要求将DS段的内容传送到AX寄存器,段的内容传送到BX寄存器,ES试编写程序段。

MOVCX,1000HMOVDS,CXMOVCX,2000HMOVES,CXMOVDS:

[0000H],0EEFFHMOVES:

[0000H],0CCDDHMOVAX,DS:

[0000H]MOVBX,ES:

[0000H]程序运行结果如下:

四、小结TurboDebugger的使用方法TurboDebugger界面分为以下几个部分:

•••••菜单栏:

实现打开、保存、运行等操作代码段区:

可以在cs:

ip指定的内存位置输入指令寄存器区:

可以设置或者查看寄存器的值标志寄存器区:

可以设置或者查看标志寄存器中各标志位的值数据段或附加段区:

可以在ds:

段内偏移地址指定的内存位置设置或者查看存储器单元的值,以字节为单位•堆栈段区:

可以设置或者查看堆栈中的值,以字为单位操作方式如下:

(1)在代码段区光标所在位置每输入一条指令,就单击回车或者OK键完成该指令的输入

(2)如果采用单步执行方式,则每按一次F7或F8,将执行CS:

IP所在位置的一条指令,同时光标移到下一条指令所在位置,已执行指令影响到的寄存器将被突显出来(3)由于当前数据段区所显示的内容未包含最后一条指令所访问的存储单元,因此没有看到执行结果,可以连续按Tab键或者点击鼠标定位到数据段区,再按Alt-F10,打开局部菜单,然后选择Goto命令,输入要查看的存储单元的地址,按回车或者点击OK按钮完成地址的输入

(4)如果要再次执行程序,需要先定位到代码段区第1条指令所在位置,然后单击Alt-F10,打开局部菜单并选择NewCS:

IP命令,此时代码区的光标和指针符号都停留在第1条指令所在位置,寄存器区IP的值由于受到该操作的影响会被重新赋值,并被突显出来(5)如果要执行整个程序段,可以将代码区的光标停留最后一条指令的下一行,按F2键设置断点,按F4或F9可以一次从程序段的起始位置执行到断点所在位置

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

当前位置:首页 > 小学教育 > 语文

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

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