两个多位十进制数相加的实验

合集下载

多位十进制数加法器设计.

多位十进制数加法器设计.

深圳大学实验报告课程名称:微机原理及应用实验实验项目名称:多位十进制数加法器设计学院:物理科学与技术学院专业:应用物理指导教师:报告人:学号:班级:应用物理班实验时间:2015-10-19实验报告提交时间:2015-11-02教务处制五、程序说明(预习)七、实验源程序清单(实验后以电子报告形式存储到指定位置)1.源程序路径及文件名:ADD2.ASM ADD1.ASM2.可执行程序路径及文件名:八、上机调试情况说明EMU8086:一:没有键盘录入1.结果显示如下:2.程序运行时的各段地址:3.两个子程序IP入口:4.改变两个加数数值5.子程序格式及其调用方法和宏汇编区别子程序格式:子程序名称PROC NEAR ; 子程序定义; …子程序内容RET ;子程序返回子程序名称ENDP ;子程序结束调用格式:CALL 子程序名称注意事项:1、子程序不能直接传递参数,需要自行定义变量。

2、注意保护现场和恢复现场。

宏汇编与子程序的区别:1、宏汇编有宏展开,子程序没有2、宏汇编可以传递参数。

二:键盘录入DOS:例如:250+250=500例如:62142+63123=125265九、实验结果与分析结果如下:十、实验总结(必备部分,评分重要依据之一)本次实验实则是对实验二的加强巩固基础上,进行更加友好的人机交互设计;通过本次实验不仅在程序中首先把两个加数固定,在实验二的基础上扩展位数,考虑到最高位进位的情况,并最终得出正确结果;后来又通过键盘录入两个加数,增加了人机交互的设计,如此一来,更加加深了对寄存器的使用,汇编语言宏定义,子程序调用以及DOS功能调用的学习。

同时,通过本次实验的学习,更加熟练了EMU8086工具的使用,也把理论课上学习到的汇编操作指令实际操作,对汇编语言的风格加深认识。

MOV DL,BLINT 21HCRLFJMP BEGINERROR:CRLFMOV AH,09H ;显示输入错误LEA DX,STRING3INT 21HCRLFJMP BEGINEXIT:CRLFMOV AH,09H ;显示成功退出LEA DX,STRING4INT 21HMOV AH,4CHINT 21HCODE ENDSEND START(2)请问你的程序能否处理加数和被加数都介于0~65535范围但计算结果超出该范围的情况?如何改进?可以,如图:主要考虑到最高位是否进位,可以设置一个进位变量加以判断。

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

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

微机原理实验报告-两个多位十进制数相加的实验等微机原理实验报告班级:学号:姓名:实验一两个多位十进制数相加的实验一、实验目的学习数据传送和算术运算指令的用法熟悉在PC机上建立、汇编、链接、调试和运行汇编语言程序的过程。

二、实验内容将两个多位十进制数相加,要求被加数和加数均以ASCII码形式各自顺序存放在以DATA1、DATA2为首的5个内存单元中(低位在前),结果送回DATA1处。

三、程序流程图图3-1四、参考程序清单DATA SEGMENTDATA1 DB 33H,39H,31H,37H,34H;被加数DATA1END E QU $-1DATA2 DB 34H,35H,30H,38H,32H;加数DATA2END EQU $-1SUM DB 5 DUP(?)DATA ENDSSTACK SEGMENTSTA DB 20 DUP(?)TOP EQU LENGTH STASTACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATA START: MOV AX,DATAMOV DS,AXMOV AX,STACKMOV SS,AXMOV AX,TOPMOV SP,AXMOV SI,OFFSET DATA1ENDMOV DI,OFFSET DATA2ENDCALL ADDAMOV AX,4C00HINT 21HADDA PROC NEARMOV DX,SIMOV BP,DIMOV BX,05HAD1: SUB BYTE PTR [SI],30HSUB BYTE PTR [DI],30HDEC SIDEC DIDEC BXJNZ AD1MOV SI,DXMOV DI,BPMOV CX,05HCLCAD2: MOV AL,[SI]MOV BL,[DI]ADC AL,BLAAAMOV [SI],ALDEC SIDEC DILOOP AD2MOV SI,DXMOV DI,BPMOV BX,05HAD3: ADD BYTE PTR [SI],30HADD BYTE PTR [DI],30HDEC SIDEC DIDEC BXJNZ A D3RETADDA ENDP CODE ENDSEND S TART五、实验结果分析我们计算的结果是:84256他们结果是一样的。

bcd码加法.

bcd码加法.

二.BCD码基本知识

BCD码有很多种表示方法,我们通常用 的BCD码是8421BCD码,我们单片机课 程当中的BCD码如不特别说明就是指 8421BCD码,8421BCD码实际就是用 0000—1001这样十个四位二进制数表示 0—9十个十进制数,但我们是以字节为 单位的,一个字节是八位二进制数,如 果高四位和第四位各存一个BCD码,这 样叫做压缩BCD码。
任务八BCD码相加
在单片机应用系统中,通常都要求进行 BCD码的运算,特别是在十进制运算的系 统中,很多的系统在人机界面的输出部分 往往都要用十进制显示,所以BCD码是很件来观看BCD码的相加过程。
在单片机应用系统中,通常都要求进行BCD码的运算, 特别是在十进制运算的系统中,很多的系统在人机界 面的输出部分往往都要用十进制显示,所以BCD码是 很重要的一部分。本任务通过WAVE6000软件来观看 BCD码的相加过程。 【任务目的】 1、理解什么是BCD码。 2、理解BCD码相加的过程。 【任务描述】 1、通过不同数据区的数据改变观察 BCD码的情况。 2、通过WAVE6000的窗口观察BCD码相加的情
MOV 50H , A
MOV A , 41H ADDC A , 31H DA A MOV 51H , A MOV A , #0
ADDC A , #0
MOV 52H , A END
;将加完并转化完的十进制数存至和值寄 存器的低位 ; ;将两个加数的高位相加 ;将高位相加后调整 ;将处理后的数据存至和值高位 ;如果有进位的话,将进位放至万位, 即将进位位Cy加至ACC ;既可。 ;ACC与0带进位位相加,就把Cy加至 ACC了 ;将万位存至52H ;结束伪指令
参考程序如下: ORG 0000H ;定位伪指令,指定下一条指令的地址,第一条指 令必须放在0000H MOV 30H , #78H ;第一个加数的高位。具体数值可以自己修改! MOV 31H , #34H ;第一个加数的低位。具体数值可以自己修改! MOV 40H , #56H ;第二个加数的高位。具体数值可以自己修改! MOV 41H , #12H ;第二个加数的低位。具体数值可以自己修改! MOV 50H , #0 ;将和值所要存储的数据区先清零。 MOV 51H , #0 MOV 52H , #0 MOV A , 40H ;因为加减指令必有一个为ACC暂存器,所以先将 一个加数的低 ;位送至ACC中,用于和另一个加数的低位相加。

十进制数的加法与减法

十进制数的加法与减法

十进制数的加法与减法在我们日常生活中,十进制数是我们最常用的数制。

无论是购物、计算时间还是进行金融交易,我们都需要使用十进制数进行计算。

而在进行十进制数的加法和减法运算时,我们需要掌握一些基本的方法和技巧。

一、十进制数的加法十进制数的加法是我们最常见的运算之一。

下面,我将介绍一些常用的加法方法。

1. 垂直加法法则垂直加法法则是我们最常用的加法方法。

它的基本原理是将两个数的相同位数的数字对齐,然后从右向左逐位相加。

如果某一位的和大于等于10,就需要进位到更高位。

例如,计算1234 + 5678:```1234+ 5678------```首先,从右向左逐位相加:4 + 8 = 12,需要进位;3 + 7 + 进位 = 11,同样需要进位;2 + 6 + 进位 = 9;1 + 5 + 进位 = 7。

最终的结果是6912。

2. 补数法补数法是一种简化计算的方法。

它的基本原理是将一个数的补数与另一个数相加,然后再减去被加数的补数。

例如,计算47 + 58:首先,找到47的补数,即53。

然后,将53与58相加,得到111。

最后,减去47的补数53,得到58。

所以,47 + 58 = 111 - 53 = 58。

二、十进制数的减法十进制数的减法是加法的逆运算。

下面,我将介绍一些常用的减法方法。

1. 借位减法法则借位减法法则是我们最常用的减法方法。

它的基本原理是将两个数的相同位数的数字对齐,然后从右向左逐位相减。

如果被减数小于减数,就需要向高位借位。

例如,计算9876 - 5432:```9876- 5432------```首先,从右向左逐位相减:6 - 2 = 4;7 - 3 = 4;8 - 4 = 4;9 - 5 = 4。

最终的结果是4444。

2. 补数法补数法也可以用于减法运算。

它的基本原理是将一个数的补数与另一个数相加,然后再减去被减数的补数。

例如,计算98 - 57:首先,找到98的补数,即2。

然后,将2与57相加,得到59。

任意两个20位十进制数相加的例程

任意两个20位十进制数相加的例程
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
ASSUME ES:DATA,SS:STACK
MAIN PROC FAR
START:
PUSH DS
XOR AX,AX
PUSH AX ;将程序段前缀入栈,利用RET返回时调用INT20H,返回DOS
REPZ SCASB ;跳过0值不显示
DEC DI
MOV AL," "
REPZ SCASB
MOV DX,DI ;显示缓冲区首址
DEC DX ;调整指针,指向要显示的第一个字符
MOV AH,09H
INT 21H ;利用DOS系统功能调用显示字串
DISPCHR PROC
MOV AH,02H
INT 21H ;调用DOS中断,显示DL中字符
LEA BX,STR2
CALL DISPSTR ;调用显示子程序,显示提示输入加数字符串
LEA BX,ADD2
CALL INPUT ;输入加数
LEA BX,ADD1
CALL ADDAIGN ;被加数个位对齐到高地址
LEA BX,ADD2
CALL ADDAIGN ;加数个位对齐到高地址
POP AX
POP DX
RET
DISPSTR ENDP
;**************************************************
;子程序名称:ADDALIGN
;子程序功能:将加数或被加数个位对齐(按最长20位处理)
; 入口参数:BX为处理的加数或被加数首址
STR1 DB "ADD1:","$"

两个多位十进制数相加实验

两个多位十进制数相加实验

实验一两个多位十进制数相加实验一、实验目的1.熟悉在PC机上建立、汇编、连接、调试和运行汇编语言程序的过程。

2.掌握数据传送、算术运算、BCD码调整和循环指令的用法,掌握字符显示的方法。

3.熟悉和掌握用DEBUG调试程序的方法。

二、实验内容及要求1.将两个5位十进制数相加,要求被加数(本题选47193)和加数(本题选28056)均以ASCII码形式各自顺序存放在以DATAl和DATA2为首的5个内存单元中(低位在前),结果送回以DATA3为首的5个内存单元中(低位在前),并显示相加的结果。

2.如果考虑可能产生的进位,则要显示完整的结果,程序如何修改?3.应该Masm for Windows 集成实验环境调试运行并讲解程序,并用屏幕录像软件录制全过程,全程开启摄像头,以MP4G格式上传,完成实验报告的书写。

三、实验程序和结果DATA SEGMENT ;定义数据段DATA1 DB 33H,39H,31H,37H,34H ;被加数DATA2 DB 36H,35H,30H,38H,32H ;加数DATA3 DB 5 DUP(?) ;定义五个空子节DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA ;表明程序代码段与段地址之间的关系START: MOV AX,DATAMOV DS,AX ;将段地址送入段地址寄存器MOV CX,5 ;循环控制次数MOV SI,0CLC ;清除CF位NEXT: MOV AL,DATA1[SI]ADC AL,DATA2[SI] ;从低位开始进行带进位/借位的加法运算AAA ;转换成非压缩BCD码,低位存AL,高位存AHMOV DATA3[SI],AL ;将AL中的内容存入SI所在地址INC SILOOP NEXTMOV SI,5DISP: ADD DATA3[SI-1],30H ;将16进制数转换为ASCII码表示 MOV DL,DATA3[SI-1]MOV AH,2INT 21HDEC SI ;偏移地址自减JNZ DISPMOV AH,4CHINT 21H ;终断调用CODE ENDS ;结束程序代码段END START(页面不足请附页)四、实验总结和体会通过本次实验我对汇编有了更加具体的认识,也明白了汇编中各个寄存器的作用及寄存器间是怎样联系的,也初步明白了什么是断地址,什么是堆栈,以及汇编的基本结构和循环结构的基本运用,但是我了解的只是初步的,汇编中还有很多我不明白和不了解的地方,最重要的是汇编语句掌握不牢固,不能很快的知道一些专用的汇编语句的意义,这方面还是比较薄弱的,还需要在今后的实验和学习中不断的学习和练习。

