В общем задержка решила проблему.
Ниже программа умеющая двигать ноль по экрану, но убого кривая. Может кто-то предложит лучше вариант?
Скрытый текст
Код: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
[свернуть]

