.186 PUBLIC _foo CODE1 SEGMENT ASSUME CS:CODE1 public _foo _foo PROC far push bp mov bp,sp push dx push di push si push bx mov ax,[bp+4] ;get parameter 1 mov di,[bp+6] ;get parameter 2 mov si,di xor bh,bh mov bl,3 begin: mov dx,0 l1:;число делим на основание,остаток переводим и записываем в строчку div bx mov [di],dx ;[di] - адрес строчки add [di],byte ptr 30h inc di mov dx,0 cmp ax,2 ;если в ax 0 то мы поделили число ja l1 mov [di],ax add [di],byte ptr 30h ;dec di ;нам нужно чтобы di указывало на последний символ l2:;разворачиваем строчку cmp di,si jle exit mov al,[di]; далее идет перестановка mov dl,[si] mov [si],al mov [di],dl dec di inc si jmp l2 exit: mov ax,0 pop bx pop si pop di pop dx mov sp,bp pop bp ret _foo ENDP CODE1 ENDS