第一范文网 - 专业文章范例文档资料分享平台

实验一 两个多位十进制数相加的实验 - 图文

来源:用户分享 时间:2025/6/9 15:11:51 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

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

一、实验目的

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

熟悉在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] MOV BL,[DI] ADC AL,BL AAA

MOV [SI],AL DEC SI DEC DI

LOOP AD2 MOV SI,DX MOV DI,BP MOV BX,05H

AD3: ADD BYTE PTR [SI],30H ADD BYTE PTR [DI],30H DEC SI DEC DI DEC BX JNZ AD3

RET

ADDA ENDP CODE ENDS END START

实验结果如图:

结果分析:两个数相加后结果放在内存中DS:0000处,且结果应给为84256,实验结果与理论分析一致。

实验二 排序实验

一、实验目的

掌握用汇编语言编写排序程序的思路和方法。 二、实验内容

将指定内存出开始的数据(最多为4位数)按从大到小的顺序排列。第一个数字表示数据的个数(不是要比较的数值!!!)。 三、程序流程图

图 3-2

四、程序清单

DATA SEGMENT

ADDR DW 8,234,35,67,876,54,39,765,237 DATA ENDS STACK SEGMENT

STA DW 32 DUP(?) TOP DW ? STACK ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK START: MOV AX,DATA MOV DS,AX MOV ES,AX MOV AX,STACK MOV SS,AX

MOV SP,TOP

MOV CX,WORD PTR ADDR[0] DEC CX

LOOP1: MOV DI,CX MOV BX,2

实验一 两个多位十进制数相加的实验 - 图文.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c3s8vg0g3pi3sk4u08kd0_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top