实验一、数制转换实验
1.1.1 实验目的
1. 掌握不同进制数及编码相互转换的程序设计方法,加深对数制转换的理解;
2. 熟悉程序调试的方法。
1.1.2 实验设备
PC机一台,TD-PITC 实验装置一套。
1.1.3 实验内容及步骤
计算机输入设备输入的信息一般是由ASCII 码或BCD 码表示的数据或字符,CPU 一般均用二进制数进行计算或其它信息处理,处理结果的输出又必须依照外设的要求变为ASCII码、BCD 码或七段显示码等。因此,在应用软件中,各类数制的转换是必不可少的。
计算机与外设间的数制转换关系如图1-2-1所示,数制对应关系如表1-2-1所示
图1-1  数制转换关系
表1-2 数制对应关系表
1.2  将ASCII码表示的十进制数转换为二进制数
1.2.1 实验原理
十进制表示为:
Di代表十进制数0,1,2, (9)
上式转换为:
(2)由式(2)可归纳十进制数转换为二进制数的方法:从十进制数的最高位Dn 开始作乘10加次位的操作,依次类推,则可求出二进制数的结果。程序流程图如图1-2-2 所示。实验参考程序如下。
图1-2 转换程序流程图
1.2.2  实验程序清单(例程文件名:A2-1.ASM)
流程图转换为ns图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.3  实验步骤
(1)绘制程序流程图,编写实验程序,经编译、链接无误后装入系统;
(2)待转换数据存放于数据段,根据自己要求输入,默认为30H,30H,32H,35H,36H;(3)运行程序,然后停止程序;
(4)查看AX 寄存器,即为转换结果,应为:0100 ;
(5)反复试几组数据,验证程序的正确性。
1.3. 十六进制数转换为ASCII码
1.3.1 实验原理
由表1-2-1 中十六进制数与ASCII 码的对应关系可知:将十六进制数0H~09H 加上30H 后得到相应的ASCII码,AH~FH 加上37H 可得到相应的ASCII码。将四位十六进制数存放于起始地址为3500H 的内存单元中,把它们转换为ASCII 码后存入起始地址为350AH 的内存单元中。自行绘制流程图。
1.3.2  实验程序清单
SSTACK SEGMENT STACK
DW 64 DUP(?)
SSTACK ENDS
CODE SEGMENT
ASSUME CS:CODE
START: MOV CX,0004H
MOV DI,3500H ;十六进制数源地址
MOV DX,[DI]
A1: MOV AX,DX
AND AX,000FH ;取低4位
CMP AL,0AH
JB A2 ;小于0AH则转A2
ADD AL,07H ;在A~FH之间,需多加上7H
A2: ADD AL,30H ;转换为相应ASCII码
MOV [DI+0DH],AL ;结果存入目标地址
DEC DI
PUSH CX
MOV CL,04H
SHR DX,CL ;将十六进制数右移4位
POP CX
LOOP A1
A3: JMP A3
CODE ENDS
END START
1.3.3  实验步骤
(1)编写程序,经编译、链接无误后装入系统;
(2)在3500H、3501H 中存入四位十六进制数203B,即键入E3500,然后输入3B 20;(3)先运行程序,然后再停止运行;
(4)键入D350A,显示结果为:0000:350A 32 30 33 42 CC …;
(5)反复输入几组数据,验证程序功能。
实验二循环程序设计实验
2.1.1 实验目的
1. 加深对循环结构的理解;
2. 掌握循环结构程序设计的方法以及调试方法。
2.1.2 实验设备
PC机一台,TD-PITC 实验装置一套。
2.1.3 实验内容及步骤
2. 2  求某数据区内负数的个数
2.2.1 实验原理
设数据区的第一单元存放区内单元数据的个数,从第二单元开始存放数据,在区内最后一个单元存放结果。为统计数据区内负数的个数,需要逐个判断区内的每一个数据,然后将所有数据中凡是符号位为1 的数据的个数累加起来,即得到区内所包含负数的个数。
实验程序流程图如图1-5-2所示。
图2-1 程序流程图
2.2.2  实验程序清单
SSTACK SEGMENT STACK
DW 64 DUP(?)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。