| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1118 人关注过本帖
标题:我写的输入两个数相加,然后输出结果!不知道哪里出问题了
只看楼主 加入收藏
明明白白
Rank: 2
等 级:论坛游民
帖 子:57
专家分:61
注 册:2012-3-19
结帖率:83.33%
收藏
已结贴  问题点数:10 回复次数:15 
我写的输入两个数相加,然后输出结果!不知道哪里出问题了
data segment

    infor1 db "Please inout the firstdata(<10):$"
    infor2 db 0ah,0dh,"Please inout the second data(<10):$"
    infor3 db 0ah,0dh,"The result is(<10):$"

data ends

code segment

    assume ds:data,cs:code
start:  mov ax,data
    mov ds,ax
   
    lea dx,infor1
    mov ah,09h
    int 21h   

    mov ah,01h
    int 21h
    sub al,30h

    mov bl,al
    lea dx,infor2
    mov ah,09h
    int 21h
    mov ah,01h
    int 21h
    sub al,30h
   
    xor ah,ah
    add al,bl
    aaa
   
    lea dx,infor3
    mov ah,09h
    int 21h
   
    push ax
    mov dl,ah
    add dl,30h
    mov ah,02h
    int 21h
    pop ax
   
    push ax
    mov dl,al
    add dl,30h
    mov ah,02h
    int 21h

    mov ah,4ch
    int 21h
code ends
    end start
搜索更多相关主题的帖子: result second 
2012-05-20 21:38
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:5 
我也不知道~
2012-05-20 21:46
于祥
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:5
帖 子:1047
专家分:4132
注 册:2011-4-24
收藏
得分:5 
程序代码:
data segment

    infor1 db "Please inout the firstdata(<10):$"
     infor2 db 0ah,0dh,"Please inout the second data(<10):$"
     infor3 db 0ah,0dh,"The result is(<10):$"

data ends

code segment

    assume ds:data,cs:code

 start:  mov ax,data
     mov ds,ax
   
    lea dx,infor1
     mov ah,09h
     int 21h   

    mov ah,01h
     int 21h
     sub al,30h

    mov bl,al
     lea dx,infor2
     mov ah,09h
     int 21h
     mov ah,01h
     int 21h
     sub al,30h
   
    xor ah,ah
     add al,bl
     aaa//多余的吧?
   
    lea dx,infor3
     mov ah,09h
     int 21h   //int 21h后al的值改变了
   
    push ax     //这里时,al的值已经改变,你可以单步执行看看
     mov dl,ah
     add dl,30h
     mov ah,02h
     int 21h
     pop ax
   
    push ax    //这里多余的吧?
     mov dl,al
     add dl,30h
     mov ah,02h
     int 21h   //到这里

    mov ah,4ch
     int 21h

 code ends
     end start


看下面的



data segment

    infor1 db "Please inout the firstdata(<5):$"           //这里小于5吧?
     infor2 db 0ah,0dh,"Please inout the second data(<5):$"
     infor3 db 0ah,0dh,"The result is(<10):$"

data ends

code segment 

    assume ds:data,cs:code

 start:  mov ax,data
     mov ds,ax
    
    lea dx,infor1
     mov ah,09h
     int 21h    

    mov ah,01h
     int 21h
     sub al,30h

    mov bl,al
     lea dx,infor2
     mov ah,09h
     int 21h
     mov ah,01h
     int 21h
     sub al,30h
    
     xor ah,ah
     add al,bl
     mov cl,al//用cl存储al的值
    
     lea dx,infor3
     mov ah,09h
     int 21h
    
   
     mov dl,cl
     add dl,30h
     mov ah,02h
     int 21h
    

    mov ah,4ch
     int 21h

 code ends
     end start  

最基础的往往是你最容易忽略的!
2012-05-21 13:00
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 3楼 于祥
两个相加的数不能大于5 那 8+9= 17 或者 两个两位数相加怎么写?

梅尚程荀
马谭杨奚







                                                       
2012-05-25 13:05
于祥
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:5
帖 子:1047
专家分:4132
注 册:2011-4-24
收藏
得分:0 
回复 4楼 有容就大
那就用到调整压缩的BCD码指令了!

最基础的往往是你最容易忽略的!
2012-05-25 20:50
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 5楼 于祥
哦 这个还很陌生 从没用过
网上看了下 貌似这个简单的两数相加功能写一段汇编代码都比较长啊。

梅尚程荀
马谭杨奚







                                                       
2012-05-25 21:38
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
对啊 没有printf 光输出就是个问题
2012-05-26 13:37
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 7楼 zklhp
printf汇编 现在还不会编

梅尚程荀
马谭杨奚







                                                       
2012-05-26 14:32
于祥
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:5
帖 子:1047
专家分:4132
注 册:2011-4-24
收藏
得分:0 
哈哈

最基础的往往是你最容易忽略的!
2012-05-26 19:47
nulicaoliang
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2012-6-17
收藏
得分:0 
看帖回贴  新手一个
2012-06-17 14:05
快速回复:我写的输入两个数相加,然后输出结果!不知道哪里出问题了
数据加载中...
 
   



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

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