当前位置:文档之家› 8086 实验指导书

8086 实验指导书

8086 实验指导书
8086 实验指导书

第一部分实验系统简介

1.1 QTH软件环境介绍

QTH-2008PCI实验仪提供了16位和32位两种微机接口集成实验环境,16位的开发环境“QTH-2008PCI-B”是通过PC机的串行接口与实验仪上的8088/8086H模块相连来实现系统开发的,它实际上是通过RS232接口仿真8088/8086的ISA总线环境的;32位的开发环境“QTH-2008PCI-B”是通过PC机的PCI插槽与实验仪上的PCI9052模块相连来实现系统开发的,它通过PCI插卡和PCI9052桥接芯片为用户提供了一个仿真ISA接口,同时它也提供了PCI总线控制芯片全开放的用户总线接口,使用户可以直接开发32位的应用程序。

“QTH-2008PCI-B”可运行于Windows98/Me/2000/XP操作系统。但由于从Windows2000/XP操作系统开始,不再提供用汇编语言直接对低层口地址的操作以及BIOS、DOS功能调用的支持。因此,在Windows2000/XP操作系统下“QTH-2008PCI-B”系统暂不支持BIOS、DOS功能调用,进行一般的汇编语言实验时也必须先打开实验仪电源;而“QTH-2008PCI-B”系统目前只能通过C语言对端口地址进行操作,虽不能用汇编语言直接对端口地址操作,但可进行一般的汇编语言练习,包括部分DOS 功能调用,而且可以运行于没有安装QTH-2008PCI实验仪的PC机。

因此,在进行纯汇编语言练习时,使用“QTH-2008PCI-B”系统;进行接口操作时,则应使用“QTH-2008PCI”系统。两种系统的使用方法非常接近,掌握一种系统的使用后,另一种系统自然就会使用了。

1.2 QTH软件系统的使用

一、安装及进入QTH 系列开发系统

QTH 系列开发系统的软件安装非常简单,只要运行随机光盘提供的Setup.exe 应用程序,所有操作均按默认选项进行即可。安装完成后会在桌面和“开始”菜单生成对应的图标和程序组。双击桌面上的“QTH-2008PCI-B”或“QTH-2008PCI”图标即可打开QTH 软件界面。

如果使用“QTH-2008PCI-B”进行硬件开发,应先安装PCI接口卡和驱动程序,即添加“PCI9052”设备,否则只能进行汇编语言练习。

二、QTH 系列集成软件界面

一般情况下,如果仅做汇编语言练习,须使用“QTH-2008PCI-B”集成开发环境,其调试器窗口如图1-1所示。做微机接口实验使用“QTH-2008PCI-B”集成开发环境,调试器窗口如图1-2所示。

第 1 页

图1-1 “QTH-2008PCI-B”集成开发环境窗口

图1-2 “QTH-2008PCI”集成开发环境窗口

三、QTH 系列集成软件的操作方法

QTH 系列集成软件的操作方法非常简单,一般需按如下步骤:

第 2 页

1、程序的建立。

新建或打开一个文件。

可以通过“文件(F)”菜单上的“新建(N)”命令或工具栏上的快捷按钮来新建或打开文件。

如果原来已经打开一个项目(QTH系统会保留上次运行的项目),则应先用“关闭项目”命令把项目关闭后再打开新的文件。

注意:①输入程序时的标号、指令、参数之间应隔开,隔开时用键盘左上侧的“TAB”键,会使程序排列整齐。用空格键虽也可以隔开,但要键入多次才能完成。

②程序中应加入详细的注释,用“;”隔开。

③关闭项目的快捷方法,是在左侧项目管理器窗口任意位置单击鼠标右键选择关闭

项目。

2、文件的保存。

如果是新建的文件,输入完毕后应先保存。保存时应注意以下几点:

①保存文件时一定要加扩展名“.ASM”;

②文件名长度不能大于8个字符,且不能使用中文名和空格间隔;

③文件夹的名字也不能大于8个字符,不能使用中文名和空格间隔;

④文件保存时不能存放在C盘,因一般情况下C盘为系统盘,设置有自动

还原功能,建议在D盘或E盘自建文件夹存放。

可以通过“文件(F)”菜单下的“保存(S)”命令或工具栏上软磁盘片形状的“保存”快捷按钮来保存文件。

也可通过点击下拉箭头选择“另存为(A)…”为已有的文件改名保存。

注意:①程序文件不能保存在桌面。因桌面文件的路径包含有汉字、空格及长文件名。

②建议输入新程序时,输入2行后就保存,并在输入过程中及时点击保存按钮,以

避免输入较长的程序时出现死机、断电等异常情况而需重新输入程序。

3、编译和连接。

通过“编译”命令或“编译连接”命令对源程序进行编译,如果源程序有错误,则将该行程序用红底色显示,并在信息框中出现错误信息提示。按照信息框中的错误提示,对源程序进行修改,修改完后应先保存,然后再重新编译,直至信息框中出现0个错误,0个警告,且调试工具变为可用为止,如图1-3所示。

可以通过“项目(P)”菜单下的“编译(P)”命令、“编译连接(L)”命令或工具栏上的快捷按钮来编译、连接文件。

注意:通过编译连接后的程序,会自动产生一个扩展名为EXE的同名可执行文件。

第 3 页

图1-3 编译连接正确图样

4、调试和运行。

在编译未成功前,“调试(D)”菜单里的命令和工具栏上的快捷按钮均为不可用状态,即呈灰色,编译成功后它们才呈现为可用状态。但是编译成功并不代表程序功能的正确,仅仅说明源程序中无语法错误,只有通过调试过程的检验,最终才可确认程序功能的正确性。

程序的运行,选择菜单里的运行命令或快捷按钮“!”。

注意:简单的程序运行后并无任何信息显示,要观看结果需到调试环境中。硬件实验需观察连接的电路控制系统的运行情况。

①“QTH-2008PCI-B”环境的调试方法

“QTH-2008PCI-B”集成了两种调试环境:Debug和Turbo Debugger(即TD)。建议使用TD,在TD调试窗口下可同时显示指令、寄存器、标志位、数据和堆栈等,并且它的使用方法与Turbo C非常相似,如:

F9:运行

F8:单步执行

ALT+F → Open:打开文件

ALT+F5:显示屏幕

可以通过“调试(D)”菜单下的“进入TD调试(D)”命令或工具栏上的快捷按钮进入调试状态,TD调试窗口如图1-4所示。

第 4 页

图1-4 TD调试窗口

在TD窗口里,已加载了当前编译连接后的程序,可同时显示出源程序、寄存器、存储器和机器码。

如要调试其它程序的步骤为:㈠打开要调试的文件;㈡单步执行观察结果。

可通过“File”菜单下的“Open”命令打开要调试的文件,其方法与Turbo C 下打开文件类似,需要注意的是应打开可执行文件(扩展名为EXE)。

打开文件后即可进行调试,通常是按“F8”键进行单步执行。

所谓调试就是逐条执行指令,然后观察指令执行后数据区及各寄存器的状态是否为预期的数值,如果同我们预期的值完全一致,则说明程序正确。否则,就应重新修改程序,再进行编译连接、调试。

调试程序时,如果数据区显示的是附加段ES,可按“ALT+V”→“C”切换到数据段DS。

注意:数据区右侧显示的乱字符是本行各数据的ASCII码,并无具体意义。

关于“QTH-2008PCI-B”和“Turbo Debugger”的进一步使用,请参看对应的帮助文档。

②“QTH-2008PCI”环境的调试方法

“QTH-2008PCI”是一个单一的集成调试环境,所有的编辑、编译连接、调试操作均在同一窗口里进行。

第 5 页

第 6 页

当编译连接正确后,可通过“查看(V )”菜单打开寄存器窗口(R )、数据存储器窗口(D ),然后按“F8”键单步执行,观察各寄存器的数值变化以及数据存储器中相关单元的数值。如果显示的数值同我们预期的数值完全一致,则说明程序正确;否则,就应重新修改程序,再编译连接、调试。

