内容发布更新时间 : 2024/11/13 7:50:46星期一 下面是文章的全部内容请认真阅读。
运行程序,当遇到断点时程序会停下来,然后观察数据。可以使用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