回 帖 发 新 帖 刷新版面

主题:我的程序哪不对?

程序作用是输入一个字符,将其ascii码以二进制形式显示出来
我的程序是
    mov ah,1
    int 21
    mov cx,8
    mov dh,80
109:mov bl,al
    mov dl,30
    and bl,dh
    jz 113
    mov dl,31
113:mov ah,2
    int 21
    shr dh,1
    loop 109
    int 20
不管输入什么字符都显示00110000
例题程序是
    mov ah,1
    int 21
    mov cx,8
    mov bh,80
    mov dh,al
10B:mov dl,30
    and al,bh
    jz 113
    mov dl,31
113:mov ah,2
    int 21
    mov al,dh
    shr bh,1
    loop 10b
    int 20 
例题程序运行正常
不过我看不出两个程序有多大差别阿?
哪位高手指点一下到底我错在哪了?
谢谢了

回复列表 (共1个回复)

沙发

mov        ah, 1
    int        21
    mov        dh, al    ;保存

    mov        dl, 0DH
    mov        ah, 2
    int        21H
    mov        dl, 0AH
    mov        ah, 2
    int        21H

    mov        cx, 8
_loop:
    rol        dh, 1
    mov        dl, dh
    and        dl, 1
    or        dl, '0'
    mov        ah, 2
    int        21H
    loop    _loop

我来回复

您尚未登录,请登录后再回复。点此登录或注册