注意:单步执行时应同时观察硬件电路的变化情况,要保证硬件电路的正常工作。

关于“QTH-2008PCI ”的进一步使用,请参看对应的帮助文档。

1.3 QTH 实验仪简介

QTH-2008PCI 实验仪全名为:32位微机高级实验仪,由启东市微机应用研究所研制,如图1-5所示。实验仪内部安装了9块各自独立的电路模块,可完成各种实验、设计制作,根据不同的需要可更换相应功能的模块,如图1-6所示。

图1-6右上角为16位微机接口实验模块,用串行口和计算机连接;左上角为32位微机接口实验模块,用扁平电缆连接到自带的接口板插入计算机PCI 插槽。

图1-5 实验仪外型图

图1-6 实验仪内部结构图

进行16位微机接口实验时,连接实验仪电源线、串口线,根据不同的实验项目连接相应的电路模块。使用“QTH-2008PCI”软件环境,编制程序下载到实验仪8088/8086模块调试运行,结果由硬件电路实现,CPU运行参数返回软件环境以供检查校验。

实验仪的功能扩充:更换MCU8052X模块可进行单片机8051系列实验;更换

CPLD实验板可进行可编程逻辑阵列可实验、设计。扩充模块如图1-7所示。

图1-7 扩充模块

第7 页

1.4硬件实验注意事项及要求

硬件实验不但要编制控制程序,还要进行电路的设计、连接、调试。连接电路时须连接8088/8086 CPU板的数据线、地址线、控制线以及其它电路之间的信号通路,连接实验仪的电源线、与计算机连接的串行数据线等。

硬件实验时应注意以下事项:

一、警告。

1、连接任何电路、插、拔连线时必须关闭实验仪电源。

2、串行口连接时须垂直插拔,不可拧紧两边螺丝,摇动串口插头。

3、不能将多余的线和插头散落到实验仪上,要放到安全位置。

4、实验仪打开电源时,不能按压电路板和元器件。

5、禁止将实验仪上的直流电源短路连接。

6、禁止用连接线触碰集成电路管脚。

7、实验中出现异常情况应立即报告老师。

8、更换实验仪须征得老师同意,不得私自更换。

9、不能将其它物品放置在实验仪上。

10、实验完毕要关闭实验仪、整理线缆、关闭计算机、显示器方可离开。

注意:关闭计算机时,从开始菜单选择关机。不可强行关机。

二、实验要求。

1、实验前应仔细阅读实验指导书的相关章节。

2、安全操作,注意人身和设备安全。

3、准备好实验程序、连线方法。

4、做好实验记录,对实验中出现的问题应仔细分析。

5、撰写实验报告并及时上交。

三、连接线缆的使用方法。

本实验仪配备有3种线缆用于实验电路的连接,如图1-8所示。

第8 页

图1-8 连接线缆图

连接线缆的使用有相应的操作规范,现介绍如下:

1. 8芯扁平电缆的插拔。

8芯电缆用于连接数据线、地址线。插入前要检查有无断线,对准插槽小心插入到插座底部;拔出时用手捏住插头,不可直拉扁平线,将一边倾斜拔出一半后再将另一边拔出。

2. 单芯插头的插拔。

单芯插头主要是两点之间的连接。使用时插入孔中并转动使得连接紧密,拔出时转动插头可方便取出。

3. 8芯插头带8只单线插头的插拔。

这种插头主要连接片选信号和16x16点阵显示的译码信号,插拔方法同1、2。特别注意的是要将多余的插头放置在实验仪外面,并且不能连接在一起。

4. 其它线缆的连接。

外接电路连接时需放置在安全位置,不能触碰实验仪裸露部分。

5. 电缆断线的检查。

扁平电缆的断线可用观察法、万用表、专门的检测板检查。

单芯插头最容易断线、最难看出来,需万用表检查。最方便的方法是利用实验仪上的发光二极管电路检测,将线的一头接LED,另一头接开关,拨动开关发光管可亮、灭,如果不亮则为线断。

注意:这是实验仪上唯一可以带电试验的一种方法。

第9 页

1.5常见问题及解决办法

一、出现连机错误信息。

现象:启动“QTH-2008PCI”软件时出现“仿真机连机出错,请检查仿真机接口是否正常”的提示信息,如图1-9所示。

图1-9 连机出错

分析:这种情况是由于启动软件时未打开实验仪电源,或串行接口未连接好。进行硬件实验时是用实验台上的8088处理器执行程序,由仿

真软件将编译好的程序下载到实验仪上运行。

处理:关闭计算机运行的“QTH-2008PCI”软件,检查串行口连接线是否连接好,打开实验仪电源开关,等待连机指示灯亮起后再运行实验

程序。

二、硬件实验运行程序时出现“运行”窗口。

现象:实验时编译连接程序后点运行按钮,出现如图1-10所示窗口,数字不断变化而实验仪电路无反应。

图1-10 运行窗口

分析:这是由于计算机未和实验仪连机,情况和故障一相同。

第10 页

处理:处理方法也和故障一相同。

三、编译连接时软件无反应,如同死机一般。

现象:输入完程序后,点击编译连接按钮,计算机无反应或鼠标指针显示忙。有时在标题栏显示“无响应”等字样。

分析:这是由于文件名或存储路径中有汉字、非法字符,也可能是文件名太长。

处理:关闭软件,在资源管理器或“我的电脑”中重新更改文件名或文件夹名,使之符合规定。

四、编译程序时显示“Out of memory”。

现象:检查程序完全正确,编译时却出现“Out of memory”出错信息,使连接程序找不到目标文件,如图1-11所示。

图1-11 出错信息显示

分析:这是由于在程序中有汉字状态下输入的字符、标点符号或全角符号。

处理:仔细检查出错指令的各字母、分隔符号(冒号、逗号、分号),更改后即可正常。

五、硬件实验时编译连接正确但程序不能运行。

现象:连机正常,程序输入、编译连接正确,但不能连续执行,也不能单步执行。程序指示条一直在第一条指令上。

第11 页

分析:这是由于实验台上的8088CPU板损坏所致,连机状态由另外的处理器完成,检查CPU寄存器的状态会发现全部为固定的数值,并且重

新启动计算机和实验台这些数值也不会变化。

处理:需要维修实验台或更换CPU板才能解决。

六、程序正确而执行后是另外的结果。

现象:重新输入的程序或打开的程序,编译连接并未出现错误信息,但执行后的结果是另外程序的结果。或程序完全正确但编译连接仍出

错。

分析:由于编辑运行了一个程序后未关闭项目,导致重新输入或打开的程序不能正常编译连接和运行。这是在一个项目下打开编辑了两个程

序的结果。

处理:完成一个程序后必须选择关闭项目,再打开或编辑新的程序。

七、桌面上的文件不能编译连接。

现象:编辑保存在桌面的文件,或从U盘复制的正确文件到桌面却不能编译连接和运行。

分析:由于Windows2000/XP系统桌面的路径为:

C:\Documents and Settings\Administrator\桌面\*.*。

路径中包含有汉字、空格及长文件名,不符合编译系统的要求。

处理:将程序复制或另存到D、E盘中。

八、运行程序时出现“遇到无效指令”信息框。

现象:程序编译连接正常,执行后弹出显示提示信息框,显示“遇到无效指令”等信息。

分析:这是因为程序中没有结束返回指令,或在主程序中有不正常的“RET”

指令,在子程序中无“RET”指令等,运行时CPU无法返回调用它

的程序。

第12 页

处理:检查程序,删除不正常的返回指令,并给程序结束位置添加指令正常返回。

MOV AH,4CH ;调用返回DOS功能

INT 21H ;执行DOS中断

九、运行程序后看不到显示结果。

现象:程序编译连接正常,程序中有显示字符或字符串指令,但运行后看不到结果,屏幕只是闪动一下就结束了。

