实验一 微机原理 系统认识试验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验报告
课程名称微型计算机原理原理与接口技术实验项目系统认识、数码转换、运算编程实验实验仪器Wmd86联机软件、PC机一台
学院____信息管理学院_ ___
专业信息安全
班级/学号信安1001班/2010012233
学生姓名姚兴仁
实验日期2012/04/09
成绩______________________
指导教师_________ ________
实验一系统认识、数码转换、运算编程实验
一、实验目的
1.掌握TDN86/88教学系统的基本操作。
2.学习数码转换的程序设计方法;
3.学习运算编程方法。
二、实验设备
1.PC机一台;
2.TDN86/88教学实验系统一台。
三、实验内容及步骤
1.系统认识实验
从3500H内存单元开始建立0-15共16个数据。
实验程序如下:
STACK1 SEGMENT STACK ;8088 宏汇编程序
DW 64 DUP(?) ;定义堆栈段
STACK1 ENDS
CODE SEGMENT ;定义代码段
ASSUME CS:CODE
START: MOV DI,3500H ;程序开始设数据区首址
MOV CX,0010H ;字节数送入CX中
MOV AX,0000H
A1: MOV [DI],AL ;写入一字节
INC DI ;修改地址指针
INC AX ;修改数据
DAA ;十进制调整
LOOP A1 ;未填完转移
A2: JMP A2
CODE ENDS ;代码段结束
END START ;程序结束
实验步骤
(1)启动Wmd86联机软件
Wmd86联机软件的启动方式有两种,可以在【开始】/【程序】/【TangDu】菜单中单击“Wmd86”的程序组启动,也可以直接双击桌面上的“Wmd86”快捷键启动该程序组。启动应用程序进入主界面窗口后,应显示“串口通讯成功”小窗口,若显示“串口通讯不成功”,
说明上位机和下位机的连接不正常或下位机死机,请确认下位机电源已经打开,串口线两端接触良好。
(2)输入源程序,检查无误后存盘。
(3)对源程序进行编译、链接和加载,可以使用编译菜单项,也可以使用编译工具栏。
(4)运行程序,观察结果。
连续运行程序,在输出区中的调试区用DEBUG命令观察运行结果,即键入D0000:3500 ↙,可查看3500H-350FH单元中的内容是否为0-15共16个数。注意,因本程序的结尾为死循环,应在程序运行后停止运行再观察结果。
(5)熟悉系统提供的单步运行、断点运行等功能,可以使用调试菜单项,也可以使用调试工具栏。
2.数码转换实验(将十进制数的ASCⅡ码转换为BCD码)
设从键盘输入的五位十进制数的ASCⅡ码已存放在3500H起始的内存单元内,把它转换为 BCD 码后,再按位分别存入 350AH 起始的内存单元内。若输入的不是十进制数的ASCⅡ码,则对应存放结果的单元内容为“FF”。具体方法是,一字节ASCⅡ码取其低四位即变为BCD码。实验程序如下:
STACK1 SEGMENT STACK
DW 64 DUP(?)
STACK1 ENDS
CODE SEGMENT
ASSUME CS:CODE
START: MOV CX,0005H ;循环计数器赋初值
MOV DI,3500H ;ASCⅡ码首址
A1: MOV BL,0FFH ;将错误标志送入BL
MOV AL,[DI] ;送ASCⅡ码至AL
CMP AL,3AH ;比较AL与3A
JNB A2 ;不低于3A则转A2
SUB AL,30H ;低于3A则取ASCⅡ码低4位
JB A2 ;低于30则转A2
MOV BL,AL ;否则AL内容送入BL,取代FF
A2: MOV AL,BL ;结果或错误标志送入AL
MOV [DI+0AH],AL
INC DI
LOOP A1
A3: JMP A3
CODE ENDS
END START
实验步骤
(1)阅读程序,画出程序流程图。
(2)输入源程序,进行编译、链接和加载。
(3)在3500-3504H单元中存放五位十进制数的ASCⅡ码,即在调试区键入E0000:3500↙,并输入31、32、33、34、35。
(4)连续运行程序后停止运行,查看运行结果,即在调试区键入D0000:350A ↙,显示结果应为:0000:350A 01 02 03 04 05 CC …
(5)反复试几组数,并运行程序,观察结果。
3.运算编程实验(二进制双精度加法运算)
计算X+Y=Z,将结果Z存入某存储单元。实验程序如下:
STACK1 SEGMENT STACK
DW 64 DUP(?)
STACK1 ENDS
DATA SEGMENT
XL DW ? ;请在此处给X低位赋值
XH DW ? ;请在此处给X高位赋值
YL DW ? ;请在此处给Y低位赋值
YH DW ? ;请在此处给Y高位赋值
ZL DW ?
ZH DW ?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV AX,XL ;X低位送AX
ADD AX,YL ;X低位加Y低位
MOV ZL,AX ;存低位和
MOV AX,XH ;X高位送AX
ADC AX,YH ;X高位加Y高位
MOV ZH,AX
A1: JMP A1
CODE ENDS
END START
本实验程序是双精度(2个16位,即32位)运算,利用累加器AX,先求低十六位和,并存入低址存储单元,后求高16位和,再存入高址存储单元。由于低位和可能向高位有进位,因而高位字相加语句需用ADC指令,则低位相加有进位时,CF=1,高位字相加时,同时加
上CF中的1。
实验步骤
(1)输入源程序,进行编译、链接和加载。
(2)运行程序并检查结果。
(3)反复试几组数,考察程序的正确性。
试验一结果: