微机原理实验2012(1)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微机原理与接口技术实验安排
实验要求
一、总体要求
熟悉8086仿真工具软件。
二、学时安排
本次《微机原理与接口技术》共10个学时,其中软件6个学时,硬件4个学时。
软件学时共分3次,由各班和实验室老师直接联系安排学习时间,在本学期15~16周完成。
1、第一次课学生熟悉软件本身的功能。
2、第二次课,学生按照要求完成实验三、实验四的内容,并完成第三次课
的编程内容。
3、第三次课,学生按照学号,完成《软件编程题目》中的实际测试内容。
实验一数据传送
三、实验目的
1.熟悉8086指令系统的数据传送指令及8086的寻址方式。
2.利用EMU调试工具来调试汇编语言程序。
四、实验预习要求
1.复习8086指令系统中的数据传送类指令和8086的寻址方式。
2.预习EMU的使用方法:
a)如何启动EMU;
b)如何在各窗口之间切换;
c)如何查看或修改寄存器、状态标志和存储单元的内容;
d)如何输入程序段;
3.按照题目要求预先编写好实验中的程序段。
五、实验任务
1.通过下述程序段的输入和执行来熟悉EMU的使用,并通过显示器屏幕观察程序的执行情况。练习程序段如下:
MOV BL,08H
MOV CL,BL
MOV AX,03FFH
MOV BX,AX
MOV DS:[0020H],BX
2.用以下程序段将一组数据压入(PUSH)堆栈区,然后通过不同的出栈顺序出栈,观察出栈后数据的变化情况。压栈程序段如下:
MOV AX,0102H
MOV BX,0304H
MOV CX,0506H
MOV DX,0708H
PUSH AX
PUSH BX
PUSH CX
PUSH DX
出栈程序段请自行编写(用不同的出栈顺序)。
3.指出下列指令的错误并加以改正,上机验证之。
(1) MOV [BX],[SI] 不能在两个内存之间操作
(2) MOV AH,BX 变量未定义,操作数不一致
(3) MOV AX,[SI][DI] [SI]不能和[DI]相配
(4) MOV BYTE PTR[BX],2000H 操作数不匹配
(5) MOV CS,AX CS不能直接修改
(6) MOV DS,2000H 不能使用立即值,只能使用段寄存器
4. 设置各寄存器及存储单元的内容如下:
(BX)=0010H ,(SI)=0001H
(10010H)=12H ,(10011H)=34H ,(10012H)=56H ,(10013H)=78H (10120H)=0ABH ,(10121H)=0CDH ,(10122H)=0EFH 说明下列各条指令执行完后AX 寄存器中的内容,并上机验证。 (1) MOV AX ,1200H (2) MOV AX ,BX (3) MOV AX ,[0120H] (4) MOV AX ,[BX] (5) MOV AX ,0110H[BX] (6) MOV AX ,[BX][SI] (7) MOV AX ,0110H[BX][SI]
5. 将DS :1000H 字节存储单元中的内容送到DS :2020H 单元中存放。试分别用8086的直接寻址、寄存器间接寻址、变址寻址、寄存器相对寻址传送指令编写程序段,并上机验证结果。
6. 设AX 寄存器中的内容为1111H ,BX 寄存器中的内容为2222H ,DS :0010H 单元中的内容为3333H 。将AX 寄存器中的内容与BX 寄存器中的内容交换,然后再将BX 寄存器中的内容与DS :0010H 单元中的内容进行交换。试编写程序段,并上机验证结果。
7. 设(DS)=1000H ,(ES)=2000H ,有关存储器的内容如图1.5所示。要求将DS 段的内容传送到AX 寄存器,ES 段的内容传送到BX 寄存器,试编写程序段。
六、 实验报告要求
DS :1000H
ES :2000H
1.写明本次实验内容和实验步骤。
2.整理出运行正确的各题源程序段和运行结果。
3.写出第3题中改正后的正确指令。
4.小结EMU的使用方法
实验二算术逻辑运算及移位操作一、实验目的
1.熟悉算术逻辑运算指令和移位指令的功能。
2.了解标志寄存器各标志位的意义和指令执行对它的影响。
二、实验预习要求
1.复习8086指令系统中的算术逻辑类指令和移位指令。2.按照题目要求在实验前编写好实验中的程序段。
三、实验任务
1.实验程序段及结果表格如表1.2:
表1.2
2.用BX寄存器作为地址指针,从BX所指的内存单元(0010H)开始连续存入三个无符号数(10H、04H、30H),接着计算内存单元中的这三个数之和,和放在0013H单元中,再求出这三个数之积,积放0014单元中。写出完成此功能的
程序段并上机验证结果。
3.写出完成下述功能的程序段。上机验证你写出的程序段,程序运行的最后结果(AX)=?
(1) 传送15H到AL寄存器;
(2) 再将AL的内容乘以2;
(3) 接着传送15H到BL寄存器;
(4) 最后把AL的内容乘以BL的内容。
4.写出完成下述功能的程序段。上机验证你写出的程序段,程序运行后的商=?
(1) 传送数据2058H到DS:1000H单元中,数据12H到DS:1002H单元中;
(2) 把DS:1000H单元中的数据传送到AX寄存器;
(3) 把AX寄存器的内容算术右移二位;
(4) 再把AX寄存器的内容除以DS:1002H字节单元中的数;
(5) 最后把商存入字节单元DS:1003H中。
5.下面的程序段用来清除数据段中从偏移地址0010H开始的12个字存储单元的内容(即将零送到这些存储单元中去)。
(1) 将第4条比较指令语句填写完整(划线处)。
MOV SI,0010H
NEXT: MOV WORD PTR[SI],0
ADD SI,2
CMP SI,
JNE NEXT
HLT
(2) 假定要按高地址到低地址的顺序进行清除操作(高地址从0020H开始),则上述程序段应如何修改?
上机验证以上两个程序段并检查存储单元的内容是否按要求进行了改变。