分析:这是因为程序运行后已执行了显示指令,但立即就结束了。屏幕的闪动是执行程序的过程。

处理:给程序添加延时子程序,或添加接收键盘按键指令后结束,即按任意键结束。

MOV AH,01H ;调用01号功能,从键盘接收一个字符

INT 21H ;执行DOS中断

十、七段码显示时乱码,读取的七段码表不正确。

现象:编制的七段码显示程序,执行后显示乱码,不是正常的数字、字母,检查七段码对照表正确,单步执行检查读取的代码不正确。

分析:这是因为七段码段码表放置的位置不合适造成的。

处理:合理安排数据段、代码段地址。必要时将段码表放到代码段中即可解决问题,且无论是将代码表放到代码段的前部或后部均可。。

第13 页

第二部分软件实验

2.1 寻址方式练习

一、实验目的

1、掌握传送类指令的基本用法

2、掌握常用的寻址方式

3、汇编语言程序的基本结构

4、熟悉QTH集成汇编环境

注意:有关“QTH-2008PCI-B”软件的使用,请阅读第一部分1.2节内容。

二、实验内容

1、寄存器间的数据传送

2、寄存器与存储器之间的数据传送

实验程序的核心代码如下:

x db 31h,32h

y db ?,?

MOV AL,X

MOV AH,X+1

MOV Y,AH

MOV Y+1,AL

MOV AX,1234h

MOV BL,AH

MOV BH,AL

MOV SI,AX

MOV DI,BX

三、实验要求

根据本节提供的两段代码分别编制一个完整的程序,并编译、装载,然后观察寄存器、存储器窗口的变化情况。

思考题:①尝试其它寄存器之间的传送;以不同的存储器寻址方式传送

②指出下面程序段执行后各寄存器、变量的结果

第14 页

buf1 DW 8 DUP(?)

buf2 DW 8 DUP(?)

MOV AX,10

LEA SI,buf1

MOV AL,'A'

MOV AH 'B'

MOV BL, AH

MOV BH, AL

MOV buf1,AX

MOV buf2,BX

MOV [si],AX

MOV [si+2],BL

MOV [si+3],BH

MOV CX, [si+1]

MOV [buf2+2],CX

2.2 简单算术运算

一、实验目的

1、掌握算术运算指令的基本用法

2、进一步熟悉寻址方式

二、实验内容

1、计算X=X+Y

2、计算Z=X+Y

实验程序的核心代码如下:

X DB ?

Y DB ?

Z DB ?

;计算Z=X+Y;

MOV AL,20H

MOV X,AL ;完成X赋值

MOV AL,32H

MOV Y,AL ;完成Y赋值

MOV AL,X

ADD AL,Y

第15 页

MOV Z,AL

;计算X=X+Y

MOV AL,Y

ADD AL,X

MOV X,AL

三、实验要求

1、X、Y、Z均为8位变量

2、先给X、Y赋值(原始数据为立即数形式!),然后再开始计算

思考题:①如何求A+B+C(不考虑进位问题)?

② A、B、C均为16位数如何计算(不考虑进位问题)?

③如何计算多组(Ai+Bi+Ci,I=0,1,2)

2.3 数据块传送

一、实验目的

1、掌握批量数据传送的基本方法

2、掌握条件转移指令的使用方法

二、实验内容

变量X中有8个字符(’ABCD1234’),变

量Y中有8个字符(’12345678’),编程:用

X的值覆盖Y的值。

实验程序的核心代码如下:

X DB 'ABCD1234'

Y DB '12345678'

MOV CX, 0

FLAGE: MOV AL, [SI]

MOV [DI], AL

INC SI

INC DI

INC CX

CMP CX, 8

JC FLAGE

第16 页

数据传送是学习微机原理课程中应掌握的基本技能之一,也是计算机硬件类应用中最常见的一种操作。数据传送的方法、形式多种多样,除上述方法外,8086系统还专门设置了数据传送指令。

三、实验要求

分别以间接寻址方式和相对寻址方式实现。

思考题:① SI、DI的值如何获取?这里都用了什么寻址方式?

②将X中的每个字符都加1,如何实现?

③ CX的初值如果赋为“0”程序如何修改?

2.4 数据块的拆拼

一、实验目的

1、掌握数据拆分、拼装的基本方法

2、掌握循环结构的使用方法

二、实验内容

字节变量X、Y中各有8个数据(自定),编程:将X的低四位与Y的高四位合并为一个新的数据,然后存放到以Buff开始的8个单元中。

实验程序的核心代码如下:

X DB 12H,23H,34H,45H

Y DB 87H,76H,65H,54H

Buff DB 4 DUP(?)

MOV AL,X

MOV BL,Y

AND AL,0FH

AND BL,0FOH

OR AL,BL

MOV Buff,AL

三、实验要求

①分别用条件转移指令和循环指令实现

②分别以间接寻址方式和相对寻址方式

实现

第17 页

思考题:如果将X的高四位和低四位分为两个数,分别存到Y和Buff如何实现?

2.5 数据转换

一、实验目的

1、掌握数据转换的一般方法

2、掌握流程图的画法

二、实验内容

变量Buff中存放着一批采集来的数据,其值都在0~15之间,这些数据以0FFH 为结束标记。

编程:将Buff中的数据全部转换为对应的ASCII码(结束标记不转换!),以备输出之用。

实验程序的核心代码如下:

;0~9的转换

MOV AL,Buff

ADD AL,30H

MOV Buff,AL

;10~15的转换(A~F)

MOV AL,Buff

ADD AL,37H

MOV Buff,AL

;主程序

LEA SI,Buff

Aga:MOV AL,[SI]

CMP AL,0FFH

JZ Done

转换

INC SI

JMP Aga

Done:……

三、实验要求

先画出流程图,然后再编写程序。

第18 页

思考题:①如何将两部分合并为一个程序?

②如何将ASCII“0”~“F”转换为一个纯16进制数

2.6 查表

一、实验目的

掌握查表程序的一般设计方法

二、实验内容

在字型表TAB中存放着“0”~“9”的七段码,在Num单元存放着一位十进制数,编程将(Num)的值在共阴极七段数码管上显示出来。

TAB DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH

Num DB ?

MOV AH,0

LEA SI,TAB

ADD SI,AX

CALL DispNum

;DispNum程序可由教师给出

;也可根据查表结果转存到其它位置

查表是实现数据转换的另一种重要方法,它是实现

两种格式间无简单运算关系的数据相互转换的一种有

效手段。它先将原始数据所有可能的转换结果,按照一

定的规律依次存放到一个数据块(表)里,转换时,先算出原始数据在数据表中的位置,然后再到这一位置取出转换结果。

三、实验要求

①假定显示子程序名为:DispNum,其功能为在实验仪上显示一位数字(具体程序的内容可暂不考虑)

② DispNum的参数为:SI,即SI为要显示数字的七段码地址

思考题:①为什么AH要清零?

②如果Num中的数大于9,如何实现?

第19 页

2.7 子程序

一、实验目的

1、掌握子程序的结构和调用方法

2、掌握子程序设计的一般方法

二、实验内容

分别编制延时、回车换行、退出子程序。

;延时

DELAY: MOV CX,0FFFFH

LOOP $

RET

该子程序实现延时一段时间的功能,这种结构的延时时间是最长的了,如果还想在长些,可使用多重循环结构。

;回车换行

LFCR: MOV AH,2

MOV DL,10

INT 21H

MOV DL,13

INT 21H

RET

该子程序的功能相当于按键盘上的回车键,在汇编语言里,回车与换行是两个不同的操作。

;退出

MQUIT: M OV AH,06H

MOV DL,0FFH

INT 21H

JE RETURN

MOV AH,4CH

INT 21H

RETURN: RET

该子程序的功能是按任意键退出。

三、实验要求

子程序的调用不影响任何参数。

思考题:①如何调整延时的时间,在LOOP指令中,$的作用是什么?

