[bits 16]
[org 100h]

%macro input_char 0
	mov ah, 08h
	int 21h
%endmacro
%macro output_char 0
	mov ah, 02h
	int 21h
%endmacro

start:
	input_char

	cmp al, ' '
	je koniec
	
	mov bx, ax
	push bx
	mov dl, al
	output_char
	pop bx
 	mov ax, bx
	mov byte[lp+di], al
	inc di
	inc cx
	jmp start

koniec:
	xor di,di
	mov di, lp
next:	
	mov dl, byte[di]
	output_char
	inc di
	loop next
	
	mov ax, 4C00h
	int 21h
	
	
lp resb 1000

Program działa na tej zasadzie że wprowadzam dane do tablicy i później wypisuje je w pętli next. Wie ktoś dlaczego nie chce wypisać poprawnie wszystkich elementów?