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

本文详细介绍了如何将ASCII码(0-9A-F)转化为二进制显示的过程,包括用户输入处理、显示操作及核心算法实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

代码:

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


结果:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值