②如何按指定键(如:“N”)退出如何实现?

第20 页

8086接口实验

接口实验部分 实验1 简单I/O口扩展实验 一、实验目的 1、熟悉74LS273,74LS244的应用接口方法。 2、掌握用锁存器、三态门扩展简单并行输入、输出口的方法。 二、实验设备 CPU挂箱、8086CPU模块。 三、实验内容 逻辑电平开关的状态输入74LS244,然后通过74LS273锁存输出,利用LED显示电路作为输出的状态显示。 四、实验原理介绍 本实验用到两部分电路:开关量输入输出电路,简单I/O口扩展电路。 五、实验步骤 1、实验接线:(?表示相互连接) CS0 ?CS244; CS1?CS273;平推开关的输出K1~K8 ? IN0~IN7(对应连接); O0~O7?LED1~LED8。 2、编辑程序,单步运行,调试程序 3、调试通过后,全速运行程序,观看实验结果。 4、编写实验报告。 六、实验提示 74LS244或74LS273的片选信号可以改变,例如连接CS2,此时应同时修改程序中相应的地址。 七、实验结果 程序全速运行后,逻辑电平开关的状态改变应能在LED上显示出来。例如: K2置于L位置,则对应的LED2应该点亮。 八、程序框图(实验程序名: T244273.ASM)

九、程序源代码清单 assume cs:code code segment public org 100h start: mov dx,04a0h ;74LS244地址 in al,dx ;读输入开关量 mov dx,04b0h ;74LS273地址 out dx,al ;输出至LED jmp start code ends end start

实验2 存储器读写实验 一、实验目的 1.掌握PC机外存扩展的方法。 2.熟悉6264芯片的接口方法。 3.掌握8086十六位数据存储的方法。 二、实验设备 CPU挂箱、8086CPU模块。 三、实验内容 向02000~020FFH单元的偶地址送入AAH,奇地址送入55H。 四、实验原理介绍 本实验用到存储器电路 五、实验步骤 1、实验接线:本实验无需接线。 2、编写调试程序 3、运行实验程序,可采取单步、设置断点方式,打开内存窗口可看到内存区的变化。 六、实验提示 1、RAM区的地址为02000H,编程时可将地址设为01000H,则偏移地址为1000H。 2、如果按字节进行存储,则AL为55H或AAH;如果按字进行存储,则AX应为55AAH。 3、626 4、62256等是计算机系统扩展中经常用到的随机存储器芯片(RAM),主要用作数据存储器扩展。本实验所进行的内存置数在程序中经常用到。计算机系统运行中会频繁地进行内存与外设或者内存与内存之间的数据传输,所以本实验虽然简单但对理解系统程序的运行很关键,望学习和实验时认真对待。 七、实验结果 在断点1处内存区02000H~020FFH单元为00H;在断点2处偶地址为AAH,奇地址为55H 八、程序框图(实验程序名:RAM.ASM)

实验7 寻址方式在结构化数据访问中的应用

计算机学院实验报告 课程汇编语言 实验名称实验7 寻址方式在结构化数据访问中的应用 专业计算机科学与技术 2018年 12 月 24 日 一、实验目的 1.定位内存单元的寻址方式汇总 2.寻址方式的综合应用

3.转移指令的分类和原理 4.熟悉在显存中编程的方法 二、实验内容及要求 ( 一) 寻址方式的汇总及综合应用 1.定位内存单元的寻址方式有几种,并举例说明。 2.寻址方式在结构化数据访问中的应用。 Power idea 公司从 1975 年成立一直到 1995 年的基本情况如下。 年份收入 ( 千美元 )雇员人均收入 ( 千美元 ) 1975163? 1976227? 19773829? 1978135613? 1979239028? 1980800038? 1995593700017800? 下面的程序中,已经定义好了这些数据: assume cs:codesg data segment db '1975','1976','1977','1978','1979','1980','1981','1982','1983' db '1984','1985','1986','1987','1988','1989','1990','1991','1992' db '1993','1994','1995' ;年份 dd16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514 dd 345980,590827,803530,1183000,1843000,2759000,3753000,4649000,5937000 ; 公司总收入 dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226 dw 11542,14430,15257,17800 ;公司雇员人数 data ends table segment db 21 dup('year summ ne ??') table ends

8086汇编语言指令的寻址方式有哪几类

1. 8086汇编语言指令的寻址方式有哪几类?用哪一种寻址方式的指令执行速度最快? 寄存器寻址最快 7. 下面这些指令哪些是正确的?哪些是错误的?如是错误的,请说明原因。 XCHG CS , AX ;不能修改CS MOV [BX] , [1000] ;不能在两个内存单元之间直接进行数据传送 XCHG BX , IP ;不能用名字直接访问IP PUSH CS POP CS ;不允许直接修改CS值 IN BX , DX ;输入数据必须使用累加器AL或AX MOV BYTE [BX] , 1000 ;格式错误,且超范围,应为MOV word PTR [BX],1000 MOV CS , [1000];不允许直接修改CS值 20.带参数的返回指令用在什么场合?设栈顶地址为3000H,当执行RET 0006后,SP的值为多少? 利用堆栈传递参数时使用;对于近调用SP=3008H,对于远调用SP=300AH 27.设当前SS=2010H,SP=FE00H,BX=3457H,计算当前栈顶地址为多少?当执行 PUSH BX指令后,栈顶地址和栈顶2个字节的内容分别是什么? 栈顶地址:SS:SP,物理地址为:2FF00H;PUSH 完以后栈顶地址为:SS:SP=2010:FDFEH,即物理地址为:2FEFEH,内容为:57H 34H(由低地址到高地址) B P7 5. 设(DS)=3000H,(BX)=1100H,(CS)=0062H,(S1)=0002H,(31100H)=52H, (31101H)=8FH,(31162H)=6BH,(31163H)=99H,(31103H)=F6H, (32200H)=AAH,(32201H)=B6H,(32800H)=55H,(32801H)=77H,给出下列各指令执行后AX寄存器的内容: (1) MOV AX,BX (2) MOV AX,[BX] (3) MOV AX,4200H (4) MOV AX,[2800H] (5) MOV AX,1100H[BX] (6) MOV AX,[1160H+SI] 9. 分别执行下列各指令组,写出AX的内容: (1) MOV AX,93A4H NEG AX 73A4-8c5c,e689-1977 (AX)=6C5CH (2) XY DW "AB" MOV AX,XY (AX)=4142H (3) MOV AX,2B7EH MOV CX,4DB5H ADD AX,CX (AX)=7933H (4) XA DW 0BD57H MOV AX,0FBCDH AND AX,XA (AX)=B945H (5) STC MOV BX, 0B69FH MOV AX, 43A2H SBB AX, BX

微机原理实验指导书

微型计算机原理与应用实验指导书 上海大学通信学院

2010 年4 月 PC微机原理实验一 一、目的:掌握PC机DEBUG调试程序有关命令的操作及8086各类指令的 功能。 要求:在PC机上完成下列程序的调试运行,并写出运行结果。二、1.DEBUG的基本操作:(详细内容请参阅教材“程序的调试,P173”和“附录F 调试程序DEUBG的使用,P499”) (1)从WINDOWS进入DOS之后,输入命令启动DEBUG: C:>DEBUG 回车 (2)输入R命令,查看和记录CPU各个寄存器的内容: -R回车 看到什么 (3)输入A命令,汇编下面的字符“WINDOWS”显示程序: -A100 ;从偏移地址是0100H处开始写指令 MOV AH,2 MOV DL, 57 ;57H 是“W ”的ASCII码 INT 21 ;INT 21是DOS 功能调用,AH=2代表2号功能 ;这3句合起来的功能是:显示DL中的字符 MOV DL, 49 INT 2 1 MOV DL, 4E INT 21 MOV DL, 44 INT 2 1 MOV DL, 4F INT 2 1 MOV DL, 57 INT 2 1 MOV DL, 53 INT 2 1 INT 3 ;功能是产生一个断点,不要省略 (4)输入U 命令反汇编上面的程序: -U 100 问:这里100代表什么 (5)输入G命令连续运行上面的程序,记录运行结果:

-G=100 ,57,53依次分别改为574F4E57 (6)输入E命令把上面程序中的数据,49,,44,,45:,,45,4C43,4F4D,-E 103 回车(以下同) -E 107 10B-E -E 10F 113-E 117-E 11B-E (7)输入D命令查看程序机器码的存放情况: -D 100 11E ;看从100开始到11E的机器码 (8)输入G命令再连续运行程序,并记录运行结果: -G=100 (9)依次输入下面的T命令(单步执行)和G命令(设置断点并启动运行),记录各 命令的运行结果: -T=100 回车 -G=100 106 回车 -G=100 10A 回车 -G=100 10E 回车 -G=100 11E 回车 注意: 下面第2—第8段程序是7个实用的小程序,若不小心打错指令,可以这样修改: 例如:CS:0100 B300 MOV BL,0 0102 53 PUSH BX 0103 B220 LP1: MOV DL,20 要修改“PUSH BX”,因为这条指令的IP是0102,所以按以下操作: -A 0102 回车,然后把正确的指令打入,“-A ”是汇编指令。 如果要查看0100以后的指令及相应的机器代码,可以 -U 0100 回车,能够看到CS:0100开始的指令及相应的机器代码。“-U ”是反汇编 若发现有误用,用“-A XXXX 回车”,重打这条指令即可 2.编制一个能在CRT上连续显示A,B,C,D······Z大写英文字符的源程序,并在源程序下汇编调试机运行。

汇编语言程序设计实验篇emu

1.汇编语言程序设计实验篇 1.1.汇编系统软件简介 Emu8086-Microprocessor Emulator是集源代码编辑器、汇编/反汇编工具以及debug 的模拟器。它能模拟一台"虚拟"的电脑运行程序,拥有独立的“硬件”,避免访问真实硬件。该软件兼容Intel的下一代处理器,包括PentiumII、Pentium4。利用该软件提供的调试工具,能够单步跟踪程序,观察程序执行过程中寄存器、标志位、堆栈和内存单元的内容。 1.1.1创建程序 https://www.doczj.com/doc/91126041.html, TEMPLATE程序 本章与指令相关的实验都是用COM TEMPLATE类型的程序完成的。打开emu8086,在“welcome…”对话框中,单击按钮,创建文件。 在“choose code template”对话框中,选择“COM template-simple and tiny executable file format, pure machine code.”后,单击按钮。

在如所示的编辑界面中,在“;add your code here”部分输入相应的指令,第一条指令默认的偏移地址为100h。 输入全部指令后,单击按钮,保存相应的程序段。 2.EXE TEMPLATE程序 本章与DOS功能调用和汇编源程序相关的实验都是用EXE TEMPLATE程序完成的。打开emu8086,在“welcome…”对话框中,单击按钮,创建文件。

在“choose code template”对话框中,选择“EXE template-advanced executable file.header: relocation, checksum.”后,单击按钮。 在如图所示的编辑界面中,已经可以给出了源程序的框架,包含数据段、堆栈段和代码段的定义以及必要的功能调用等,在“add your data here”和“;add your code here”部分可以分别输入相应的变量定义和指令。

微机原理实验指导书

微机原理实验指导书汕头大学机电系摘录

实验一P1口实验及延时子程序设计 1.实验目的 利用单片机的P1口作为I/O口进行实验验证,掌握利用P1口作为输入口和输出口的编程方法,理解并掌握延时子程序的设计方法。 2.实验设备及器件 IBM PC机一台 DP-51PRO单片机综合仿真实验仪一台 3.实验内容 (1)编写一段程序,用P1口作为控制端口,使D1区的LED轮流点亮。 (2)编写一段程序,用P1.0~P1.6口控制LED,P1.7控制LED的亮和灭(P1.7接按键,按下时LED 亮,不按时LED灭)。 图 1 4.实验要求 学会使用单片机的P1口作I/O口。如果时间充裕,也可以考虑利用P3口作I/O口来做该实验。 5.实验步骤 ①用导线把A2区的J61接口与D1区的J52接口相连。原理如图1所示。 ②先编写一个延时程序。 ③将LED轮流点亮的程序编写完整并调试运行。 ④使用导线把A2区J61接口的P1.0~P1.6与D1区J52接口的LED1~LED7相连,另外A2区J61接口的P1.7与D1区J53的KEY1相连。原理如图3.2(b)所示。 ⑤编写P1.7控制LED的程序,并调试运行(按下K1看是否全亮)。 ⑥A2区J61接口P1.7与D1区J54的SW1相连,然后再运行程序,拨动开关SW1查看结果。

6.实验预习要求 阅读附录内容,理解实验的硬件结构。可以先把程序编好,然后在Keil C51环境下进行软件仿真。 7.实验参考程序 程序1: ORG 8000H ;此为硬件仿真调试程序,使用软件仿真或直接运行,应改为0000H LJMP M ain ORG 8100H ;此为硬件仿真调试程序,使用软件仿真或直接运行,应改为0100H Main: MOV A,#0FFH CLR C MainLoop: CALL Delay RLC A MOV P1,A ;把A的值输出到P1口 SJMP MainLoop Delay: MOV R7, #0 ;延时 Loop: MOV R6, #0 DJNZ R6, $ DJNZ R6, $ DJNZ R6, $ DJNZ R7, Loop RET ; END 程序2: ORG 8000H ;此为硬件仿真调试程序,使用软件仿真或直接运行,应改为0000H LJMP Main ORG 8100H ;此为硬件仿真调试程序,使用软件仿真或直接运行,应改为0100H Main:JB P1.7,SETLED ;按键没有按下时,跳转到SETLED CLRLED: CLR P1.0 CLR P1.1 CLR P1.2 CLR P1.3 CLR P1.4 CLR P1.5 CLR P1.6 SJMP Main SETLED: SETB P1.0 SETB P1.1

8086实验报告

在EMU8086下环境单步调试程序实验报告 1.实验时间:2013年4月23日 2.实验地点:图书馆 3.实验名称:在EMU8086下环境单步调试程序 4. 实验目的:(1)熟悉EMU8086仿真环境 (2)在EMU8086环境下单步调试给出的程序,加深对重要指令的理解5.实验所用设备与软件:硬件:PC机一台;软件:EMU8086 6.实验方法、过程与实验结果的分析 完整代码如下(已补充,已修改) org 100h ; set location counter to 100h ;mov指令 mov CL,23H mov CH,45H ;(cx)=4523H mov AX,1234H ;(AX)=1234H mov WORD ptr[300H],0180H ;( 300H)=0180H mov bx,[300H] ;(bx)=0180H mov [300H],cx ;(300H)=4523H mov ax,ds ;(ax)=0700H mov ds,bx ;(ds)=0180H mov es,[300H] ;(es)=0000H mov [300H],ss ;(ss)=0700 mov bx,cs ;(bx)=0700 mov [300H],cs ;(300H)=0700 目的操作数不允许为CS段寄存器;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;XCHG指令 MOV AX,1234H ;(AX)=1234H MOV BX,3456H ;(BX)=3456H XCHG AX,BX ;(AX)=3456H,(BX)=1234H MOV AX,1234H ;(AX)=1234H MOV WORD ptr[300H],0100H;( 300H)=0100H XCHG AX,[300H] ;(AX)=0100H,( 300H)=1234H ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; MOV BX,OFFSET TABLE MOV AL,15 XLAT ;(AL)=225H ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;堆栈指令 MOV AX,1234H ;(AX)=1234H PUSH AX

实验报告答案