十进制数的运算了解十进制数的运算法则

十进制数的运算了解十进制数的运算法则

十进制数的运算了解十进制数的运算法则十进制数是我们日常生活中最为常见的数,它由0、1、2、3、4、5、6、7、8、9这十个数字组成。

在我们进行十进制数的运算时,需要了解一些基本的运算法则。

本文将介绍十进制数的运算法则,包括加法、减法、乘法和除法。

一、加法运算法则十进制数的加法是最简单的运算之一,我们只需要按照位数对应相加即可。

当两个十进制数相加时,从右往左一位一位相加,并保留进位。

如果最高位有进位,需要在结果的最左侧加上进位的值。

例如,计算76 + 39的结果:```76+39----115```在这个例子中,个位7和9相加得到16,十位7和十位3相加得到10,十位的进位需要加到百位。

因此,最后结果为115。

二、减法运算法则减法是加法的逆运算,同样需要按照位数进行计算。

当两个十进制数相减时,从右向左一位一位相减,并借位。

如果被减数小于减数,则需要向高位借位,被借位的数减去1。

例如,计算96 - 42的结果:```96-42----54```在这个例子中,个位6减去2得到4,十位9减去4得到5。

因为四十位的6小于被减数的2,所以需要向百位借位,并在被借位的6上减去1,变为5。

所以最后结果为54。

三、乘法运算法则十进制数的乘法运算需要使用到乘法表格。

我们需要按照列竖直相乘的方式进行计算,并将每一列的积相加。

例如,计算27 × 36的结果:```27------162 (7×6)+ 810 (7×30)------972```在这个例子中,个位7与个位6相乘得到42,十位7与十位3相乘得到21,然后将这两个积相加得到162。

接下来,个位7与十位3相乘得到21,并将得到的积补0,得到810。

最后,将162与810相加得到最终的结果972。

四、除法运算法则十进制数的除法是比较复杂的运算,需要进行多次计算才能得到商和余数。

我们需要按照竖式除法的方式进行计算。

例如,计算648 ÷ 9的商和余数:```72------9 |648----28```在这个例子中,我们从左向右按位进行计算。

微机原理 两个多位十进制数相加

微机原理 两个多位十进制数相加

实验三两个多位数十进制数相加的实验一、实验目的学习数据传送和算术运算指令的用法。

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

二、实验内容及程序将两个多位数十进制数相加,要求被加数和加数均以ASCⅡ码形式各自顺序存放在以DATA1和DA TA2为首的5个内存单元中,且低位在前,结果送回DA TA1处。

编程要求与提示:[1] 两个加数均以压缩(组合)十进制数形式存放在ADD1和ADD2为首址的存贮器单元。

[2] 和以压缩十进制数的形式存入SUM以下单元。

[3] 将和送到屏幕显示部分功能的实现采用子程序的形式。

[4] 实验步骤如下:a. 用全屏幕编辑软件建立源程序。

b.用masm.exe汇编程序对源程序进行汇编,形成目标程序。

c. 用link.exe连接程序对目标程序进行连接形成可执行文件。

d. 用DEBUG对连接通过的可执行程序进行调试。

三、参考流程STACK SEGMENT STACK 'STACK'DW 100H DUP(?)STACK ENDSDA TA SEGMENTADD1 DD 12678532H ;加数以组合十进制形式存放在双字单元ADD2 DD 21736543HSUM DD ?DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TA,ES:DATA,SS:STACKSTART: MOV AX,DA TAMOV DS,AXMOV ES,AXMOV AX,STACKMOV SS,AXLEA SI,ADD1LEA DI,ADD2LEA BX,SUMMOV AL,[SI]ADD AL,[DI] ;最低位的一个字节相加DAA ;加法组合BCD码调整MOV [BX],AL ;结果存放在SUM第一个字节MOV AL,[SI+1] ;第二个字节相加ADC AL,[DI+1]DAAMOV [BX+1],ALMOV AL,[SI+2]ADC AL,[DI+2]DAAMOV [BX+2],ALMOV AL,[SI+3]ADC AL,[DI+3]DAAMOV [BX+3],ALMOV DL,00 ;最高位字节有进位则显示"01"ADC DL,00CALL DISPSUMMOV AH,4CH ;返回DOSINT 21HDISPSUM PROC NEAR ;结果显示子程序PUSH AXPUSH BXPUSH CXPUSH SIMOV SI ,4PUSH DXMOV CX,5LAB:PUSH CXPUSH BXMOV AL,DLMOV BL,DLMOV CL,4 ;显示高位字节SHR AL,CLADD AL,30HMOV AH,02MOV DL,ALINT 21H ;显示一位字符AND BL,0FH ;显示低位字节ADD BL,30HMOV AH,02MOV DL,BLINT 21HPOP BXPOP CXDEC SIMOV DL,[BX][SI] ;结果显示LOOP LABPOP DXPOP SIPOP CXPOP BXPOP AXRETDISPSUM ENDPCODE ENDSEND START。

多位数加法的迁移问题研究

多位数加法的迁移问题研究

多位数加法的迁移问题研究
人们用手指计数。

但是手指加起来就只有十个,超过十怎么办呢?
“用脚趾吧”,一个古代人说道。

“呃,脚的话有点臭”,众人表示还是算了吧。

于是他们想出一个办法:
让两个人数数,一个人叫“个个”,另一个人叫“十十”。

个个用手指从1数到10。

就让十十用手指做个1。

个个用手指做个0。

当个个再从1数到10。

就让十十用手指做个2。

个个再用手指做0。

每当个个的10个手指全用满了。

就让十十加上1个手指。

同时个个把手指还原成0。

最终,
十十的10个手指用满了。

