My function for displaying characters in Assembler works fine with outputting one variable. When I try to output an array, it does not work. To ====================== working ====================== everything is written in memory correctly . (I checked it in Turbo Debugger.) When the function is called, variables as text are not added to a string variable. If someone has any working program examples with the display of arrays, I will be glad to see (some comments in Ukrainian) PS In TASM, the program is working and working

.model small .stack 100h .data x dw 3, 12, 7, -1 y dw 1, 13, 7, 8 n dw 4 f dw ? temp dw ? msg db 10,13,"The array:",10,13,"$" Press db 10,13,"Press any key...$" stringOut db 10 dup(?) ;resultOutMsg db 'Result is: $' stk segment stack dw 256 dup (?) stk Ends .code start: mov ax,@data mov ds, ax mov es, ax ;==================================== mov bx, y mov cx, n lea di, x cicle: mov ax, [di] cmp ax, bx jg l1 jmp l2 l1: mov bx, ax l2: inc di inc di loop cicle mov f, bx mov cx, n lea di, y cicle2: add [di], bx inc di inc di loop cicle2 ;the output array ;==================working=================== lea dx, msg mov ah, 09h int 21h mov cx, n mov si, 0 lea di, y outputing: ;mov ah,02h mov ax,[di] ;save the previous flags state mov f,ax push cx call number2string ;returt the previous flag state ;mov ax, f mov stringOut, ah pop cx inc di inc di loop outputing ;waiting for press any key lea dx,stringOut mov ah, 09h int 21h mov ah, 00h int 16h mov ax, 4c00h int 21h number2string proc mov bx, 10 ;Витягнуті числа діляться на 10. mov cx, 0 ;Counter для чисел які ділимо на 10. cmp ax, 0 ;Перевірка числа на знак. mov si, temp jge skipForPlus ;Обхід перевірки на від'ємне число. js isNegative ;Якщо відʼємне, робимо додатнім. isNegative: neg ax ;Робимо додатнім. ; sub ax, 1 skipForPlus: cycleForDivide: mov dx, 0 ;Необхідно для ділення АХ. div bx ;DX:AX / 10 = AX:Частка DX:Залишок. push dx ;Підготовлюємо залишок для подальшої обробки. inc cx ;Збільшуємо counter для кожного витягнутого числа. cmp ax, 0 ;Якщо не нуль, продовжуємо цикл jne cycleForDivide ;Тепер підготовлюємо обробку даних. mov si, offset stringOut mov ax, f ;Якщо число відʼємне, додаємо знак '-' на початок стеку. cmp ax, 0 ;Якщо додатнє, пропускаємо: jge skipForSignCheck jl signCheck signCheck: mov byte ptr [si], '-' inc si ;Кінець. skipForSignCheck: cycleForConvertToASCII: pop dx add dl, 48 ;Число --> символ. mov [si], dl inc si loop cycleForConvertToASCII mov temp, si ret number2string endp end start 

    0