微 机 原 理 实 验 报 告
班级: 指导老师: 学号: 姓名:
实验一 两个多位十进制数相加的实验
一、实验目的
学习数据传送和算术运算指令的用法
熟悉在PC机上建立、汇编、链接、调试和运行汇编语言程序的过程。 二、实验内容
将两个多位十进制数相加,要求被加数和加数均以ASCII码形式各自顺序存放在以DATA1、DATA2为首的5个内存单元中(低位在前),结果送回DATA1处。 三、程序框图
图 3-1
四、参考程序清单 DATA DATA1
SEGMENT
DB 33H,39H,31H,37H,34H;被加数
DATA1END EQU $-1 DATA2
DB 34H,35H,30H,38H,32H;加数
DATA2END EQU $-1 SUM
DB 5 DUP(?) ENDS
DATA
STACK STA
SEGMENT
DB 20 DUP(?)
TOP EQU LENGTH STA STACK
CODE
SEGMENT
ENDS
ASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATA START:
MOV AX,DATA MOV DS,AX MOV AX,STACK MOV SS,AX MOV AX,TOP MOV SP,AX
MOV SI,OFFSET DATA1END MOV DI,OFFSET DATA2END CALL ADDA MOV AX,4C00H INT
21H
ADDA PROC NEAR
MOV DX,SI MOV BP,DI MOV BX,05H
BYTE PTR [SI],30H
AD1: SUB
SUB DEC DEC DEC JNZ
BYTE PTR [DI],30H SI DI BX AD1
MOV SI,DX
MOV DI,BP MOV CX,05H CLC
AD2: MOV AL,[SI]
MOV BL,[DI] ADC
AL,BL