这就到了100。

也可以和孩子扩展一下,3个这么做就可以数到1000。

十进制数的计算与运用

十进制数的计算与运用

十进制数的计算与运用十进制数是我们日常生活中最常使用的数制,它由0~9共10个数字符号组成。

在这篇文章中,我们将探讨十进制数的计算方法以及它在实际应用中的运用。

一、十进制数的计算方法在十进制数中,每一位的权重都是10的次方。

例如,对于数码732,7代表百位,3代表十位,2代表个位。

那么732可以表示为(7 × 10^2)+ (3 × 10^1) + (2 × 10^0)。

因此,我们可以通过将各位数与对应的权重相乘,然后将结果相加,来计算十进制数。

十进制数的计算方法也包括四则运算:加法、减法、乘法和除法。

每一种运算都可以通过对应的规则进行处理。

1. 加法在十进制数的加法中,我们将两个数按照各位对齐,然后从右往左逐位相加。

如果某一位的结果大于9,则需要向左一位进位。

进位后,继续相加直到最高位。

2. 减法减法是加法的逆运算。

我们将被减数和减数按照各位对齐,从右往左逐位相减。

如果某一位的结果小于0,则需要向左一位借位。

借位后,继续相减直到最高位。

3. 乘法在十进制数的乘法中,我们将两个数按照各位对齐,然后从右往左逐位相乘,并将结果累加。

每一位乘积都需要乘以对应的权重。

4. 除法除法是乘法的逆运算。

我们将被除数和除数按照各位对齐,从左往右逐位进行除法运算。

每一位的结果都需要乘以对应的权重。

二、十进制数的运用十进制数在日常生活中有着广泛的应用。

以下是一些例子:1. 货币和金融我们常用十进制数来计算货币和金融事务。

无论是在购物、理财还是计算利息,十进制数都是必不可少的工具。

2. 计量单位绝大多数计量单位都是以十进制数为基础。

例如,我们用十进制数去计算时间、长度、体积、重量等物理量。

3. 统计和数据分析十进制数在统计和数据分析中扮演着重要的角色。

通过对数据进行收集、整理和分析,我们可以得出许多有关人口、经济、社会等方面的重要结论。

4. 科学和工程在科学和工程领域,十进制数被广泛用于各种计算和测量。

名词解释平行结转分步法

名词解释平行结转分步法

平行结转分步法1. 介绍平行结转分步法(Parallel Carrying Method)是一种用于计算多位数加减法的方法。

它是一种快速、高效且易于理解的计算方法,适用于学生和成年人。

2. 原理平行结转分步法基于十进制计数系统,将多位数按照个位、十位、百位等位置进行划分。

在计算过程中,从个位开始逐位相加或相减,并将进位或借位传递到更高的位置。

3. 加法运算步骤1:对齐数字将要相加的两个多位数按照各个位置对齐,使得各个位置上的数字对应。

例如:1234+ 567步骤2:从右向左逐位相加从个位开始,将该位置上的数字相加,并考虑前一位置的进位。

例如:4 (4+7=11)+ 6 (6+3+1=10)---------(进位)步骤3:传递进位如果某一位置上的和超过了9,则需要向更高一位传递进位。

将超过9部分除以10并取整得到的商作为进位值,写在下一位置上。

例如:4 (4+7=11)+ 6 (6+3+1=10)---------0 (进位1)步骤4:继续相加继续从左到右逐位相加,重复步骤2和步骤3,直到所有位置上的数字都相加完毕。

例如:4 (4+7=11)+ 6 (6+3+1=10)---------0 (进位1)1 (进位1+2=3)步骤5:得到最终结果当所有位置上的数字都相加完毕后,得到的结果即为最终的和。

例如:4 (4+7=11)+ 6 (6+3+1=10)---------0 (进位1)1 (进位1+2=3)3因此,1234 + 567 = 1801。

4. 减法运算减法运算与加法运算类似,只需在第二步中将对应位置上的数字相减即可。

如果被减数小于减数,则需要向更高一位借位,并将借位值写在下一位置上。

以下是平行结转分步法进行减法运算的步骤示例:例如:8 (8-5=3)- 4 (4-2=2)---------0 (借位1)3因此,8 - 4 = 32。

5. 总结平行结转分步法是一种简单而高效的多位数加减法计算方法。

小学数学十进制数的加法

小学数学十进制数的加法

技巧总结:在计算多位数加法 时,可以灵活运用交换律和结 合律,简化计算过程,提高计
算效率。
04
购物时,我们需要计 算商品的总价格和支
付金额
找零金额的计算方法 是:支付金额减去商
品总价格
如果支付金额大于商 品总价格,我们需要
计算找零金额
例如,购买一件价格 为10元的商品,支付 20元,找零金额为10
汇报人:xxx
01
十进制数的 概念
02
加法运算规 则
03
加法运算技 巧
04
加法在实际 生活中的应

05
练习与提高
01
十进制数是一种计数系统,以10为基数
十进制数的基本单位是0、1、2、3、4、5、 6、7、8、9
十进制数的加法是将两个或多个十进制数 相加,得到新的十进制数
十进制数的减法是将一个十进制数减去另 一个十进制数,得到新的十进制数
十进制数的乘法是将两个或多个十进制数 相乘,得到新的十进制数
十进制数的除法是将一个十进制数除以另 一个十进制数,得到新的十进制数
十进制数的位数表示数的大 小,位数越多,数越大
十进制数是由0到9十个数字 组成的
十进制数的加法遵循“逢十 进一”的原则
十进制数的减法遵循“借一 当十”的原则
十进制数是日常生活中最常用的计数 方式,由0到9十个数字组成。

加法在生活中的应 用:计算时间
加法在生活中的应 用:计算年龄
例子:早上7点起 床,晚上9点睡觉,
一共睡了1ቤተ መጻሕፍቲ ባይዱ小时
例子:小明今年6 岁,明年7岁,一 共过了7-6=1年
测量物体的长度, 如桌子、椅子等
计算物体的周长, 如圆形、正方形 等

完整版微机原理试验数据传送及两个多位十进制数相加

完整版微机原理试验数据传送及两个多位十进制数相加

