В общем задержка решила проблему.

Ниже программа умеющая двигать ноль по экрану, но убого кривая. Может кто-то предложит лучше вариант?

Скрытый текст


Код:
keyb_ask	EQU     0F812H	;опрос состояния клавиатуры
keyb_enter	EQU     0F803H	;ввод символа с клавиатуры код в A
keyb_ask_key	EQU	0F81BH	;опрос кода нажатой клавиши код в A
prn_symb 	EQU     0F809H	;печать символа в C код символа
prn_line	EQU     0F818H	;печать строки в HL адрес строки
prn_hex		EQU	0F815H	;печать в HEX в A байт
prompt  	EQU 	0F86Ch
up		EQU	19h
down		EQU	1ah
left		EQU	08h
right		EQU	18h
enter		EQU	0dh

		org	0
		mvi	c,1fh
		call	prn_symb
		mvi	b, 0
		mvi	c, 1
start:		call	coord
		mvi	m, '0'
		call	delay
		mvi	m, ' '
start1:		call	keyb_ask_key
		cpi	up
		jz	go_up
		cpi	down
		jz	go_down
		cpi	left
		jz	go_left
		cpi	right
		jz	go_right
		cpi	enter
		jz	prompt
		jmp	start


go_up:		mov	a,c
		cpi	1
		jz	start1
		dcr	c
		jmp	start
go_down:	mov	a,c
		cpi	26
		jz	start1
		inr	c
		jmp	start
go_left:	mov	a,b
		cpi	0
		jz	start1
		dcr	b
		jmp	start
go_right:	mov	a,b
		cpi	64
		jz	start1
		inr	b
		jmp	start



coord:		push	d	;B это x C это y
		push 	b
		lxi 	h,77c2h
		lxi	d,004eh
coord1:		dad	d
		dcr	c
		jnz	coord1
		mov 	e,b
		dad	d
		pop	b
		pop 	d
		ret

delay:		push	b
		mvi	b,020h
delay2:		mvi	c,0ffh
delay1:		nop
		dcr	c
		jnz	delay1
		dcr	b
		jnz	delay2
		pop	b
		ret
[свернуть]