16位二进制数转换为ASCII码
虽然我看到了https://bbs.bccn.net/thread-240713-1-1.html 这个帖子,但是还是有点不明白,希望有人帮忙解释下代码。最好能改成16位二进制数转换为ASCII码。
程序代码:那个8位二进制数转换成ASCII码的方法
data segment
org 30h
db ? ;不大明白这儿,数是随机产生的吗?
db ?
db ?
data ends
code segment
main proc far
assume cs:code,ds:data
push ds
sub ax,ax ;这儿以下的就不明白了……
push ax
mov ax,data
mov ds,ax
mov si,30h
mov byte ptr [si],4bh
call convert ;这是调用吗?怎么没有标号?
mov cx,2
mov si,30h
loop1:
inc si
mov dl,[si]
mov ah,2
int 21h
loop loop1
mov ax,4c00h
int 21h
main endp
convert proc near
mov si,30h
mov al,[si]
mov ch,2
rotate:
inc si
mov cl,4
rol al,cl
mov bl,al
and bl,0fh
add bl,30h
cmp bl,3ah
jl store
add bl,7h
store:
mov [si],bl
dec ch
jnz rotate
ret
convert endp
code ends
end main
最好能写个16位二进制数转换为ASCII码的,在注释一下……

这儿有个流程图,但是我还是不会

望大家帮忙。谢谢。
[ 本帖最后由 dydsdyds 于 2010-5-30 21:03 编辑 ]



