微机原理实验二 两个多位十进制数相加 下载本文

内容发布更新时间 : 2024/5/3 20:54:44星期一 下面是文章的全部内容请认真阅读。

实验二 两个多位十进制数相加 一、要求:

将两个多位十进制数(如四位)相加,要求被加数、加数以ASCII

码形式按顺序存放在以DATA1和DATA2为首的5个内存单元中(低

位在前)。结果显示在屏幕上。 二、目的:

1、学习数据传送和算术运算指令的用法。

2、熟悉在PC机上建立、汇编、连接、调试和运行汇编语言程序过 程。

程序如下:

DATA SEGMENT

S1 DB '5','4','3','6','0' S2 DB '6','5','3','6','0' S3 DB '6345+6356=$' DATA ENDS CODE SEGMENT

ASSUME CS:CODE,DS:DATA,ES:DATA

MOV AX,DATA

START:

MOV DS,AX MOV ES,AX MOV DX,OFFSET S3 MOV AH,9

INT 21H

CLC ;清进位 CLD

MOV SI,OFFSET S1 MOV DI,OFFSET S2 MOV CX,05H

L1: LODSB ;本次被加数[SI]--〉AL

ADC AL,[DI] ;本次被加数(AL)+本次加数[DI]+上次进位, 结果--->AL

AAA ;非组合BCD码调整,结果-->AL STOSB ;本次相加结果(AL)-->[DI], DI+1-->DI LOOP L1 MOV AH,02H MOV CX,05H

L2: MOV DL,[DI-1]

OR DL,30H ;非组合BCD码-->ASICII码 INT 21H DEC DI LOOP L2

MOV AH,4CH INT 21H

CODE ENDS END START

调试结果