Показать сообщение отдельно

  #450  
Старый 03.12.2008, 15:01
Kaas
Познающий
Регистрация: 13.02.2007
Сообщений: 41
Провел на форуме:
137010

Репутация: 26
По умолчанию

Ребят, есть вопрос по небольшой проге. вот код:

Код:
assume cs:code, ds:data
code segment
org	100h
start:

	lea bx, work
	mov cx, 10
	mov di, 0 ; index (row)

a0:
		push cx
		push di 
		
		mov cx, 10
		mov di, 0 ;index (column)
		
		a1:
			;mov [bx+di*2], di
			mov 2[bx][di], di

; start show number			
			mov	ax, 2[bx][di]
			
			push cx
			push di
			
			std                  	
			lea	di,StringEnd-1 		
				     		
			
			mov	cx,10          		
		iRepeat:
			xor	dx,dx          		
			div	cx             		
			xchg	ax,dx          	
			add	al,'0'         		
			stosb                  	
			xchg	ax,dx          	
			or	ax,ax          		
			jne	iRepeat         	

			mov	ah,9				
			lea	dx,[di+1]      		
			int	21h            		
			mov dx, offset Space
			int 21h
			
			pop di
			pop cx
			
			inc di
;end show number				
		
	loop a1
	
	pop di ;reincornate di, cx
	pop cx ;
	add bx, 10*2 ; go to next line
	
	push ax
	push dx
		
	mov ah, 9
	mov dx, offset nl
	int 21h
	
	pop dx
	pop ax
	
loop a0

	Space db " ", '$'
	String		db	5 dup (?),'$'  	; 5 byte for string
	StringEnd	=	$-1            	; Ukazatel' na simvol '$'

	work    dw     100 dup (0h)	;mass work <- 100 word's	
	nl      db 	    0Dh, 0Ah, '$'
code ends

data segment

ends data
	
end start
Здесь задается матрица 10*10, заполняется нулями, а затем в двойном цикле заполняется числами (0...9) и на каждой итерации элемент выводится в консоль.

Проблема в том, что выводится только 75 элементов, а не все 100 - в чем причина?)
 
Ответить с цитированием