标题:求指点迷津——带进位任意位加法的问题
只看楼主
丶wist
Rank: 1
等 级:新手上路
帖 子:12
专家分:5
注 册:2014-10-21
结帖率:0
 问题点数:0 回复次数:4 
求指点迷津——带进位任意位加法的问题
之前已经做过固定两个5位数12345和67890带进位相加,现在深入做由键盘输入要相加的两个数,而且是任意位的,目前是想设置一个段,存放“xx+xxxx=”当判断到为“+”号时第一个数输入完毕,为“=”时第二个数输入完毕,然后相加输出,可是,可是具体操作起来捉襟见肘呀,希望前辈们能指点迷津!
搜索更多相关主题的帖子: 而且 键盘 
2014-10-23 09:44
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:0 
这个还是使用高级语言做比较适合

DO IT YOURSELF !
2014-10-23 10:23
丶wist
Rank: 1
等 级:新手上路
帖 子:12
专家分:5
注 册:2014-10-21
得分:0 
回复 2 楼 wp231957
高级语言当然没这么费劲了,可现在在学汇编,得用汇编来的,脑大了
2014-10-23 16:21
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:396
帖 子:11713
专家分:43267
注 册:2006-5-13
得分:0 
从键盘缓冲区中逐个读入字符码,遇到“+”则结束被加数读入,继续读入加数,遇到“=”则进行运算。若读到除0-9,+,-之外的字符则结束程序。

活到老,学到老! http://www. E-mail:hu-jj@
2014-10-23 17:03
丶wist
Rank: 1
等 级:新手上路
帖 子:12
专家分:5
注 册:2014-10-21
得分:0 
回复 4 楼 hu9jj
DATAS SEGMENT
    X DB 100 DUP(0)
      DB ?
    Y DB 10 DUP(0)      
DATAS ENDS

CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS
START:
    MOV AX,DATAS
    MOV DS,AX
   
    MOV BX,0 ;
    MOV SI,0 ;
   
 X3:  
    MOV AH,01H
    INT 21H
    CMP AL,2BH ;
    JZ X1 ;等于+号时转移到X1
    MOV X[BX],AL
    INC BX
    INC SI
    JMP X3
   
 X1:
    INC SI;加上+号位长度
    MOV AH,01H
    INT 21H
    CMP AL,3DH
    JZ X2 ;等于=号时转移到X2
    MOV X[SI],AL
    INC BX
    INC SI
    JMP X1
   
 X2:
    INC SI; 加上=号位长度        
   
   
   
    MOV AH,4CH
    INT 21H
CODES ENDS
    END START


初步代码如上,但是在做到相加时出现了麻烦,因为位数不一样加起来会比较复杂,设两个数123+45678,于是想到,123放到段底,45678也放到另一个段底,这样其余存储单元都为零之后依次加起来
2014-10-24 16:37



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-437568-1-1.html




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

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