_微机实验报告 (2)
.
..
微机实验报告
学 院: ###
专业班级: ##
序 号: ##
姓 名: ###
实验名称: 实验二:数码转码编程及程序调试
实验日期: 2016.04
实验二 数码转码编程及程序调试
一.实验目的
1.掌握不同进程数及编码相互转换的程序设计方法,加深对数码转换的理解;
2.进一步熟悉键盘使用方法;
3. 进一步熟悉调试程序的方法
二. 实验设备
装有汇编软件的IBMPC 机一台
实验内容
将ASCII码表示的十进制数转换为二进制数。这里我们规定:被转换的ASCII码十进制数存放在3500h~3504h单位中。而转换结果在3510~3511单位中。
将从键盘输入的五位十进制数的ASCII码已存在3500起始的内存单元中。把它转换成BCD码后,再按位分别存入3510起始的内存单元内。若输入的不是十进制的ASCII码,则显示FF.
将十六位二进制数转换为ASCII码表示的十进制数。十六进制数的值域为0~65535,最大可转换为五位十进制数。
十六进制数转换为ASCII码。设经过CPU处理后的十六进制存放在起始地址为3500H的内存中,把它们转换成ASCII码之后,再分别存入起始地址为3510的内存单元中。
BCD码转换为二进制码。设四个二位十进制的BCD码存放在起始地址为3500H的单元中,转换出的二进制数码存入起始为3510的内存单元中。
程序代码及运行结果
实验1
DATA SEGMENT
ORG 3500H
SOURCE1 DB 30H,30H,30H,31H,32H
ORG 3510H
RESULT DW ?
ORG 3520H
COUNT EQU 4
ORG 3530H
MULNUM DW 10
DATA ENDS
CODE SEGMENT
ASSUME DS:DATA ,CS:CODE
START: MOV AX,DATA
MOV DS,AX
MOV CL,COUNT
MOV SI,OFFSET MULNUM
MOV AX,0
MOV DX,0
MOV BX,OFFSET SOURCE1
ADD AL,BYTE PTR[BX]
SUB AX,30H
NEXT:MUL WORD PTR[SI]
INC BX
ADD AL,BYTE PTR[BX]
XCHG AH,DH
LAHF
AND AH,01H
ADD AH,DH
SUB AX,30H
DEC CL
JNZ NEXT
MOV BX,OFFSET RESULT
MOV [BX],AX
RET
CODE ENDS
END START
运行结果:
3500~3504h单元存入30H,30H,30H,31H,32H,结果如下:
3500~3504h单元存入31H,32H,33H,34H,35H,结果如下:
实验2
DATA SEGMENT
ORG 3500H
SOURCE DB 41H,32H,33H,24H,35H
ORG 3510H
RESULT DB 5 DUP(?)
ORG 3520H
COUNT EQU 5
DATA ENDS
CODE SEGMENT
ASSUME DS:DATA,CS:CODE
START:
MOV AX,DATA
MOV DS,AX
MOV CX,COUNT
MOV SI,OFFSET SOURCE
MOV DI,OFFSET RESULT
NEXT:
MOV DL,0FFH
MOV AL,[SI]
CMP AL,39H
JG NEXT1
SUB AL,30H
CMP AL,0
JL NEXT1
MOV [DI],AL
INC DI
INC SI
DEC CX
CMP CX,0
JNE NEXT
JE EXIT
NEXT1:
MOV [DI],DL
INC DI
INC SI
DEC CX
CMP CX,0
JNE NEXT
JE EXIT
EXIT:RET
CODE ENDS
END START
运行结果:
3500~3504h单元存入41H,32H,33H,24H,35H,结果如下:
3500~3504h单元存入31H,32H,33H,34H,35H,结果如下:
实验3
DATA SEGMENT
ORG 3500H
SOURCE DW 000CH
ORG 3510H
RESULT DB 5 DUP(?)
ORG 3520H
COUNT EQU 5
ORG 3530H
DIVNUM DW 10
DATA ENDS
CODE SEGMENT
ASSUME DS:DATA ,CS:CODE
START: MOV AX,DATA
MOV DS,AX
MOV AX,SOURCE
MOV CL,COUNT
MOV BX,4
NEXT:
MOV DX,0
DIV DIVNUM
ADD DX,30H
MOV RESULT[BX],DL
DEC BX
DEC CL
JNZ NEXT
RET
CODE ENDS
END START
运行结果:
在3500~3501H单元中存入000CH,结果如下:
在3500~3501H单元中存入0A23H,结果如下:
实验4
DATA SEGMENT
ORG 3500H
SOURCE DW 203BH
ORG 3510H
RESULT DB 4 DUP(0)
DATA ENDS
CODE SEGMENT
ASSUME DS:DATA,CS:CODE
START:
MOV AX,DATA
MOV DS,AX
MOV DX,SOURCE
MOV DI,OFFSET RESULT
MOV CL,4
NEXT:
MOV AX,DX
AND AX,0FH
CMP AX,9
JG NEXT2
ADD AX,30H
MOV [DI],AL
INC DI
SHR DX,CL
CMP DX,0
JE EXIT
JNE NEXT
NEXT2:
ADD AX,37H
MOV [DI],AL
INC DI
SHR DX,CL
CMP DX,0
JE EXIT
JNE NEXT
EXIT:RET
CODE ENDS
END START
运行结果:
3500~3501H单元中存入四位16进制数203BH,结果如下:
3500~3501H单元中存入四位16进制数1AC3H,结果如下:
实验5
DATA SEGMENT
ORG 3500H
SOURCE DB 01H,02H,03H,04H,05H,06H,07H,08H
ORG 3510H
RESULT DW 4 DUP(0)
DATA ENDS
CODE SEGMENT
ASSUME DS:DATA,CS:CODE
START:
MOV AX,DATA
MOV DS,AX
MOV BL,0AH
MOV CX,4
MOV DI,OFFSET SOURCE
MOV SI,OFFSET RESULT
NEXT:
MOV AL,[DI]
MUL BL
INC DI
MOV AH,0
ADD AL,[DI]
MOV [SI],AX
INC SI
INC SI
INC DI
DEC CX
CMP CX,0
JNE NEXT
RET
CODE ENDS
END START
运行结果:
在3500~3507H单元中存入01H,02H,03H,04H,05H,06H,07H,08H,结果如下:
在3500~3507H单元中存入05H,05H,05H,06H,03H,02H,03H,04H,结果如下:
结果分析
在给定的储存单元存入不同的数值,执行以上程序后都能各自地输出正确的结果,说明以上程序功能符合题目要求。
相关热词搜索: 实验报告 微机 实验 报告