微型计算机原理实验1-数据传送_第1页
微型计算机原理实验1-数据传送_第2页
微型计算机原理实验1-数据传送_第3页
微型计算机原理实验1-数据传送_第4页
微型计算机原理实验1-数据传送_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

1、精选优质文档-倾情为你奉上精选优质文档-倾情为你奉上专心-专注-专业专心-专注-专业精选优质文档-倾情为你奉上专心-专注-专业实验一数据传送一、实验目的1.熟悉8086指令系统的数据传送指令及8086的寻址方式。2.利用Turbo Debugger调试工具来调试汇编语言程序。二、实验预习要求1.复习8086指令系统中的数据传送类指令和8086的寻址方式。2.预习Turbo Debugger的使用方法:a如何启动Turbo Debugger;b如何在各窗口之间切换;c如何查看或修改寄存器、状态标志和存储单元的内容;d如何输入程序段;e如何单步运行程序段和用设置断点的方法运行程序段。3.按照题目要

2、求预先编写好实验中的程序段。三、实验任务1.通过下述程序段的输入和执行来熟悉Turbo Debugger的使用,并通过显示器屏幕观察程序的执行情况。练习程序段如下:MOV BL,08HMOV CL,BLMOV AX,03FFHMOV BX,AXMOV DS:0020H,BX 2.用以下程序段将一组数据压入(PUSH堆栈区,然后通过不同的出栈顺序出栈,观察出栈后数据的变化情况。压栈程序段如下:MOV AX,0102HMOV BX,0304HMOV CX,0506HMOV DX,0708HPUSH AXPUSH BXPUSH CXPUSH DX1、POP DXPOP CXPOP BXPOP AX

3、2、POP AXPOP BXPOP CXPOP DX 3、POP CXPOP DXPOP AXPOP BX 3.指出下列指令的错误并加以改正,上机验证之。(1 MOV BX,SI原因:两个操作数不能同时为存储器操作数修改:改为MOV BX,SI(2 MOV AH,BX原因:MOV操作指令中两个操作数字长必须相同修改:改为MOV AX,BX(3 MOV AX,SIDI原因:源操作数中同时出现两个变址寄存器修改:改为MOV AX,BXDI(4 MOV BYTE PTRBX,2000H原因:MOV操作指令中两个操作数字长必须相同修改:改为MOV WORD PTRBX,2000H(5 MOV CS,A

4、X原因:一般情况下,代码寄存器CS不能作为目标操作数修改:改为MOV AX,CS(6 MOV DS,2000H原因:不能用立即数直接给段寄存器赋值修改:改为MOV DX,2000HMOV DS,DX4. 设置各寄存器及存储单元的内容如下:(BX=0010H,(SI=0001H(10010H=12H,(10011H=34H,(10012H=56H,(10013H=78H (10120H=0ABH,(10121H=0CDH,(10122H=0EFH说明下列各条指令执行完后AX寄存器中的内容,并上机验证。(1M OV AX,1200H执行后AX=1200H (2M OV AX,BX执行后AX=001

5、0H (3M OV AX,0120H执行后AX=CDABH (4M OV AX,BX执行后AX=3412H (5M OV AX,0110HBX执行后AX=CDABH (6M OV AX,BXSI执行后AX=5634H (7M OV AX,0110HBXSI执行后AX=EFCDH 5. 将DS:1000H字节存储单元中的内容送到DS:2020H单元中存放。试分别用8086的直接寻址、寄存器间接寻址、变址寻址、寄存器相对寻址传送指令编写程序段,并上机验证结果。直接寻址:MOV AX,1000HMOV 2020H,AX 寄存器间接寻址:MOV SI,1000HMOV AX,SIMOV SI,2020

6、HMOV SI,AX 变址寻址:MOV BX,1000H MOV SI,0HMOV AX,BXSI MOV SI,1020H MOV BXSI,AX 寄存器相对寻址: MOV BX,1000HMOV AX,0HBXMOV 1020HBX,AX 6. 设AX寄存器中的内容为1111H,BX寄存器中的内容为2222H,DS:0010H 单元中的内容为3333H。将AX寄存器中的内容与BX寄存器中的内容交换,然后再将BX寄存器中的内容与DS:0010H单元中的内容进行交换。试编写程序段,并上机验证结果。MOV AX,1111HMOV BX,2222HMOV 0010H,3333HXCHG AX,BX

7、XCHG BX, 0010H7. 设(DS1000H,(ES2000H,有关存储器的内容如下图所示。要求将 DS 段的内容传送到 AX 寄存器, 段的内容传送到 BX 寄存器, ES 试编写程序段。 MOV CX,1000H MOV DS,CX MOV CX,2000H MOV ES,CX MOV DS:0000H,0EEFFH MOV ES:0000H,0CCDDH MOV AX,DS:0000H MOV BX,ES:0000H 程序运行结果如下: 四、 小结 Turbo Debugger 的使用方法 Turbo Debugger 界面分为以下几个部分: 菜单栏:实现打开、保存、运行等操作

8、代码段区:可以在 cs:ip 指定的内存位置输入指令 寄存器区:可以设置或者查看寄存器的值 标志寄存器区:可以设置或者查看标志寄存器中各标志位的值 数据段或附加段区:可以在 ds:段内偏移地址指定的内存位置设置或者查 看存储器单元的值,以字节为单位 堆栈段区:可以设置或者查看堆栈中的值,以字为单位 操作方式如下: (1) 在代码段区光标所在位置每输入一条指令, 就单击回车或者 OK 键完成该 指令的输入 (2) 如果采用单步执行方式,则每按一次 F7 或 F8,将执行 CS:IP 所在位置的 一条指令, 同时光标移到下一条指令所在位置,已执行指令影响到的寄存 器将被突显出来 (3) 由于当前数

9、据段区所显示的内容未包含最后一条指令所访问的存储单元, 因此没有看到执行结果, 可以连续按 Tab 键或者点击鼠标定位到数据段区, 再按 Alt-F10,打开局部菜单,然后选择 Goto 命令,输入要查看的存储单 元的地址,按回车或者点击 OK 按钮完成地址的输入 (4) 如果要再次执行程序, 需要先定位到代码段区第 1 条指令所在位置,然后 单击 Alt-F10,打开局部菜单并选择 New CS:IP 命令,此时代码区的光 标和指针符号都停留在第 1 条指令所在位置,寄存器区 IP 的值由于受到 该操作的影响会被重新赋值,并被突显出来 (5) 如果要执行整个程序段, 可以将代码区的光标停留最后一条指令的下一行, 按 F2 键设置断点,按 F4 或 F9 可以一次从程序段的起始位置执行到断点 所在位置 宁可累死在路上,也不能闲死在家里!宁

温馨提示

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

评论

0/150

提交评论