Сто лет не писал на ассемблере, а на ассемблере ВМ80 никогда. Прошу помощи с пониманием!
Написал маленькую программулину (пишу в эмуляторе на сайте http://rk86.ru/, к реалу доступа нет сейчас). Она делает следующее: в паре BC у нас координаты X и Y, подпрограмма coord рассчитывает адрес в экранной области и печатает туда символ 0. Далее через процедуру из ПЗУ мы опрашиваем клавиатуру и ждем нажатия "пробела", если нажат печатаем еще один символ, и так пока не достигнем конца экрана.
Засада в том, что при нажатии пробела печатается некое количество символов, как будто клавиша залипает. Ни как не могу это победить!
Скрытый текст
Код: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 org 0 mvi b, 0 mvi c, 10 start: call coord mvi m, '0' start1: call keyb_ask_key cpi 20H jnz start1 mov a,b cpi 64 jz prompt 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[свернуть]




Ответить с цитированием