| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 709 人关注过本帖
标题:结果错误
只看楼主 加入收藏
zacom
Rank: 2
等 级:论坛游民
威 望:2
帖 子:381
专家分:15
注 册:2007-9-15
结帖率:88.89%
收藏
 问题点数:0 回复次数:2 
结果错误
想把十进制数先转化为二进制再转换为十六进制,但结果显示错误,.,,找不出错在哪里..请帮忙..
stack segment
      dw 512 dup(?)
stack ends
data segment
a    db 'welcome to this',0ah,0dh,'$'
b    db 'the number is ','$'
data ends
code segment
     assume cs:code,ds:data,ss:stack
start:    mov ax,data
          mov ds,ax
          mov dx,offset a
          mov ah,9
          int 21h
          xor bx,bx
putin:    mov ah,1
           int 21h
           cmp al,'#'
           jz endput
           sub al,30h
           shl bx,1
           mov cx,bx
           shl bx,1
           shl bx,1
           add bx,cx
           add bx,ax
           jmp putin
endput:    mov dl,0ah
           mov ah,2
           int 21h
           mov dl,0dh
           mov ah,2
           int 21h
           mov dx,offset b
           mov ah,9h
           int 21h
           mov dl,bl
           mov ah,2
           int 21h
        mov ax,bx
        mov bx,4
        mov cl,4
    _in:rol ax,cl
        mov dl,al
        and dl,0fh
        add dl,30h
        cmp dl,3ah
        jb  show
        add dl,07h
 show:  mov ah,02h
        int 21h
        dec bx
        jnz _in        
_return:mov ax,4c00h
      int 21h   
code ends
     end start
搜索更多相关主题的帖子: 结果 
2008-05-24 18:21
henankaifei717
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2008-4-20
收藏
得分:0 
我看了你的程序我感觉你这个程序的算法错了,我写了一个你看看
crlf    macro
    mov    ah,02h
    mov    dl,0dh
    int    21h
    mov    ah,02h
    mov    dl,0ah
    int    21h
endm
;定义数据段
data segment
    infon    db    0dh,0ah,'Please input a number:$'
    binary    db    0dh,0ah,'The binary type: $'
    hex    db    0dh,0ah,'The hex type:    $'
    w    dw    0
    b    dw    4
    buf    db    8
        db    ?
        db    8 dup (?)
data ends

stack segment stack
wdsew    dw    50 dup(?)
top    dw    ?
stack ends

code segment
assume        cs:code, ds:data, ss:stack
start:        mov    ax,data
                mov    ds,ax
        mov    sp,top
        lea    dx,infon
        mov    ah,9
        int    21h
        lea    dx,buf
        mov    ah,10
        int    21h
        mov    cl,[buf+1]
        lea    di,buf+2
        call    datacate
        crlf
        lea    dx,binary
        mov    ah,09h    
        int    21h
        mov    cx,0010h
        mov    bx,w
    ttt:    rol    bx,1
        mov    dl,bl
        and    dl,01h
        add    dl,30h
        mov    ah,02h
        int    21h
        loop    ttt
        crlf
        lea    dx,hex
        mov    ah,09h    
        int    21h
        mov    bx,w
        
        mov    cl,4
    _in:    
        rol    bx,cl
        mov    dl,bl
        and    dl,0fh
        add    dl,30h
        cmp    dl,3ah
        jb    show
        add    dl,07h
   show:    mov    ah,02h
        int    21h
        sub    b,1
        jne    _in

        mov    ah,4ch
        int    21h


        
datacate proc near    ;把输入的数字字符串转化为数字
        push    cx
        dec    cx
        lea    si,buf+2
    tt1:    inc    si
        loop    tt1
        pop    cx
        mov    dh,30h
        mov    bl,10
        mov    ax,1

    bb:    push    ax
        sub    byte ptr[si],dh
        mul    byte ptr[si]
        add    w,ax
        pop    ax
        mul    bl
        dec    si
        loop    bb
        ret
datacate endp


code ends
 end start
2008-05-29 16:00
zhulei1978
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:53
帖 子:1351
专家分:1200
注 册:2006-12-17
收藏
得分:0 
stack segment
      dw 512 dup(?)
stack ends
data segment
a    db 'welcome to this',0ah,0dh,'$'
b    db 'the number is ','$'
data ends
code segment
     assume cs:code,ds:data,ss:stack
start:    mov ax,data
          mov ds,ax
          mov dx,offset a
          mov ah,9
          int 21h
          xor bx,bx
putin:    mov ah,1
           int 21h
           cmp al,'#'
           jz endput
           sub al,30h
           shl bx,1
           mov cx,bx
           shl bx,1
           shl bx,1
           add bx,cx
           mov ah,0
           add bx,ax
           jmp putin
endput:    mov dl,0ah
           mov ah,2
           int 21h
           mov dl,0dh
           mov ah,2
           int 21h
           mov dx,offset b
           mov ah,9h
           int 21h
           mov dl,bl
           mov ah,2
           int 21h
        mov ax,bx
        mov bx,4
        mov cl,4
    _in:rol ax,cl
        mov dl,al
        and dl,0fh
        add dl,30h
        cmp dl,3ah
        jl  show
        add dl,07h
show:  push ax
        mov ah,02h
        int 21h
      pop ax
        dec bx
        jnz _in        
_return:mov ax,4c00h
      int 21h   
code ends
     end start

其实我就是改变社会风气,提高少女素质,刺激电影市道,提高年轻人内涵,玉树临风,风度翩翩的整蛊专家,我名叫古晶,英文名叫JingKoo!
2008-06-05 20:38
快速回复:结果错误
数据加载中...
 
   



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

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