深圳大学实验报告课程名称: _________ 微机原理及应用实验实验项目名称:数据传送及两个多位十进制数相加学院_________________________________专业__________________________________________________指导教师: __________________________________________________报告人:_学号:班级: ________________实验时间: ________________________________________实验报告提交时间: ___________________________________________教务处制、实验名称:数据传送及两个多位十进制数相加二、实验目的(1)学习数据传送和算术运算指令的用法。

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

三、实验内容将两个多位十进制数相加。

要求被加数均以ASCII码形式各自顺序存放在以DATAI和DATA2为首的5个内存单元中(低位在前),结果送回DATAI处。

四、实验电路及连线(硬件实验)此实验属于软件实验,故无硬件实验的电路及连线。

五、程序说明(预习)包括程序功能,程序框图,算法说明及所用到的寄存器等。

功能:将被加数和加数分别显示,接着运行加法运算,然后将结果显示出来。

算法说明:①定义数据段:定义被加数和加数,且要使其用ASCII码以十六进制之间的转换;②定义堆栈段,并给SP_TO单元赋初值0;③定义代码段,并将源代码放在里面首先,编写主程序;接着,编写显示、回车换行和加法运算的子程序。

④程序结束。

所用到的寄存:AX SS、CS、DS ES、SI、SP、DI六、源程序清单(预习);DATAS SEGMENT ; DATA1 DB 33H,32H,38H,34H,37H DATA2 DB 34H,35H,39H,37H,31H DATAS ENDS数据段;定义DATA1为被加数;定义DATA2为加数STACKS SEGMENT ; 堆栈段STA DB 64 DUP(O) ; 为STA预留64个字节的存储空间SP_TOP DB 0 ; 定义SP_TO单元的数值为0 STACKS ENDSCODES SEGMENT ; 代码段ASSUME CS:CODES,DS:DATAS,ES:DATAS,SS:STACKSSTART:MOV AX,DATASMOV DS,AX ; 设置数据段MOV AX,STACKSMOV SS,AX ; 设置堆栈段LEA SP,SP_TOP ; 设置栈顶指针MOV SI,OFFSET DATA1 ; 把DATA1偏移量地址赋予SIMOV BX,05CALL DISPL ; 显示被加数CALLCRLF ; 回车、换行MOV SI,OFFSET DATA2 ; 把DATA2偏移量地址赋予SIMOV BX,05CALL DISPL ; 显示加数CALLCRLF ; 回车、换行MOV DI,OFFSET DATA1 ; 把DATA1偏移量地址赋予DICALL ADDA ; 调用ADDAF程序,实行加法运算MOV BX,05CALL DISPL ; 显示结果CALLCRLF ; 回车、换行MOV AX,4C00H ;INT 21H ; 调用DOS21H功能,返回CRLF PROC NEAR ; 回车、显示功能过程定义,属性为 NEAR MOV DL,0DH ; 把回车的ASCII码0DH传给DLMOV AH,02H ; 送DOS的中断调用功能号INT 21H ; DOS 的中断调用MOV DL,0AH ; 把换行的ASCII码0AH传给DLMOV AH,02H ;INT 21H ; DOSRET ; CRLF ENDP ;送DOS的中断调用功能号的中断调用返回完成过程定义DISPL PROC NEAR DSL: MOV AH,02 ;MOV DL,[SI+BX-1];INT 21H ; DOSDEC BX ;BXJNZ DSL ;RET ; DISPL ENDP ; 显示功能过程定义,属性为NEAR 送显示功能号显示字符串中一字符的中断调用减1,修改偏移量如果BX未减到零,跳到DSL执行指令返回完成显示功能子程序定义ADDA PROC NEARMOV DX,SIMOV BP,DIMOV BX,05实行加法运算子程序过程定义,属性为TRAN_HEX: SUB BYTE PTR[SI+BX-1],30H ;把 ASCII 码数转化为十六进制SUB BYTE PTR[DI+BX-1],30HDEC BX ;BXJNZ TRAN_HEXMOV SI,DXMOV DI,BPMOV CX,05 ;CLC ;THE_ADD: MOV AL,[SI]MOV BL,[DI]ADC AL,BL ;AAA ;MOV [SI],AL ;INC SI ;SIINC DI ;DILOOP THE_ADD ;MOV SI,DXMOV DI,BPMOV BX,05 减1,修改偏移量;如果BX未减到零,跳到TRAN_HEX执行指令包括进位,共5位进位标志位 CF清零 (clear carry flag )带进位相加,把结果存在AX进行AAA调整,非结合BCD码的加法调整结果送被加数区加1加1 (指向下一位)循环TRAN_ASCI: ADD BYTE PTR[SI+BX-1],30HADD BYT田TR[DI+BX-1],30H ; 使用PTR转换属性并相加,将十六进制数转化为ASCII表示DEC BX ; BX 减1,修改偏移量RET ; 返回ADDA ENDP ;加法子程序定义完成CODES ENDS ; 代码段完成END START七、实验源程序清单(实验后以电子报告形式存储到指定位置)1.源程序路径及文件名:实验三\l3.asm2.可执行程序路径及文件名:实验三\l3.exe;八、上机调试情况说明1.上机调试步骤A .通过dos对pts3.asm文件进行操作。

微机原理与接口技术实验

微机原理与接口技术实验

CALL ADDA DISX 3DH MOV SI,OFFSET DATA3 MOV BX,05 CALL DISPL DISX 0DH DISX 0AH MOV AH,4CH INT 21H
DISPL DS1:
DISPL
PROC NEAR DISX [SI+BX-1] DEC BX JNZ DS1 RET ENDP
5.在屏幕上显示结果可利用INT 21H的02号子功能,因该功能一次只 能显示一个字符,故对于显示数字串来说,要编写一段显示子程序,反 复使用02H号子功能。
6.加数与被加数为5位,而和可能为5位或6位,即考虑到带进位和不 带进位的情况。在显示和数时最好按DISUP1: MOV AL,BH MOV CL,04 SHR AL,CL CMP AL,09 JA DISUP4 ADD AL,30H
实验二 两个多位十进制数相加的程序
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 DX,OFFSET MESS MOV AH,09H INT 21H MOV SI,OFFSET DATA1 MOV BX,05 CALL DISPL DISX 2BH MOV SI,OFFSET DATA2 MOV BX,05 CALL DISPL MOV SI,OFFSET DATA1 MOV DI,OFFSET DATA2
实验一 求最大值程序
NEXT: MAX2:
LOOP MAX1 MOV BL,AL MOV CL,04 SHR AL,CL CMP AL,09 JA MAX4 ADD AL,30H DISX AL MOV AL,BL AND AL,0FH CMP AL,09 JA MAX5 ADD AL,30H

微机原理软件实验

微机原理软件实验

微机原理实验报告专业:工业工程姓名:刘雷学号:089094082指导老师:陈全目录软件实验一汇编语言程序的调试与运行 (3)一.实验目的 (3)二.实验内容 (3)三.程序框图 (3)四.程序清单 (4)五.调试步骤 (6)六.思考题 (6)软件实验二分支程序设计 (14)一.实验目的 (14)二.实验内容与要求 (14)三.程序框图 (15)四.程序清单: (16)五.思考题 (17)软件实验三循环程序设计 (18)一.实验目的 (18)二.实验内容与要求 (18)三.程序框图 (19)四.程序清单(将程序补充完整) (20)软件实验四子程序结构 (22)一.实验目的 (22)二.实验内容与要求 (22)三.程序框图: (23)四.部分程序清单 (23)五.步骤 (25)六.思考题 (25)软件实验一汇编语言程序的调试与运行一.实验目的1.学习数据传送和算术运算指令的用法2.熟悉在PC机上编辑、汇编、连接、调试和运行汇编语言程序的过程。

二.实验内容将两个多位十进制数相加,要求被加数和加数均以ASCII码形式各自顺序存放在DATA1和DA TA2为首的5个内存单元中,结果送回DATA1处。

三.程序框图图1.1 两个多位十进制相加程序流程图四.程序清单DISP MACRO XMOV DL,X ;要显示的字符送DL寄存器MOV AH,02H ;DOS功能调用号是02HINT 21H ;21H中断程序是DOS功能调用ENDMDATA SEGMENTDATA1 DB '12732'DATA2 DB '06815'N EQU $-DA TA2DATA ENDSSTACK SEGMENT STACKSTA DB 20 DUP (?)TOP EQU $-STASTACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK,ES:DA TA START:MOV AX,DA TAMOV DS,AXMOV AX,STACKMOV SS,AXMOV AX,TOPMOV SP,AXLEA SI,DATA1 ;☆MOV BX,0MOV CX,NCALL DISPL ;显示被加数DISP '+'LEA SI,DATA2MOV BX,0MOV CX,NCALL DISPL ;显示加数DISP '='LEA DI,DA TA1MOV CX,NCALL ADDA ;调用加法子程序LEA SI,DATA1MOV BX,0MOV CX,NCALL DISPL ;显示运算结果DISP 0DHDISP 0AHMOV AX,4C00HINT 21HDISPL PROC ;显示子程序DS1: MOV AH,02HMOV DL,[SI+BX]INT 21HINC BXLOOP DS1RETDISPL ENDPADDA PROC ;加法子程序PUSH CXMOV BX,0AD1: SUB BYTE PTR [SI+BX],30HSUB BYTE PTR [DI+BX],30HINC BXLOOP AD1POP CXPUSH CXMOV BX,N-1 ;☆☆CLCAD2: MOV AL,[SI+BX]ADC AL,[DI+BX]AAAMOV [DI+BX],ALDEC BXLOOP AD2POP CXPUSH CXMOV BX,0 ;☆☆☆AD3: ADD BYTE PTR [DI+BX],30HINC BXLOOP AD3POP CXRET ;☆☆☆☆ADDA ENDPCODE ENDSEND START五.调试步骤1.编辑源程序,建立一个以后缀为.ASM的文件.2.汇编源程序,检查程序有否错误,有错时回到编辑状态,修改程序中错误行。

04两个多位十进制数相加实验

04两个多位十进制数相加实验

实验原理
(2)BCD算术运算调整的基本原理 以组合十进制数加法运算为例: 当两数相加后,进位位C和半进位位A均为零,即 结果的高低4位均未大于9,则不需调整; 当两数相加后,结果的低4位大于9,即半进位位 A=1,则结果加06H; 当两数相加后,结果的高4位大于9,则结果加 60H; 当两数相加后,结果的低4位大于9,即半进位位 A=1,且同时进位位C=1,则结果加66H。
实验报告要求
1、记录实验中具体数据,并做整理和分析。
2、对程序进行逐行的详细注释。
3、将程序试改为减法,写出修改后的程序
指令、画出流程图、记录运行数据。
调用号
1 2 8
Байду номын сангаас功能
输入并显示一个字符
入口参数
出口参数
屏幕显示一个字符
DL中预先放入待显 示字符的ASCII码 执行后输入字符的 ASCII码存在AL中 DS:DX中存入字符 串首地址,字符串 必须要有$作为最后 结尾 DS:DX中设置字符 串首地址,且第1个 单元为允许输入最 大字符个数(外加1 个回车符) 执行后,实际输入 的字符个数存在字 符串第2个单元,字 符内容从字符串第3 个单元开始依次存 放 有输入AL=FFH, 无输入AL=0
键盘输入一个字符
9
屏幕显示字符串
10(0AH)
键盘输入同时屏幕显 示字符串
11(0BH)
检测有无键盘输入
下次实验内容
实验名称:
汇编语言程序设计实验(课堂测试)
实验内容:
根据后面提供的题目,由教师上课时随 机指定,当堂完成其中一个程序题目的编写、 编译、调试、运行等全过程。
汇编程序题
1、两个字节数(十六进制数)相减A-B送D,并以十六进制形式显 示结果。 2、两个十进制数相加,求其和,要求显示结果。(设两个加数及其 和均为位数相等的无符号数,且最多不超过5位) 3、将一个十进制正数(不超过4位数),转换成对应16进制数,显 示到屏幕上。 4、一个四位16进制数,按照二进制形式显示到屏幕上。 5、将一串十进制数字,分别用正序和反序显示到屏幕上。比如原始 序列为426135,其正序与之相同,反序就是531624. 6、将一串(2~10个)无序的十进制数字,按从小到大的顺序重新 排好后显示到屏幕上。 7、将一串不带符号的十进制数,求其最大值和最小值。

