计算机与信息工程学院实验报告
2.8 查表程序设计实验
一、实验内容
设计一个查表程序。 二、实验目的及要求
1. 掌握查表程序的基本程序结构。 2. 学习综合程序的设计、编制及调试。
三、实验环境
PC机一台,TD-PITE实验装置或TD-PITC实验装置一套。 四、实验方法过程(步骤)
.1、80X86指令系统提供了实现查表程序的基本指令,编写程序。 2、加载程序并编译程序。
3、调试通过后全速运行并观察实验结果。 4、编写实验报告。 五、算法描述
所谓查表,就是根据某个值,在数据表格中寻找与之对应的一个数据,在很多情况下,通过查表比通过计算要使程序更简单,更容易编制。
通过查表的方法实现十六进制数转换为ASCII码。
六、源程序清单 SSTACK SEGMENT STACK DW 32 DUP(?) SSTACK ENDS
PUBLIC ASCH, ASCL, HEX ;定义全局变量
DATA SEGMENT ;十六进制数0~9,A,B,C,D,E,F对应ASC码表 TAB DB 30H,31H,32H,33H,34H,35H,36H,37H,38H,39H DB 41H,42H,43H,44H,45H,46H HEX DB ? ;待转换的十六进制数 ASCH DB ? ;高4位转换的ASCII码 ASCL DB ? ;低4位转换的ASCII码 DATA ENDS ·6·
计算机与信息工程学院实验报告
CODE SEGMENT
ASSUME CS:CODE, SS:SSTACK, DS:DATA START: PUSH DS XOR AX, AX MOV AX, DATA MOV DS, AX
AA1: MOV AL, HEX ;需转换的十六进制数 MOV AH, AL AND AL, 0F0H MOV CL, 04H SHR AL, CL
MOV BX, OFFSET TAB ;表首地址存放于BX中 XLAT
MOV ASCH, AL ;存放十六进制数高4位的BCD码 MOV AL, AH AND AL, 0FH XLAT
MOV ASCL, AL ;存放十六进制数低4位的BCD码 NOP
JMP AA1 ;在此处设置断点,观察转换结果 CODE ENDS END START
七、运行结果及分析
程序运行结果为ASCH为31,ASCL为32。
0~9的ASCII码为30H~39H,而A~F的ASCII码为41H~46H,这样就可以将0~9与A~F对应的ASCII码保存在一个数据表格中。当给定一个需要转换的十六进制数时,就可以快速的在表格中找出相应的ASCII码值。此实验中输入的2个数中,1的ASCII码是31,2的ASCII码是32。此程序中十六进制数的ASC码已经存入数据段中,只要输入要转换的数,就能输出对应的ASC码。其中:ASCH为第一个数的ASC码,ASCL为第二个数的ASC码。
·7·