微机原理实验报告-两个多位十进制数相加的实验等

微机原理实验报告
       
       
          班级:
          学号:
          姓名: 
         

实验一  两个多位十进制数相加的实验
一、实验目的
学习数据传送和算术运算指令的用法
熟悉在PC机上建立、汇编、链接、调试和运行汇编语言程序的过程。
二、实验内容
将两个多位十进制数相加,要求被加数和加数均以ASCII码形式各自顺序存放在以DATA1、DATA2为首的5个内存单元中(低位在前),结果送回DATA1处。
三、程序流程图
图 3-1
四、参考程序清单
DATA        SEGMENT
DATA1      DB 33H,39H,31H,37H,34H;被加数
DATA1END     EQU $-1
DATA2      DB 34H,35H,30H,38H,32H;加数
DATA2END    EQU $-1
SUM        DB 5 DUP(?)
DATA        ENDS
STACK          SEGMENT
STA            DB      20 DUP(?)
TOP        EQU    LENGTH STA
STACK          ENDS
CODE        SEGMENT
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
AD1:    SUB        BYTE PTR [SI],30H
                SUB        BYTE PTR [DI],30H
                DEC        SI
                DEC        DI
                DEC        BX
                JNZ        AD1
                MOV    SI,DX
            MOV    DI,BP姓名代码转换器百度
                MOV    CX,05H
                CLC   
AD2:    MOV    AL,[SI]