十进制数相加(汇编程序)

;将两个多位十进制数相加,要求被加数,加数通过键盘输入后按顺序存放在以ADD1和ADD2为首的六个内存单元中(低位在前),结果送入SUM为首的六个内存单元中。假定计算的结果也是六位,否则算溢出,可不处理。

DATA SEGMENT

ADD1 DD ?

ADD2 DD ?

SUM DD 'INPUT 2 DECIMAL NUMBER(ADD1+ADD2):',0DH,0AH,'$'

DATA ENDS

STACK SEGMENT STACK

STT DW 50 DUP(?)

TOP LABEL WORD

STACK ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,SS:STACK

START:MOV AX,STACK

MOV SS,AX

LEA SP,TOP

MOV AX,DATA

MOV DS,AX ;初始化

LEA SI,ADD1

LEA DI,ADD2

LEA BX,SUM

LEA DX,SUM

MOV AH,09H ;输入SUM

INT 21H

CLC

MOV CX,6 ;计数器

CALL SHURU1 ;输入ADD1

CALL SHURU2 ;输入ADD2

SUB SI,5 ;地址归位到初始

SUB DI,5

MAIN:CALL JIAFA ;调用加法运算

DEC CX

JNZ MAIN

MOV AH,21H

INT 21H

;//////////////////

SHURU1 PROC NEAR ;ADD1的输入

MOV AX,6

ABC: MOV AH,1

INT 21H

MOV [SI],AL

INC SI

DEC AX

JNZ ABC

RET

SHURU1 ENDP

;/////////////////////////

SHURU2 PROC NEAR ;ADD2的输入

MOV AX,6

ABD: MOV AH,1

INT 21H

MOV [DI],AL

INC DI

DEC AX

JNZ ABD

RET

SHURU2 ENDP

;////////////////

JIAFA PROC NEAR ;加法运算

MOV AL,[SI]

ADC AL,[DI]

DAA

MOV [BX],AL

INC SI

INC DI

INC BX

RET

JIAFA ENDP

;//////////////

CODE ENDS

END START

;将两个多位十进制数相加,要求被加数,加数通过键盘输入后按顺序存放在以ADD1和ADD2为首的六个内存单元中(低位在前),结果送入SUM为首的六个内存单元中。假定计算的结果也是六位,否则算溢出,可不处理。

DATA SEGMENT

ADD1 DD ?

ADD2 DD ?

SUM DD 'INPUT 2 DECIMAL NUMBER(ADD1+ADD2):',0DH,0AH,'$'

DATA ENDS

STACK SEGMENT STACK

STT DW 50 DUP(?)

TOP LABEL WORD

STACK ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,SS:STACK

START:MOV AX,STACK

MOV SS,AX

LEA SP,TOP

MOV AX,DATA

MOV DS,AX ;初始化

LEA SI,ADD1

LEA DI,ADD2

LEA BX,SUM

LEA DX,SUM

MOV AH,09H ;输入SUM

INT 21H

CLC

MOV CX,6 ;计数器

CALL SHURU1 ;输入ADD1

CALL SHURU2 ;输入ADD2

SUB SI,5 ;地址归位到初始

SUB DI,5

MAIN:CALL JIAFA ;调用加法运算

DEC CX

JNZ MAIN

MOV AH,21H

INT 21H

;//////////////////

SHURU1 PROC NEAR ;ADD1的输入

MOV AX,6

ABC: MOV AH,1

INT 21H

MOV [SI],AL

INC SI

DEC AX

JNZ ABC

RET

SHURU1 ENDP

;/////////////////////////

SHURU2 PROC NEAR ;ADD2的输入

MOV AX,6

ABD: MOV AH,1

INT 21H

MOV [DI],AL

INC DI

DEC AX

JNZ ABD

RET

SHURU2 ENDP

;////////////////

JIAFA PROC NEAR ;加法运算

MOV AL,[SI]

ADC AL,[DI]

DAA

MOV [BX],AL

INC SI

INC DI

INC BX

RET

JIAFA ENDP

;//////////////

CODE ENDS

END START


相关文章

  • 数据传送及两个多位十进制数相加
  • 深 圳 大 学 实 验 报 告 课程名称: 微机原理及应用实验 实验项目名称: 数据传送及两个多位十进制数相加 学院: 物理科学与技术学院 专业: 应用物理 指导教师: 李雄军 报告人: 学号: 班级: 实验时间: 实验报告提交时间: 一. ...查看


  • 8位二进制乘法电路
  • 作业名称:8位二进制乘法电路 1题目分析 该乘法电路要实现的功能为8位二进制的乘法电路,具体的乘法过程是采用移位相加的方法.即用乘数的各位数码,从低位开始依次与被乘数相乘,每相乘一次得到的积称为部分积,将第一次(由乘数最低位与被乘数相乘)得 ...查看


  • 计算机组成原理实验之微程序设计实验报告
  • 评语: 课中检查完成的题号及题数: 成绩: 指导教师: 课后完成的题号与题数: 实验报告 实验名称: CPU与简单模型机设计实验 学号: 2008300085 日期: 2010-12-26 姓名: 张浩 班级: JS000803 一.实验目 ...查看


  • 微机原理课
  • 微机原理 课 1 讲 教 案 绪论 §1-1 计算机的发展概况及分类 §1-1-1 计算机的发展概况 1946年,第一台计算机在美国诞生,至今已有近60年的历史.60年来,计算机经历了 迅猛的发展,得到了广泛的普及,对整个社会的进步和科学的 ...查看


  • 8位十进制乘法器
  • XX 学 院 课 程 论 文 (2012 -2013学年第一学期) 课程论文题目:8位乘法器的设计 学生姓名: EDA 期末考试 设计报告 设计题目:8位乘法器的设计 学校:XX 学院 系别:电子信息工程系 班别:10电本2班 姓名:XXX ...查看


  • 初中数学有理数的计算
  • 有理数的计算 教学过程 一.有理数的加法 同号两数相加,取与加数相同的符号,并把绝对值相加. 异号两数相加,取绝对值较大的加数的符号,并用较大的绝对值减去较小的绝对值. 互为相反数的两个数相加得零,一个数同零相加,仍得这个数. 加法交换律: ...查看


  • 实验二 顺序程序设计实验
  • 实验二 字符及字符串输入/输出与顺序程序设计实验 一.实验目的 1) 学习和掌握字符及字符串的输入输出方法. 2) 掌握顺序程序的设计方法. 3) 进一步掌握调试工具的使用方法. 二.实验预习要求 1) 复习DOS 功能调用中用于字符输入( ...查看


  • 微机原理与接口技术汇编语言指令详解吐血版
  • 第一讲 第三章 指令系统--寻址方式 回顾: 8086/8088的内部结构和寄存器,地址分段的概念,8086/8088的工作过 程. 重点和纲要:指令系统--寻址方式.有关寻址的概念:6种基本的寻址方式及 有效地址的计算. 讲授内容: 3. ...查看


  • 信息的表示与存储
  • 1.4信息的表示与存储 计算机加工的对象是数据信息,而指挥计算机操作的是控制信息,因此计算机内部的信息可以分成二大类: ┌ 指令 ┌ 控制信息 ─┤ │ └ 控制字 信息 ┤ │ ┌ 定点数 │ ┌ 数值信息 ─┤ └ 数据信息 ─┤ └ ...查看


热门内容