实验2:MIPS指令系统和MIPS体系结构 一.实验目的 (1)了解和熟悉指令级模拟器 (2)熟悉掌握MIPSsim模拟器的操作和使用方法 (3)熟悉MIPS指令系统及其特点,加深对MIPS指令操作语义的理解 (4)熟悉MIPS体系结构 二. 实验内容和步骤 首先要阅读MIPSsim模拟器的使用方法,然后了解MIPSsim的指令系统和汇编语言。(1)、启动MIPSsim(用鼠标双击MIPSsim.exe)。 (2)、选择“配置”->“流水方式”选项,使模拟器工作在非流水方式。 (3)、参照使用说明,熟悉MIPSsim模拟器的操作和使用方法。 可以先载入一个样例程序(在本模拟器所在的文件夹下的“样例程序”文件夹中),然后分别以单步执行一条指令、执行多条指令、连续执行、设置断点等的方式运行程序,观察程序的执行情况,观察CPU中寄存器和存储器的内容的变化。 (4)、选择“文件”->“载入程序”选项,加载样例程序 alltest.asm,然后查看“代码”窗口,查看程序所在的位置(起始地址为0x00000000)。 (5)、查看“寄存器”窗口PC寄存器的值:[PC]=0x00000000。 (6)、执行load和store指令,步骤如下: 1)单步执行一条指令(F7)。 2)下一条指令地址为0x00000004,是一条有 (有,无)符号载入字节 (字节,半字,字)指令。 3)单步执行一条指令(F7)。 4)查看R1的值,[R1]= 0xFFFFFFFFFFFFFF80 。 5)下一条指令地址为0x00000008,是一条有 (有,无)符号载入字 (字节,半字,字)指令。 6)单步执行1条指令。 7)查看R1的值,[R1]=0x0000000000000080 。 8)下一条指令地址为0x0000000C ,是一条无 (有,无)符号载入字节 (字节,半字,字)指令。 9)单步执行1条指令。 10)查看R1的值,[R1]= 0x0000000000000080 。 11)单步执行1条指令。 12)下一条指令地址为0x00000014 ,是一条保存字 (字节,半字,字)指令。 13)单步执行一条指令。

微机接口(8086)基本实验指导书

目录 实验须知 (2) 实验一系统介绍 (3) 一.系统特点 (3) 二、8086系统概述 (3) 三、系统电源 (5) 四、硬件介绍 (5) 实验二简单I/O口扩展实验 (9) 实验三存储器读写实验 (11) 实验四I/O口扩展和存储器扩展设计实验 (14) 实验五8255并行口实验 (17) 实验六8253定时器/计数器接口实验 (19) 实验七LCD显示实验 (22)

实验须知 一、预习要求 1.实验前认真阅读实验教程中有关内容,明确实验目的和实验任务。 2.每次实验前应有预习报告,未预习者不允许参加实验。 预习报告中:对软件实验,要求画出程序流程图,编好上机程序;对硬件实验,要求画出实验线路图,拟定实验步骤,画出程序流程图,编好上机程序。 二、实验要求 1.实验是学习“汇编语言程序设计”和“微机原理与接口技术”这两门课程的重要环节,实验课请勿迟到,缺席。 2.爱护设备,保持清洁,不随意更换设备。 3.认真完成实验任务,实验结果经教师检查,教师对实验内容提问,对完成者做记录。 4.做硬件实验时,注意断电操作,即所有的接线、改线及拆线操作均应在不带电的状态下进行,严禁带电操作,并注意防止导线堵塞插孔。 5.发生事故,应立即切断电源,并马上向教师报告,检查原因,吸取教训。 6.实验完毕,请整理实验设备,再离开实验室。 三、报告要求 每次实验后,应递交一份实验报告,报告中应包括下列内容: 1.实验名称、实验人姓名、学号、班级、所用的设备号。 2.实验目的、任务。 3.各任务程序流程图、程序清单(应加适量注释)。 4.硬件实验应画出各任务的完整电路图,包括PC总线与实验用到芯片间全部电路。 5.记录和分析实验结果。 6.据实验目的认真做小结。

8086实验讲义

实验一微机实验系统上机过程 一、实验目的 ⑴熟悉微机汇编语言。 ⑵熟悉微机实验系统的上机过程。 二、实验内容 选一个Intel 8086汇编语言程序fuli1.asm(教材P97页例题4.14),在实验环境中进行调试,观察运行结果。 了解汇编语言的工作环境和上机步骤和过程。 三、实验原理与方法 硬件环境:本实验对硬件环境没有要求 软件环境:1、操作系统:DOS 2、编辑程序:EDIT 3、汇编程序:MASM 4、连接程序:LINK 5、调试程序:DEBUG 先使用EDIT编写一个汇编语言源程序:fuli1.asm 然后用MASM汇编成目标程序fuli1.obj 最后使用LINK连接成目标程序fuli1.exe 四、实验设备 1、EL型微机教学实验系统 2、PC机1台 五、实验步骤 1、实验接线 本实验无需接线。 2、编写调试程序 (1)打开微机系统,进入WINDOWS界面,点击任务栏“开始”、“程序”、“附件”、“命令提示符”。进入DOS实验操作环境。 (2)输入命令CD\ 回车。 (3)用EDIT编辑源程序文件fuli1.asm。命令格式:eidt fuli1.asm (4)用MASM对源程序fuli1.asm进行汇编成机器语言程序,直到无错误为止。命令格式:masm fuli1;。 (5)用LINK 对机器语言目标程序进行连接成可执行文件。 命令格式:link fuli1;。

3、运行实验程序。命令格式:fuli1 让程序中运行,观察结果。改变X的值,观察不同结果。 六、实验记录与结论 程序源代码清单(fuli1.asm) DATA SEGMENT TABLE DW 0,1,4,9,16,25,36,49 X DB 6 RESU DW ? DATA ENDS CODE SEGMENT ASSUME DS:DATA,CS:CODE START:MOV AX,DATA MOV DS,AX MOV BX,OFFSET TABLE MOV AL,X MOV AH,0 SHL AX,1 ADD BX,AX MOV DL,[BX] MOV DH,[BX+1] MOV RESU,DX MOV CL,4 SHR DL,CL ADD DL,30H MOV AH,2 INT 21H MOV DX,RESU AND DL,0FH ADD DL,30H MOV AH,2 INT 21H MOV DL,48H MOV AH,2 INT 21H MOV AH,4CH INT 21H CODE ENDS END START 小结:谈谈对汇编语言及C语言上机过程的认识(相同之处和不同之处)。

汇编实验报告一 熟悉7种寻址方式

电子信息工程学系实验报告——适用于计算机课程课程名称:IBM-PC汇编语言程序设计 实验项目名称:熟悉7种寻址方式实验时间: 班级:姓名:学号: 一、实验目的: 掌握debug命令,熟悉7种寻址方式。 二、实验环境: ASM轻松汇编 三、实验内容: 1、上机输入以下程序: data segment x db 01,02 y db ?,? z db ?,? w dw 1234h data ends code segment main proc far assume cs:code,ds:data start: push ds xor ax,ax push ax mov ax,data mov ds,ax mov dx,1234h -----无有效地址 mov cl,ds:[0000h] -----0000h mov si,0000h mov di,0002h mov al,[si] ----0000h mov [di],al ----无有效地址 add si,1 add di,1 mov al,[si] mov [di],al mov si,0000h mov di,0000h mov al,x[si] mov y[di],al 成绩: 指导教师(签名):

add si,1 add di,1 mov al,x[si] -----0001h mov y[di],al mov si,0000h mov di,0000h mov bx,0000h mov bp,0004h mov al,[bx][si] ----0000h mov ds:[bp][di],al add si,1 add di,1 mov al,[bx][si] mov ds:[bp][di],al ret main endp code ends end start 2、写出上面汇编程序中字体为红色的指令的源操作数的寻址方式以及源操作数的有效地址。 指令寻址方式有效地址mov dx,1234h立即寻址方式无有效地址mov cl,ds:[0000h]直接寻址方式0000h mov al,[si]寄存器间接寻址方式0000h mov [di],al寄存器寻址方式无有效地址 mov al,x[si] 寄存器相对寻址方式0001h mov al,[bx][si]基址变址寻址方式0000h 画图说明数据段中变量所分配的存储空间及初始化的数据值。 14F2:0000 0001 0002 0003 0004 0005 0006 0007 01 02 01 02 00 00 34 12

