您的位置:首页 > 其它

汇编语言 十六进制ASCII码转换为二进制显示

2015-11-05 17:48 465 查看
代码:

;把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


结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: