برنامه تبدیل یک عدد صحیح علامت دار دو بایتی ذخیره شده در AX و ذخیره رشته بدست آمده در سگمنت داده با استفاده از اشاره گر di.

قبل از فراخوانی باید در سگمنت داده 6 بایت برای ذخیره رشته عددی تعریف و di توسط برنامه main با آفست آن مقداردهی شود.

 

 

procs                segment

                        assume cs:procs

itoa                   proc far

                        cmp ax,8000h ;case of  -32768 smallest number in 2 bytes

                        jne normal

                        mov byte ptr [di],’-‘

                        mov byte ptr [di+1],’3’

                        mov byte ptr [di+2],’2’

                        mov byte ptr [di+3],’7’

                        mov byte ptr [di+4],’6’

                        mov byte ptr [di+5],’8’

                        jmp short finish

normal: mov dx,ax

                        mov al,’ ‘

                        mov cx,5

                        cld

                        rep stosb

                        mov ax,dx

                        mov cl,’ ‘

                        cmp ax,0

                        jge setup

                        mov cl,’-‘

                        neg ax

setup:               mov bx,10

divloop:            mov dx,0

                        div bx

                        add dl,30h

                        mov byte ptr [di], dl

                        dec di

                        cmp ax,0

                        jne divloop

                        mov byte ptr [di],cl

finish:                ret

itoa                   endp

procs                ends