微机原理与接口技术实验指导书1_[1]...

微机原理与接口技术实验指导书 编者:王亭岭 华北水利水电学院 电气学院自动化教研室 二零一二年三月

目录 实验一标志寄存器应用 (1) 实验二指令寻址方式练习 (4) 实验三分支结构程序设计 (6) 实验四循环结构程序设计 (7) 实验五子程序结构程序设计 (8) 实验六DOS系统功能调用程序设计 (10) 实验七BIOS中断调用程序设计 (12) 实验八定时器中断程序设计 (14)

实验一标志寄存器应用 一、实验目的与要求 1.掌握汇编程序的编译过程; 2.掌握8086的标志寄存器的特点。 二、实验内容 微型计算机(80x86系列)。 四、实验参考程序 DATA SEGMENT A DW 123 B DW 456 SUM DW ? DATA ENDS CODE SEGMENT ASSUME CS:CODE , DS:DATA START: MOV AX , DATA MOV DS , AX MOV AX , A SUB AX , B MOV SUM , AX MOV AH,4CH INT 21H CODE ENDS END START 五、实验步骤 步骤一、用鼠标单击开始菜单,单击运行。如下图所示:

步骤二、在运行窗口中键入cmd,回车进入命令提示符。如下图所示: 步骤三、在命令提示符中编译汇编源程序并连接*.obj文件。如下图所示:1.C:\>D: 回车 2.D:\ >CD MASM 回车 3.D:\MASM>MASM SY1.ASM 回车 4.D:\MASM>LINK SY1.OBJ 回车

步骤四、在命令提示行中运行并调试汇编程序。如下图所示:1.D:\MASM>SY1.EXE 回车 2.D:\MASM>DEBUG SY1.EXE 回车 六、实验结论 1.程序运行后变量SUM的值是多少? 2.程序运行前后标志寄存器的各标志位有何变化? 3.分析实验结果及所遇到的问题,并说明解决的方法。

8086软硬件实验报告(微机原理与接口技术上机实验)

实验一实验环境熟悉与简单程序设计 实验目的 (1)掌握DEBUG调试程序的使用方法。 (2)掌握简单程序的设计方法。 实验内容 编程将BH中的数分成高半字节和低半字节两部分,把其中的高半字节放到DH中的低4位(高4位补零),把其中的低半字节放到DL中的低4位(高4位补零)。如: BH=10110010B 则运行程序后 DH=00001011B DL=00000010B 实验准备 (1)熟练掌握所学过的指令。 (2)根据实验内容,要求预先编好程序。 实验步骤 (1)利用DEBUG程序输入、调试程序。 (2)按下表要求不断地修改BH的内容,然后记录下DX的内容。 实验报告 (1)给出程序清单。 (2)详细说明程序调试过程。

程序: CODE SEGMENT START : MOV BH,00111111B MOV AL,BH MOV CL,4 SHR AL,CL MOV DH,AL MOV AL,BH AND AL,00001111B MOV DL,AL MOV CL,0 CODE ENDS END START

实验二简单程序设计 实验目的 (3)掌握DEBUG调试程序的使用方法。 (4)掌握简单程序的设计方法。 实验内容 试编写一个汇编语言程序,要求实现功能:在屏幕上显示:Hello world My name is Li Jianguo 参考程序如下:(有错) data segment out1 db 'Hello world' ax db 'My name is Li Jianguo' data ens code segment assume cs:code;ds:data lea dx,out1 mov ah,2 int 21h mov dl,0ah mov ah,2

汇编实验报告..

合肥工业大学计算机与信息学院 实验报告 课程:汇编语言程序设计专业班级: 学号: 姓名:

实验一Debug程序的使用 一.实验目的 1、熟悉DEBUG程序中的命令,学会在DEBUG下调试运行汇编语言源程序。 2、掌握8086/8088的寻址方式及多字节数据的处理方法。 二.实验内容 1、利用DEBUG程序中的“E”命令,将两个多字节数“003F1AE7H”和“006BE5C4H”分别送入起始地址为DS:0200H和DS:0204H两个单元中。 2、分别用直接寻址方式和寄存器间接寻址方式编写程序段,实现将DS:0200H 单元和DS:0204H单元中的数据相加,并将运算结果存放在DS:0208H单元中。要求: 本次实验的内容均在DEBUG下完成,实现数据的装入、修改、显示;汇编语言程序段的编辑、汇编和反汇编;程序的运行和结果检查。 三.实验过程和程序 1、启动DOS操作系统 2、运行https://www.doczj.com/doc/91126041.html,程序(若当前盘为C) C:>DEBUG↙ – ;(“–”为DEBUG提示符,仅当屏幕出现该提示符后,才可输入DEBUG命令) 3、用“A”命令编辑和汇编源程序 –A ↙ 186E:0100 MOV AX,[0200]↙ 186E:0103 MOV BX,[0202]↙ 186E:0107 ADD AX,[0204]↙ 186E:010B ADC BX,[0206]↙ 186E:010F MOV [0208],AX↙ 186E:0112 MOV [020A],BX↙ 186E:0116 ↙ 4、用“U”命令反汇编验证源程序 –U CS:0100↙ 186E:0100 A10002 MOV AX,[0200] 186E:0103 8B1E0202 MOV BX,[0202] 186E:0107 03060402 ADD AX,[0204] 186E:010B 131E0602 ADC BX,[0206] 186E:010F A30802 MOV [0208],AX 186E:0112 891E0A02 MOV [020A],BX 186E:0116 – 注意:

第一次实验报告

长春理工大学 汇编语言 预习报告 实验题目:DEBUG调试程序的使用 实验时间:2016年4 月 6 日实验地点:东三教912 班级:1405111 学号:140511114 姓名:王国伟

一.实验目的 a)学习使用DEBUG程序的各种命令。 b)利用DEBUG学习了解计算机取指令、执行指令的工作过程。 c)掌握用DEBUG调试自编程序的方法。 二.实验准备 了解什么是DEBUG 1. Debug 是DOS、WINDOWS都提供的实模式(8086方式)程序的调试工具。使用它,可以调试CPU各种寄存器中的内容、内存的情况和在机器码级跟踪程序运行。 实验中主要用到的DEBUG功能 1.R命令查看、改变CPU中寄存器的内容; 2.D命令查看内存的内容; 3.E命令改写内存的内容; 4.U命令将内存中的机器指令翻译成汇编指令; 5.T命令执行一条机器指令; 6.用DEBUG的A命令以汇编指令的格式在内存中写入一条机器指令 学习进入DEBUG的方式 1.使用win+R打开运行框 2.输入cmd指令进入DOS操作界面 3.在界面中输入debug来进入DEBUG编辑界面

使用DEBUG的几点说明 1.提示符“-”下才能输入命令,在按“回车”后该命令才开始执行 2.命令的大小写不区分 3.出现语法错误时,界面会给出”^ERROR” 4.用ctrl+c或ctrl+break来终止当前命令的执行,还可以用ctrl+s来暂停屏幕显 示(当连续不断地显示信息时) 5.BUG使用十六进制来计数 常用指令 1.R命令(Register) 格式1:R 功能1:显示所有寄存器中的内容 格式2:R寄存器名称 功能2:显示特定寄存器中的内容,并且可以做修改 2.D命令 功能:显示内存单元内容 格式1: D起始位置 功能1: DEBUG从起始位置显示128个字节的内容。输入命令D 0C0B:100格式2: D 起始位置结束位置 功能2: DEBUG 从起始位置一直显示到结束位置。输入命令D DS:100 11F 格式3: D 起始位置L 长度

计算机硬件基础实验报告1(单片机结构&寻址方式和指令系统)

实验2 单片机结构 姓名 孙叶城 学号 2011011700 实验班号 33 机器号 35 一、 实验目的 1. 了解MSP430F1XX 单片机结构 2. 掌握P1~P6基本输入/输出有关寄存器功能 3. 掌握计算机中数的表示和编码 4. 掌握汇编语言指令格式 二、 实验基本任务 1. 了解MSP430F1XX 单片机结构 1) 了解MSP430F149单片机结构 a) PC 当前的初值 0x1100 b) 记录MSP430F149的外围模块 8 bits:Special Function , Port1/2/3/4/5/6 , USART 0 UART/SPI Mode , USART 1 , System Clock , Comparator A ,SFR , RAM , INFO , FLASH. 16 bits: Watchdog Timer , Multiplier , Timer A3 , Timer B7 , ADC12 ,Flash . c) d) 绘制e) 思考为什么实验板的硬件系统对MSP430F13X 、MSP430F14X 和MSP430F16X 是 兼容的? FFFFh 1100h 09FFh 0200h 0000h 01FFh

2)了解MSP430F135单片机结构 a) PC 当前的初值 0xC000 b) 记录MSP430F135的外围模块 8 bits: Special Function , Port1/2/3/4/5/6 , USART 0 UART/SPI Mode , System Clock , Comparator A ,SFR , RAM , INFO , FLASH . 16 bits: Watchdog Timer, Timer A3 , Timer B3 , ADC12 ,Flash . c) 记录SFR 、RAM 、FLASH 的起始地址和末地址,并计算各空间大小 d) 绘制 e) 比较与MSP430F149的存储系统空间分配图有何不同 RAM 的末地址和FLASH 的起始地址不同。 进而RAM 和FLASH 的大小不同。 2. 了解端口P1~P6的选择PXSEL 、方向PXDIR 、输入PXIN 、输出PXOUT 各寄存器功能 FFFFh C000h 03FFh 0200h 0000h 01FFh

8086 CPU寻址方式

8086 CPU的七种基本的寻址方式 分别是:立即寻址、寄存器寻址、直接寻址、寄存器间接寻址、寄存器相对寻址、基址加变址寻址、相对基址加变址寻址 1. 立即寻址:操作数包含在指令中,是指令的一部分。此时的操作数称为立即数 MOV AX, 1234H 2. 寄存器寻址:操作数在CPU寄存器中,指令中指定寄存器编号 MOV SI, AX MOV AL, AH 3. 直接寻址:操作数在存储器中,指令直接包含操作数的有效地址。此时操作数一般存放在数据段DS中,采用换段前缀可以使用其它段寄存器。 MOV AX, [1234H] 4. 寄存器间接寻址:操作数在存储器中,操作数有效地址在SI、DI、BX、BP之一种。在不使用换段前缀的情况下,若有效地址在SI/DI/BX中,则以DS的值为段值;若有效地址在BP中,则以段寄存器SS的值为段值。 MOV AX, [SI] MOV [BP], CX 5. 寄存器相对寻址:操作数在存储器中,操作数的有效地址是一个基址寄存器(BX、BP)或变址寄存器(SI、DI)内容加上指令中给定的8位或16位位移量之和。即:EA = (BX/BP/SI/DI) + (8/16位位移量) 在不使用换段前缀的情况下,若SI/DI/BX的内容作为有效地址的一部分,则以DS的值为段值;若BP的内容作为有效地址的一部分,则以段寄存器SS的值为段值。 在指令中给定的8位或16位位移量以补码形式表示。在计算有效地址时,若位移量是8位,则将其有符号扩展为16位,当有效地址超过FFFFH,则对其进行64K取模。 例如:MOV AX, [DI+1223H] MOV BX, [BP-4] MOV ES:[BX+5], AL 注意:书写时基址或变址寄存器名一定要放在方括号中,而位移可以不写在方括号中。下面两条指令是等价的: MOV AX, [SI+3] 等价于MOV AX, 3[SI] 6. 基址加变址寻址:操作数在存储器中,操作数的有效地址由基址寄存器之一的内容与变址寄存器之一的内容相加得到。 EA = (BX/BP) + (SI/DI) 在不使用换段前缀的情况下,若BP的内容作为有效地址的一部分,则以SS的值为段值;否则以DS的值为段值。有效地址超过FFFFH,则对其进行64K取模。例如:MOV AX, [BX+DI] 等价形式MOV AX, [DI][BX] MOV AX, ES:[BX+SI] MOV DS:[BP+SI], AL

8086汇编语言程序设计实验指导书

汇编语言上机实验指导书 一、概述 上机实验总学时为16学时,其中综合性实验为2学时。实验共有6项暂定为8次,每次2学时。 1.实验辅导的主要内容 实验辅导的内容包括每个实验的实验目的;实验内容;对实验的算法及实验方法的必要说明;实验准备;实验步骤;实验报告要求;实验程序及参考框图。开始的实验介绍较细,后面的实验简要介绍。 2.实验的软硬件要求 关于汇编语言程序设计的硬件要求不高,有IBM-PC/XT即可,但应有彩色显示器以便进行图形实验。软件方面应有MASM.EXE5.0版(包括LINK.EXE),与MS-DOS版本配套的DEBUG程序和EDIT.EXE编辑软件(其它编辑软件也可以)。 3.加强实践能力的培养 实验目的不光是为了验证书本理论,更重要的是对实践能力的培养。其中包括: 实际调试程序的能力,例如修改程序参数的能力,查看结果的能力,设置断点调试运行的能力等; 开发汇编语言应用程序的能力,例如应用有关汇编软件的能力,进行系统调用和BIOS功能调用的能力,进行模块程序设计的能力等。 对某一问题用不同的程序实现的能力,例如我们为每个实验提供了参考程序(或程序段),目的是让每个实验者参照样板程序将实验成功地实现,在掌握其方法后,自己改变程序或自己编制程序加以实现。 实验一汇编语言运行环境及方法、简单程序设计(2学时、验证性) 1.实验目的: (1) 熟悉汇编语言运行环境和方法 (2)了解如何使用汇编语言编制程序 (3) 熟悉DEBUG有关命令的使用方法 (4) 利用DEBUG掌握有关指令的功能 (5) 利用DEBUG运行简单的程序段 2.实验内容 (1)学会输入、编辑汇编语言程序 (2)学会对汇编语言程序进行汇编、连接和运行 (3)进入和退出DEBUG程序 (4)学会DEBUG中的D命令、E命令、R命令、T命令、A命令、G命令等的使用。对于U命令、N命令、W命令等,也应试一下。 3.实验准备 (1)仔细阅读有关汇编语言环境的内容,事先准备好使用的例子。 (2)准备好源程序清单、设计好调试步骤、测试方法、对运行结果的分析。 (3) 编写一个程序:比较2个字符串所含的字符是否相同。若相同则显示’Match.’,否则显示’No match!’;(1)仔细阅读有关DEBUG 命令的内容,对有关命令,都要事先准备好使用的例子。 4.实验步骤 (1)在DOS提示符下,进入MASM目录。 (2)在MASM目录下启动EDIT编辑程序,输入源程序,并对其进行汇编、连接和运行。 ①调用edit输入、编辑源程序并保存在指定的目录中;例:edit abc.asm ②用汇编程序masm对源程序汇编产生目标文件obj。例:masm abc 不断修改错误,直至汇编通过为止。 ③用连接程序link产生执行文件exe.例:link abc ④执行程序 可直接从DOS执行程序,即在DOS环境中,输入文件名即可。 (3)详细记录每一步所用的命令,以及查看结果的方法和具体结果。 5.实验报告要求 (1)源程序清单。 (2) 如何启动和退出EDIT程序。 (3) 如何对源程序进行汇编及编辑。 (4)如何启动和退出DEBUG程序。

相关主题
文本预览
相关文档 最新文档