二进制到BCD转换实验报告
班级姓名学号日期
一、实验目的:1.掌握简单的数值转换算法
2.基本了解数值的各种表达方法
二、实验要求:
将给定的一个二进制数,转换成十进制(BCD)码。
三、实验内容:1、给累加器赋值,如#123
2、将累加器的内容拆分为三个BCD码,并存入Result开始的三
个单元。
四、程序及运行结果截图
DATA SEGMENT
RESULT_1 DB 1
RESULT_2 DB 1
RESULT_3 DB 1
DATA ENDS
STACK SEGMENT ATACK
STA DB 64 DUP(0)
STACK_TOP DB 0
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK START:
MOV AX,DATA
MOV DS,AX
MOV AX,STACK
MOV SS,AX
LEA SP,ATACK_TOP
MOV AX,123H
MOV CL,100
DIV CL
MOV RESULT_1,AL
MOV CL,8
SHR AX,CL
MOV CL,10
DIV CL
MOV RESULT_2,AL
MOV RESULT_3,AH
ADD RESULT_1,30H
ADD RESULT_2,30H
ADD RESULT_3,30H
MOV DL, RESULT_1
MOV AH,02H
INT 21H
MOV AX,4C00H
INT 21H
CODE ENDS
END START
</PIXTEL_MMI_EBOOK_2005>
五、实验过程中遇到的主要问题
; 将A 拆为三个BCD 码, 并存入Result 开始的叁个单元Result equ 20h
org 0
ljmp Start
BinToBCD:
mov b, #100
div ab
mov Result, a ; 除以100, 得百位数
mov a, b
mov b, #10
div ab
mov Result+1, a ; 余数除以10, 得十位数
mov Result+2, b ; 余数为个位数
ret
Start:
mov sp, #40h
mov a, #123
call BinToBCD
ljmp $
end
六、实验后的心得体会。