80x86微机原理与接口技术实验指导书 下载本文

内容发布更新时间 : 2024/5/19 22:21:59星期一 下面是文章的全部内容请认真阅读。

运行程序,当遇到断点时程序会停下来,然后观察数据。可以使用E0000:3000 来改变该地址单元的数据,如图1-1-10 所示,输入11 后,按“空格”键,可以接着输入第二个数,如22,结束输入按“回车”键。

图1-1-9 断点设置显示 图1-1-10 修改内存单元数据显示界面

实验例程文件名为Wmd861.asm。

1.1.5 操作练习

编写程序,将内存3500H 单元开始的8 个数据复制到3600H 单元开始的数据区中。通过调试验证程序功能,使用E命令修改3500H单元开始的数据,运行程序后使用D命令查看3600H单元开始的数据。

1.2 数制转换实验

1.2.1 实验目的

1. 掌握不同进制数及编码相互转换的程序设计方法,加深对数制转换的理解; 2. 熟悉程序调试的方法。

1.2.2 实验设备

PC机一台,TD-PITE 实验装置一套。

1.2.3 实验内容及步骤

计算机输入设备输入的信息一般是由ASCII 码或BCD 码表示的数据或字符,CPU 一般均用二进制数进行计算或其它信息处理,处理结果的输出又必须依照外设的要求变为ASCII码、BCD 码或七段显示码等。因此,在应用软件中,各类数制的转换是必不可少的。

计算机与外设间的数制转换关系如图1-2-1所示,数制对应关系如表1-2-1所示

图1-2-1 数制转换关系

表1-2-1 数制对应关系表

续表1-2-1

1. 将ASCII码表示的十进制数转换为二进制数 十进制表示为:

()

Di代表十进制数0,1,2,?,9; 上式转换为:

(2)

由式(2)可归纳十进制数转换为二进制数的方法:从十进制数的最高位Dn 开始作乘10加次位的操作,依次类推,则可求出二进制数的结果。程序流程图如图1-2-2 所示。实验参考程序如下。

实验程序清单(例程文件名:A2-1.ASM)

SSTACK SEGMENT STACK

DW 64 DUP(?)

SSTACK ENDS DATA SEGMENT

SADD DB 30H,30H,32H,35H,36H ;十进制数:00256 DATA ENDS CODE SEGMENT

ASSUME CS:CODE, DS:DATA

START: MOV AX, DATA

MOV DS, AX

MOV AX, OFFSET SADD MOV SI, AX MOV BX, 000AH MOV CX, 0004H MOV AH, 00H MOV AL, [SI] SUB AL, 30H

A1: IMUL BX

MOV DX, [SI+01] AND DX, 00FFH ADC AX, DX SUB AL, 30H INC SI LOOP A1

A2: JMP A2 CODE ENDS

END START

图1-2-2 转换程序流程图

实验步骤

(1)绘制程序流程图,编写实验程序,经编译、链接无误后装入系统;

(2)待转换数据存放于数据段,根据自己要求输入,默认为30H,30H,32H,35H,36H; (3)运行程序,然后停止程序;

(4)查看AX 寄存器,即为转换结果,应为:0100 ; (5)反复试几组数据,验证程序的正确性。

2. 将十进制数的ASCII码转换为BCD 码

从键盘输入五位十进制数的ASCII码,存放于3500H起始的内存单元中,将其转换为BCD 码后,再按位分别存入350AH 起始的内存单元内。若输入的不是十进制的ASCII码,则对应存放结果的单元内容为“FF”。由表1-2-1可知,一字节ASCII码取其低四位即变为BCD 码。 实验程序清单(例程文件名:A2-2.ASM)

SSTACK SEGMENT STACK

DW 64 DUP(?)

SSTACK ENDS CODE SEGMENT

ASSUME CS:CODE

START: MOV CX, 0005H ;转换位数

MOV DI, 3500H ;ASCII码首地址

A1: MOV BL, 0FFH ;将错误标志存入BL

MOV AL, [DI] CMP AL, 3AH