西电电院微机原理上机实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微机原理上机作业
班级: 021215班
学号: 02121443
姓名:惠政
日期: 2014年11月23日
第一次上机:上级作业(一)
寻址方式练习
一.实验目的
1. 熟练掌握8086/8088的各种寻址方式及应用。
2. 掌握DEBUG调试程序中的一些常用命令的使用方法,为以后的实验打下基础。二.实验仪器
586微机 1台
三.实验内容
1.关于数据的寻址方式练习
8086/8088 提供多种方式实现操作数寻址,大体可分为7种:
a. 立即寻址
b. 寄存器寻址
c. 直接寻址
d. 寄存器间接寻址
e. 寄存器相对寻址
f. 基址变址寻址
g. 基址变址且相对寻址
掌握8086/8088的这些寻址方式,是学习汇编语言编程的关键。因此,我们编写了下面的程序段,以数据传送指令为例,列举了部份寻址方式,请同学们按下列要求认真完成。 [1] 在全屏幕编辑软件下,建立以下汇编语言源程序。
STACK SEGMENT STACK
DB 0B0H, 0B1H, 0B2H, 0B3H, 0B4H, 0B5H, 0B6H, 0B7H
DB 0B8H, 0B9H
DB 0BAH, 0BBH, 0BCH, 0BDH, 0BEH, 0BFH
DB 10H DUP(00)
STACK ENDS
DATA1 SEGMENT
DB 0A0H, 0A1H, 0A2H, 0A3H
TABLE DW 0A5A4H
DB 0A6H, 0A7H, 0A8H, 0A9H, 0AAH, 0ABH
DB 0ACH, 0ADH, 0AEH, 0AFH
DATA1 ENDS
DATA2 SEGMENT
DB 0C0H, 0C1H, 0C2H, 0C3H, 0C4H, 0C5H, 0C6H, 0C7H
DB 0C8H ,0C9H, 0CAH, 0CBH, 0CCH, 0CDH, 0CEH, 0CFH
DATA2 ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA1, ES:DATA2, SS:STACK
START: MOV AX, DATA1
MOV DS, AX
MOV AX, DATA2
MOV ES, AX
MOV BX, 0004H
MOV CX, 0005H
MOV BP, 0003H
MOV SI, 0002H
MOV DI, 0001H
MOV AX, CX ;以下指令按后表要求完成 MOV AX, 500H
MOV AX, TABLE
MOV AX, ES:[BX]
MOV AX, [BX+05H]
MOV AX, SS:[BX]+03H
MOV AX, TABLE [BX]
MOV AX, 07H [BX]
MOV AX, [BP]
MOV AX, TABLE [BP]
MOV AX, 08H [BP]
MOV AX, [BP+06H]
MOV AX, DS:[BP+03H]
MOV AX, [BP]+05H
MOV AX, ES: [SI+03H]
MOV AX, [DI+06H]
MOV AX, [DI]+05H
MOV AX, TABLE [SI]
MOV AX, [SI]
MOV AX, TABLE [DI]
MOV AX, [SI]+05H
MOV AX, [BX] [DI+01H]
MOV AX, [BX] [SI]+03H
MOV AX, TABLE [BX] [SI]
MOV AX, ES:[BX] [DI]
MOV AX, [BP] [DI+02H]
MOV AX, TABLE [BP] [DI]
MOV AX, ES:[BP] [SI]
MOV AX, [BP] [SI+05H]
MOV AX, 03H [BP] [DI]
MOV AX, [BP] [SI]
MOV AX, [BP+02H] [DI+03H]
MOV AX, TABLE [BP+02H] [DI+03H]
MOV AH, 4CH
INT 21H
CODE ENDS
END START
[5] 用T命令单步运行程序,并用R 命令检查AX结果,同时将结果作为实际值填入上表中,和推算值进行比较,从而检验自己对该条指令对应的寻址方式是否掌握。也可用D 命令察看存贮器的内容,具体操作方法参看DEBUG使用部分。
四.问题讨论
在上表中,分析AX推算值与实际值有何不同?找出错误原因,小结出各种寻址方式所用的段寄存器的规律来。
第二次上级:上机作业(二)
程序设计联系
一.实验目的
1.熟练掌握汇编语言程序设计的方法及上机步骤。
2.掌握算术运算中,十进制数调整指令的应用。
3.掌握子程序的设计方法。
4.掌握DOS功能的调用方法。
二.实验仪器
586微机 1台
二.实验内容
1.编写求十进制数12678532与21736543之和的程序,并将和以十进制数的形式送屏幕显示。
编程要求与提示:
[1] 两个加数均以压缩(组合)十进制数形式存放在ADD1和ADD2为首址的存贮器单元。
[2] 和以压缩十进制数的形式存入SUM以下单元。
[3] 将和送到屏幕显示部分功能的实现采用子程序的形式。
[4] 实验步骤如下:
a. 用全屏幕编辑软件建立源程序。