汇编-将输入的十进制数转化为二进制

把以ASCII形式表示的十进制数转换为二进制数

.model	small
.386
.stack 200h
.data
	ascval	db	'12345'
	binval	dw	?

.code
main proc
start:
	mov	ax, @data
	mov	ds, ax

	lea	bx, ascval
	push	bx
	lea	bx, binval
	push	bx
	call	convascbin

	mov	ax, 4c00h
	int	21h
main	endp

;convascbin proc pascal uses ax bx cx si di par1:word, par2:word

	local	asclen:word, mulfact:word
	mov	bx, 10
	mov	si, par1
	mov	di, par2
	sub	di, si
	mov	asclen, di
	mov	cx, asclen
	add	si, asclen
	dec	si
	mov	mulfact, 1
	mov	di, par2
	mov	[di], 0

next:
	mov	al, [si]
	and	ax, 000fh
	mul	mulfact
	add	[di], ax
	mov	ax, mulfact
	mul	bx
	mov	mulfact, ax
	dec	si
	loop	next
	ret
convascbin	endp

	end	start

猜你喜欢

转载自blog.csdn.net/qq_43199109/article/details/84205886