| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4431 人关注过本帖
标题:多字节的二进制加法程序
只看楼主 加入收藏
筐筐的橙
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2011-5-31
结帖率:100%
收藏
已结贴  问题点数:0 回复次数:5 
多字节的二进制加法程序
下面是实验题目:
  1.实验内容
将两个4字节长的二进制数相加,运算结果存放在相应结果单元中。
2.说明
首先应安排程序的结构,其中代码段和数据段是必须有的。代码段里实现数的相加,可用带
进位的加法指令;数据段中存放被加数、加数和结果单元这些数据。考虑到编程的方便,在定义加数和被加数时,将低位字节放到低地址,高位字节放在高地址。进行加法运算时,按照由低地址到高地址的顺序取得数据,而每一步运算的结果也按照低位放在低地,高位放在高地址的方式进行存储

说明看的有点蒙,就编了个:


DATAS SEGMENT
    DATA1 DD 12345678H
    DATA2 DD 0ABCDEF01H
    DATA3 DW 2 DUP(0);此处输入数据段代码  
DATAS ENDS

STACKS SEGMENT
    ;此处输入堆栈段代码
STACKS ENDS

CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
    MOV AX,DATAS
    MOV DS,AX
    MOV BP,0
    LEA SI,DATA1                  ;取两个数据的首地址
    LEA DI,DATA2
    MOV AX,[SI]
    ADD AX,[DI]                   ;后四位相加
    JC L                           ;判断是否进位
    MOV 4[DATA3],AX                ;后四位存入DATA3
    MOV AX,0

K:  MOV AX,4[SI]                  ;前四位相加
    ADD AX,4[DI]
    JMP J
L:  MOV AX,1                      ;有进位AX先加一
    JMP K
J:  MOV [DATA3],AX                ;前四位存入DATA3
    MOV AH,4CH
    INT 21H
CODES ENDS
    END START

估计错误的地方比较多,需要大修=v=,,,求高手帮指点下。

搜索更多相关主题的帖子: 二进制 
2011-06-05 14:47
obstratiker
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:198
专家分:758
注 册:2011-5-5
收藏
得分:10 
思路是没有错的
但是        MOV 4[DATA3],AX                ;后四位存入DATA3
            MOV AX,0                                            

得放在      JC L  之前
不然有进位就不执行前两句了


……不过你直接用 ADD 和 ADC  的指令更方便
mov ax,(data1)
mov dx,(data2)
add ax,(data2)
adc dx,(data2)
具体怎么用自己查查吧
2011-06-05 20:50
筐筐的橙
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2011-5-31
收藏
得分:0 
我把JC L放到后面这样运行了,但是怎么证明它的结果是对的呢?d命令出来完全看不出什么啊~
2011-06-05 23:50
obstratiker
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:198
专家分:758
注 册:2011-5-5
收藏
得分:0 

看不出来是什么意思……
你的数是存入 data3 里了,但是位置放错了(晕,尽管昨天我没 debug 出来,你好歹也尽量查查错啊)

后四位放入  2[data3] 中,你的定义是  dw 只有 2 字节
所以按你的程序运行,
data3 内存中就是
01 ef 00 00 79 45
多出一个字的空间来
2011-06-06 11:33
guoweiya
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2012-10-6
收藏
得分:0 
回复 4楼 obstratiker
请问一下,地址偏移量是4吗?不应该是2?
2012-10-06 21:12
guoweiya
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2012-10-6
收藏
得分:0 
回复 4楼 obstratiker
取data1和data2前四位的时候偏移量是不是也应该是2?
2012-10-06 21:13
快速回复:多字节的二进制加法程序
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012328 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved