代码:
;把ascii码(0-9 A-F)转化成二进制显示 ;先输入次数(1-9 A-F) 再转换 data segment times db 'times?(1-9)',0dh,0ah,'$' mesg db 0dh,0ah,'$' data ends code segment assume cs:code,ds:data beg: mov ax,data mov ds,ax mov ah,09h ;9号DOS调用 显示输入times mov dx,offset times int 21h mov ah,01h int 21h call asciinum ;输入参数 al 输出参数bl mov bh,0 mov cx,bx again: push cx mov ah,09h mov dx,offset mesg int 21h mov ah,01h int 21h call asciinum ;输入参数 al 输出参数bl mov ah,02h ;显示“=” mov dl,'=' int 21h call disp ;显示二进制值 mov ah,02h ;显示B mov dl,'B' int 21h pop cx loop AGAIN mov ax,4c00h int 21h asciinum proc ;把ascii转换成数字 例如 1 转化成1 A转化成10 F转换成15 cmp al,3ah jc next1 sub al,07h next1: sub al,30h mov bl,al ret asciinum endp disp proc ;disp proc 和 disp endp 也是用来标记子程序 可以直接用标号 mov cx,8 s: mov dl,'0' rol bl,1 jnc s1 mov dl,'1' s1: mov ah,02h int 21h loop s ret disp endp code ends end beg