「MASM32/itoa」の編集履歴(バックアップ)一覧に戻る

MASM32/itoa - (2018/08/18 (土) 08:05:57) のソース

itoa.asm
#highlight(asm){{
comment *
MASM32 SDK
ml /c /AT /Fl itoa.asm
link16 /t itoa;
*
		.186
		.model	tiny
		.code
		org	0100h

main		proc
		mov	di, offset buf
		mov	ax, 0f0a9h
		call	itoa4
		inc	di
		mov	al, 5ch
		call	itoa2

		mov	ah, 09h
		mov	dx, offset buf
		int	21h
		mov	ax, 4c00h
		int	21h
main		endp

itoa2		proc
		mov	cx, 2
@@loop:
		rol	al, 4
		push	ax
		and	al, 0fh
		cmp	al, 0ah
		sbb	al, 69h
		das
		stosb
		pop	ax
		loop	@@loop
		ret
itoa2		endp

itoa4		proc
		mov	cx, 4
@@loop:
		rol	ax, 4
		push	ax
		and	al, 0fh
		cmp	al, 0ah
		sbb	al, 69h
		das
		stosb
		pop	ax
		loop	@@loop
		ret
itoa4		endp

buf		db	'xxxx:xx', 0dh, 0ah, '$'

		end	main
}}

#image(itoa.png)

***別バージョン
itoa4.asm
#highlight(asm){{
comment *
MASM32 SDK
ml /c /AT /Fl itoa4.asm
link16 /t itoa4;
*
		.186
		.model	tiny
		.code
		org	0100h

main		proc
		mov	di, offset buf
		mov	ax, 09afh
		call	itoa4

		mov	ah, 09h
		mov	dx, offset buf
		int	21h
		mov	ax, 4c00h
		int	21h
main		endp

itoa4		proc
		mov	cx, 4
@@loop:
		rol	ax, 4
		push	ax
		mov	bl, al
		and	bx, 000fh
		mov	al, hexstr[bx]
		stosb
		pop	ax
		loop	@@loop
		ret
itoa4		endp

hexstr		db	'0123456789ABCDEF'
buf		db	'xxxx', 0dh, 0ah, '$'

		end	main
}}