(汇编语言程序设计》实验指导书.doc
文本预览下载声明
前 言
《汇编语言程序设》在计算机科学中是一门综合性的专业基础课,是计算机专业的核心课程。它不仅是一般程序设计的基础,而且也是设计和实现编译程序、操作系统及其它系统程序和大型应用程序的重要基础。它为后续专业课程的学习打下理论基础实践基 共阳 共阴 0 0 000 0000 0000 30H 40H 3FH 1 1 001 0001 0001 31H 79H 06H 2 010 0010 0010 32H 24H 5BH 3 011 0011 0011 33H 30H 4FH 4 100 0100 0100 34H 19H 66H 5 101 0101 0101 35H 12H 6DH 6 110 0110 0110 36H 02H 7DH 7 111 0111 0111 37H 78H 07H 8 1000 1000 38H 00H 7FH 9 1001 1001 39H 18H 67H A 1010 41H 08H 77H B 1011 42H 03H 7CH C 1100 43H 46H 39H D 1101 44H 21H 5EH E 1110 45H 06H 79H F 1111 46H 0EH 71H
本次试验的内容是ASCⅡ码转换为未组合BCD码
设从键盘输入十进制数的ASCⅡ码已存放在起始地址CS :150H的单元中,把它转换成未组合BCD码后,再分别存入起始地址为CS:15AH的单元中。若输入的不是十进制数的ASCⅡ码,则相应存放结果单元的内容为“FF”。
提示:
1.组合BCD码是一位十进制数字占一个字节,高半字节为0,低半字节为该十进制数字的BCD码。ASCⅡ码转换为未组合BCD码只需减30H。
2.程序框图如下图所示。
3.程序执行前,需要在CS:150H内存缓冲区写入待转换的ASCⅡ码。方法如下:
方法一:用A命令
-ACS:150 DB 35,39,30,41,32
CS:155 ∧C
方法二:用E 命令
-ECS:150,35,39,30,41,32
方法三:用F命令
-FCS:150 L5 35,39,30,41,32
执行程序后检查执行结果可用D命令:
-DCS:15A
CS:15A 05,09,00,FF,02
ASCⅡ码转换为未组合BCD码的程序流程图
三.参考程序
ORG 100H
MOV CX,0005H
MOV DI,150H
BB: MOV BL,0FFH
MOV A,[DI]
CMP AL,3AH
JNB DONE
SUB AL,30H
JB DONE
MOV BL,AL
DONE: MOV AL,BL
MOV [DI+0AH],AL
INC DI
LOOP BB
INT 20H
ORG 150H
DB 35H,39H,30H,41H,32H
四.运行结果
五.调试分析及实验心得
六.源程序清单
实验二 顺序结构的程序设计
一.实验目的
1.掌握计算机常用代码的软件转换技术。
2.进一步首席DEBUG软件的使用。
3.掌握简单顺序结构程序的编程方法。
二.实验内容
本次实验的内容延续上一次实验内容,将16进制数转换为ASCⅡ码,相关内容参看上一次实验的表格。
设经过CPU运算后的4位16进制数已存放在CS:150H字单元中,把它转换为ASCⅡ码后分别存入CS:15AH为起始地址的4个单元中,低位数存在低地址的字节中。
提示:
1.十六进制数0-9H加30H即可得到ASCⅡ码,而A-FH则需要加37H,也就是加7H后再加30H,才能完成转换。因此对每一位十六进制数应先判断是0-9H的数还是A——FH的数,再分别加30H和37H即可完成转换。
2.4位数的转换需用循环程序结构。用CX作为计数器,DI作为地址指针,指向150H单元,则DI+0AH就指向结果存放单元。用逻辑右移指令使高位逐个地移至个位,用AND指令可以将个位从4位数中分离出来进行转换。
MOV CL,04H
SHR DX,CL
两条指令使DX中的数右移4位,由于CX已用做循环控制计数器,因此右移前应将CX压栈保护,移位后再出栈恢复CX。
3.程序流程图如下图所示。
显示全部