微型计算机原理实验报告系统认识,实验一 微机原理 系统认识试验报告.doc

本次实验报告详细记录了基于Wmd86联机软件的微型计算机原理实验,包括系统认识、数码转换和运算编程三个部分。在系统认识实验中,学习了TDN86/88教学系统的基本操作,通过内存单元的数据写入验证了程序的正确性。数码转换实验涉及将十进制ASCⅡ码转换为BCD码,通过程序实现了这一转换过程。运算编程实验则进行了二进制双精度加法运算,展示了如何存储和处理高位和低位的进位。实验过程中强调了程序的运行、调试和结果观察技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实 验 报 告

课程名称 微型计算机原理原理与接口技术

实验项目 系统认识、数码转换、运算编程实验

实验仪器 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

XLDW ? ;请在此处给X低位赋值

XHDW ? ;请在此处给X高位赋值

YLDW ? ;请在此处给Y低位赋值

YHDW ? ;请在此处给Y高位赋值

ZLDW ?

ZH DW ?

DATAENDS

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) 反复试几组数,考察程序的正确性。

试验一结果:

实验二数据修改:

>0000:3500=11_11

>0000:3501=01_12

>0000:3502=02_13

>0000:3503=11_14

>0000:3504=01_15

>0000:3505=02_16

>0000:3506=11_17

>0000:3507=01_18

>0000:3508=02_21

>0000:3509=02_22

>0000:3510=02_23

>0000:3511=02_24

>0000:3512=02_25

>0000:3513=02_26

>0000:3514=02_27

>0000:3515=02_28

结果:

>0000:3500 11 12 13 14 15 16 17 18

>0000:3508 21 22 23 24 25 26 27 28

实验三过程:

XLDW 33 ;请在此处给X低位赋值

XHDW 22 ;请在此处给X高位赋值

YLDW 01 ;请在此处给Y低位赋值

YHDW 28 ;请在此处给Y高位赋值

ZLDW ?

ZH DW ?

实验结果:

0208:0000 33 00 22 00 01 00 28 00

>0208:0008 34 00 4A 00 00 00 00 00

XLDW 13 ;请在此处给X低位赋值

XHDW 25 ;请在此处给X高位赋值

YLDW 36 ;请在此处给Y低位赋值

YHDW 47 ;请在此处给Y高位赋值

ZLDW ?

ZH DW ?

实验结果:

0208:0000 13 00 25 00 36 00 47 00

>0208:0008 49 00 6C 00 00 00 00 00

实验总结:

1、 要看清试验过程,可以使用单步操作。

2、 设置断点,可以使程序运行到某个断点。

3、 在输出区中的调试区可用DEBUG命令观察运行结果。

4、 因程序的结尾为死循环,应在程序运行后停止运行再观察结果。

5、 当运行结果与预期不相符时,可以按复位键,回复定位,重新进行实验。

6、 高位字相加语句需用ADC指令。

展开阅读全文

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值