汇编网首页登录博客注册
masmaster的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
文章收藏

[2010-09-07 22:50] 习题4.20

写一个程序显示所按字符集对应的ASCII码先用2位十六进制数显示ASCII码,然后再用八进制数显示ASCII码


答:
;----------------------------------------------------
assume        cs:code,ss:stack
stack        segment stack
        dw 128 dup (0)
stack        ends
code        segment
start:
        mov ah,1
        int 21h
        and ax,0ffh
        push ax
        call crlf
        pop ax
        call hex
        push ax
        mov dl,'H'
        mov ah,2
        int 21h
        call crlf
        pop ax
        call octal
        mov dl,'Q'
        mov ah,2
        int 21h

        mov ah,4ch
        int 21h
;
hex        proc
        xor ah,ah
        mov cl,4
        mov si,2
a:        rol al,cl
        push ax
        and al,0fh
        cmp al,10
        jb a1
        add al,37h
a1:        add al,30h
        mov dl,al
        mov ah,2
        int 21h
        pop ax
        dec si
        cmp si,0
        jz ok
        jmp a
ok:        ret
hex        endp
;
octal        proc
        xor ah,ah
        mov bl,8
        mov cx,0
b:        
        div bl
        inc cx
        mov dl,ah
        xor dh,dh
        push dx
        cmp al,8
        jb b1
        xor ah,ah
        jmp b
b1:        and ax,0fh
        push ax
        inc cx
b2:        pop dx
        add dx,0030h
        mov ah,2
        int 21h
        loop b2
        ret 2
octal        endp
;
crlf        proc
        mov dl,0dh
        mov ah,2
        int 21h
        mov dl,0ah
        mov ah,2
        int 21h
        ret
crlf        endp
;
code        ends
end        start

;----------------------------------------------------
评论次数(0)  |  浏览次数(291)  |  类型(汇编习题集) |  收藏此文  | 
 
 请输入验证码  (提示:点击验证码输入框,以获取验证码