может кто-нибудь помочь с комментариями к этой программке ,т.к. в ассемблере я новичок,понятно,но н все - есть сомнения
.model tiny
.code
org 100h
start:
mov ax,6219
push ax
push ax
mov bx,16
lea si,string
call IntToStr
mov ah,9
lea dx,string
int 21h
pop ax
mov bx,8
lea si,string
call IntToStr
mov ah,9
lea dx,Break
int 21h
pop ax
mov bx,2
lea si,string
call IntToStr
mov ah,9
lea dx,Break
int 21h
mov ah,8
int 21h
ret
Break db 13,10
string db 64 dup('$')
IntToStr proc
;IN:
;ESI = address of the string to output the number
;EAX = nubmer to convert to string
;EBX = scale of notation
;
;OUT:
;number, converted to string at address, passed in ESI
;EBX = 0 if Error
;check scale of notation
cmp bx,9+26;9 digits and 26 letters
jae its_out_of_range
push dx
push di
push cx
its_sgn_plus:
xor cx,cx
mov di,si
its_repeat:
xor dx,dx
div bx
cmp dl,10
jge its_letter
add dl,30h
jmp its_notletter
its_letter:
add dl,41h-10
its_notletter:
mov byte ptr [di],dl
inc cx
inc di
test ax,ax
jne its_repeat
push cx
shr cx,1
jnc $+3
inc cx
its_invert_order:
dec di
mov dl,byte ptr [di]
mov al,byte ptr [si]
mov byte ptr [si],dl
mov byte ptr [di],al
inc si
dec cx ;loop its_invert_order
jnz its_invert_order
pop cx
pop cx
pop di
pop dx
ret
its_out_of_range:
xor bx,bx ;EBX = 0 if Error
ret
IntToStr endp
end start