两个多位十进制数相加的实验

两个多位十进制数相加的实验

学生实验报告(2010 —2011 学年第 2 学期)课程名称:微机原理与接口技术开课实验室:205教室 2011年5 月10日一.实验目的1.学习数据传送和算术运算指令的用法。

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

二、实验原理及基本技术路线图或实验内容(方框原理图或程序流程图)1、实验内容将两个多位十进制数相加。

要求被加数均以ASCII码形式各自顺序存放在以DA TA1和DATA2为首的5个内存单元中(低位在前),结果送回DATA1处。

三、所用仪器、材料和软件(设备和软件名称、型号、规格等)所用的软件为Masm for windows集成实验环境2009四、实验方法、步骤1、编写程序代码2、运行程序,修改错误代码3、再次运行代码直至运行出正确结果五、源码程序编制及分析注释CRLF MACRO ;宏定义指令(回车执行程序) MOV DL,0DH ;回车MOV AH,02H ; 2号调用,显示回车INT 21HMOV DL,0AH ;换行MOV AH,02H ;2号调用换行INT 21HENDM ;宏指令定义结束DATA SEGMENT ;数据段定义DATA1 DB 33H,39H,31H,37H,34H ;第一个数据(作为加数)47193DATA2 DB 36H,35H,30H,38H,32H ;第二个数据(作为被加数)28056DATA ENDS ;数据段定义结束STACK SEGMENT ;堆栈段定义STA DB 20 DUP(?) ;定义从STA开始20个单元作为堆栈使用TOP EQU LENGTH STA ;TOP等于堆栈单元数STACK ENDSCODE SEGMENT ;代码段定义ASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATASTART: MOV AX,DATAMOV DS,AX ;设置数据段MOV AX,STACKMOV SS,AX ;设置堆栈段MOV AX,TOPMOV SP,AXMOV SI,OFFSET DATA2 ;DATA2的偏移地址送SI MOV BX,05 ;计数次数为5次CALL DISPL ;调用多次显示子程序DISPL (显示28056)CRLF ;回车换行MOV SI,OFFSET DATA1 ;DATA1的偏移地址送SI MOV BX,05 ;计数次数为5次CALL DISPL ;调用多次显示子程序DISPL (显示47193)CRLF ;回车换行MOV DI,OFFSET DATA2CALL ADDA ;使用加法运算程序MOV SI,OFFSET DATA1 ;将和显示在屏幕上MOV BX,05 ;显示结束CALL DISPL ;调用多次显示子程序DISPL CRLF ;执行回车换行程序MOV AX,4C00H ;返回系统提示符INT 21HDISPL PROC NEAR ;多次显示子程序DS1: MOV AH,02 ;显示功能号MOV DL,[SI+BX-1] ;显示字符串中一字符INT 21H ; DOS的中断调用DEC BX ;BX减1,修改偏移量JNZ DS1 ;如果BX未减到零跳到DSL执行指令RET ;返回DISPL ENDP ;完成显示功能子程序定义ADDA PROC NEAR ;实行加法运算子程序定义、属性为NEARMOV DX,SIMOV BP,DIMOV BX,05 ;转换5次AD1: SUB BYTE PTR [SI+BX-1],30H ;把加数的ASCLL 转换为16进制SUB BYTE PTR [DI+BX-1],30H ;把被加数的ASCLL转换为16进制DEC BX ;修改偏移量JNZ AD1MOV SI,DXMOV DI,BPMOV CX,05 ;包括进位,共5位 CLC ;清进位AD2: MOV AL,[SI]MOV BL,[DI]ADC AL,BL ;进行代进位加法AAA ;非组合BCD码的加法调整MOV [SI],AL ;结果送被加数区INC SIINC DI ;指向下一位LOOP AD2 ;循环MOV SI,DXMOV DI,BPMOV BX,05AD3: ADD BYTE PTR [SI+BX-1],30HADD BYTE PTR [DI+BX-1],30HDEC BX ;十六进制的数字串转化 JNZ AD3RETADDA ENDP ;加法程序结束CODE ENDS ;代码段结束END START ;整个程序结束六、实验结果、分析和结论和体会1.实验结果:2.心得体会初学《微机原理》时,感觉摸不着头绪概念及原理性的问题不知道该如何下手。

微机实验两个多位十进制数相加的实验

微机实验两个多位十进制数相加的实验

实验2 两个多位十进制数相加的实验一、实验目的1. 学习数据传送和算术运算指令的用法。

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

二、实验内容将两个多位十进制数相加,要求被加数均以ASCII码形式各自顺序存放在以DA TA1和DA TA2为首的5个内存单元中(低位在前),结果送回DA TA1处。

附加题要求将加法过程显示与屏幕。

同学可以自己设计程序也可对代码段进行填空以及问答来完成程序。

(附加题范例在第二页);该程序完成54321+54321=108642的多位十进制加法运算,和存放与DAT3DATA SEGMENTDAT1 DB'12345';问一个多位十进制数各位是以何种顺序存放于内存的。

DAT2 DB'12345';个位存放于高地址或者为低地址。

DAT3 DB 6 DUP(0)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXLEA BX,DAT1LEA SI,DAT2LEA DI,DAT3MOV CX,5CLC ;为什么要加入这条指令L1: MOV AL[BX]ADC AL,[SI] ;BYTE PTR[BX]+[SI]+CF→AL 例‘1’+‘1’+0= 62H→AL__________;填空________________; AL=02HPUSHF;为什么要加入pushf popf这两条指令OR AL,30H;为什么要加入这条指令POPFMOV [DI],AL__________;填空__________________;填空__________________ ;填空________LOOP L1JNC L2MOV [DI],31HINC DIhltCODE ENDSEND START三、程序框图(见下页)附加题1范例;该程序完成54321+54321=108642的多位十进制加法运算,和存放与DAT3并显示于屏幕DATA SEGMENTDAT1 DB'12345';问一个多位十进制数各位是以何种顺序存放于内存的。

微型计算机原理与接口技术实验教学的探索

微型计算机原理与接口技术实验教学的探索

微型计算机原理与接口技术实验教学的探索【摘要】本文就当前微型计算机原理与接口技术实验的教学状况,对实验内容、教学方法及考核方式等方面进行适当的变革,以提高该课程的实验教学水平,培养社会真正需要的计算机人才。

【关键词】微型计算机原理;接口技术;实验教学;教学改革《微型计算机原理与接口技术》是工科学生必修的一门重要的专业基础课,该门课专业技术性极强,无论从课程本身的特点,还是从专业素质的培养来看,加强该课程的实验教学都是很重要的。

然而实验教学还存在着一些教材、教学内容、教学方法以及考核方式等方面的问题,不利于学生能力的培养及向素质教育的转化,本文结合我校的实际情况,对微型计算机原理课程的实验教学改革进行了探讨。

1 改革教学内容,提高教学效率微型计算机原理与接口技术实验作为一门专业基础课实验,对培养学生今后从事信息系统设计、研究、开发和应用起着极其关键的作用,结合其课程特点,充实实验内容,使之集知识性、设计性和综合性于一体。

微型计算机原理与接口技术实验内容主要包含以下几部分:1.1 原理部分包括8086/8088指令系统与汇编语言程序设计、存储器与I/O机理的认知等内容,着重帮助学生熟练掌握计算机及其基本组成部分的工作原理和工作机制,训练和培养学生运用汇编语言编写应用程序,解决实际问题的能力。

1.2 接口部分包括典型的可编程接口芯片的扩展、性能验证及输入输出应用等内容,主要包括可编程中断控制器8259、可编程定时器8253、可编程外围接口芯片8255和8251以及模数(A/D)和数模(D/A)转换等,着重培养学生应用典型可编程接口芯片和数字电路芯片进行I/O接口设计和扩展的能力。

1.3 综合应用包括多种接口芯片的组合、自动实时控制等方面的内容,着重培养学生综合应用微型计算机原理和接口技术进行设计、调试微型计算机应用系统的能力,解决实际问题。

参考以上实验内容,我校编订的实验教材分为软件部分和硬件部分两部分实验内容。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

学生实验报告
(2010 —学年第学期)课程名称:微型计算机原理与接口技术开课实验室:2011年月日年级、专业、班学号姓名成绩实验项目名称两个多位十进制数相加的实验指导教



评语教师签名:
年月日
注:报告内容按实验须知中几点要求进行。

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

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

3、学会PC机得安装
4、认识编程过程
二、实验原理及基本技术路线图或实验内容(方框原理图或程序流程图)
将两个多位十进制数相加。

要求被加数均以ASCII码形式各自顺序存放在以DATA1和DATA2为首的5个内存单元中(低位在前),结果送回DATA1处。

程序框图
三、所用软件
四、实验步骤
整个程序分为4个部分:显示加数、转换、相加、输出结果。

五、源码程序编制及分析注释
CRLF MACRO ;宏定义指令(回车执行程序)
MOV DL,0DH ;回车
MOV AH,02H ;2号调用,显示回车
INT 21H
MOV DL,0AH ;换行
MOV AH,02H ;2号调用换行
INT 21H
ENDM ;宏指令定义结束
DATA SEGMENT ;数据段定义
DATA1 DB 33H,39H,31H,37H,34H ;第一个数据(作为加数)47193
DATA2 DB 36H,35H,30H,38H,32H ;第二个数据(作为被加数)28056
DATA ENDS ;数据段定义结束
STACK SEGMENT ;堆栈段定义
STA DB 20 DUP(?) ;定义从STA开始20个单元作为堆栈使用TOP EQU LENGTH STA ;TOP等于堆栈单元数
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 DATA2 ;DATA2的偏移地址送SI
MOV BX,05 ;计数次数为5次
CALL DISPL ;调用多次显示子程序DISPL(显示28056)
CRLF ;回车换行
MOV SI,OFFSET DATA1 ;DATA1的偏移地址送SI
MOV BX,05 ;计数次数为5次
CALL DISPL ;调用多次显示子程序DISPL(显示47193)
CRLF ;回车换行
MOV DI,OFFSET DATA2
CALL ADDA ;使用加法运算程序
MOV SI,OFFSET DATA1 ;将和显示在屏幕上
MOV BX,05 ;显示结束
CALL DISPL ;调用多次显示子程序DISPL
CRLF ;执行回车换行程序
MOV AX,4C00H ;返回系统提示符
INT 21H
DISPL PROC NEAR ;多次显示子程序
DS1: MOV AH,02 ;显示功能号
MOV DL,[SI+BX-1] ;显示字符串中一字符
INT 21H ;DOS的中断调用
DEC BX ;BX减1,修改偏移量
JNZ DS1 ;如果BX未减到零跳到DSL执行指令
RET ;返回
DISPL ENDP ;完成显示功能子程序定义
ADDA PROC NEAR ;实行加法运算子程序定义、属性为NEAR MOV DX,SI
MOV BP,DI
MOV BX,05 ;转换5次
AD1: SUB BYTE PTR [SI+BX-1],30H ;把加数的ASCLL转换为16进制SUB BYTE PTR [DI+BX-1],30H ;把被加数的ASCLL转换为16进制
DEC BX ;修改偏移量
JNZ AD1
MOV SI,DX
MOV DI,BP
MOV CX,05 ;包括进位,共5位
CLC ;清进位
AD2: MOV AL,[SI]
MOV BL,[DI]
ADC AL,BL ;进行代进位加法
AAA ;非组合BCD码的加法调整
MOV [SI],AL ;结果送被加数区
INC SI
INC DI ;指向下一位
LOOP AD2 ;循环
MOV SI,DX
MOV DI,BP
MOV BX,05
AD3: ADD BYTE PTR [SI+BX-1],30H
ADD BYTE PTR [DI+BX-1],30H
DEC BX ;十六进制的数字串转化
JNZ AD3
RET
ADDA ENDP ;加法程序结束
CODE ENDS ;代码段结束
END START ;整个程序结束
五、实验结果
六、心得体会
通过这次实验让我对这个软件的编程有了更深的了解、知道如何安装这个软件、怎样运行程序。

让我学到了很多课本是学不到的东西,有一点意外收获的感觉。

Welcome To Download !!!
欢迎您的下载,资料仅供参考!。

相关文档
最新文档