Помогите пожалуйста разобраться. Прохожу в пошаговом режиме монитор 0. Очень быстро попадаю в замкнутый цикл. При чем, получается что внутри этого цикла нет возврата RET из двух прерываний: сначала из RST 6, потом из RST 2. Вот листинг моего "дизассемблирования".
После попадания отладчика эмулятора от b2m на этот RST 4, понял, что сейчас уйду на второй кругКод:.org 0000 ;Стартовый адрес lxi sp, c3ee ;Вершина стека mvi a, 11 ;В аккумулятор запись числа 11 hex jmp 003b ;Безусловный переход на адрес 003b ei ;Разрешить прерывания по входу INT sta 9000 ;Вывод аккумулятора на индикатор с адресом 9000 rst 4 ;Переход на 0020 rst 3 ;Переход на 0018 push h ;Запись HL в стек push psw ;Запись аккумулятора и регистра флагов в стек lxi h, 6650 ;Запись в HL числа 6650 hex jmp 0056 ;Безусловный переход на адрес 0056 dcx h ;Уменьшение HL на единицу mov a, l ;Запись L в аккумулятор ora h ;Операция ИЛИ между H и аккумулятором jnz 0056 ;Если результат не ноль то вернуться на 0056 pop psw ;Иначе, восстановить psw из стека pop h ;И восстановить HL из стека ret ;Возврат из обработки rst 3 (адрес возврата 0021) jmp 005f ;Безусловный переход на 005f in a0 ;Ввод в аккумулятор байта от ВУ с адресом A0 adi 00 ;Сложение аккумулятора с числом 00 hex jz 005f ;Если результат равен 0, то переход на адрес 005f cpi 80 ;Иначе, сравнение аккумулятора с числом 80 hex jz 006e ;Если равенство, переход на адрес 006e ani 0f ;Иначе, операция И между аккумулятором и числом 0f ret ;Возврат из обработки rst 4 (адрес возврата 0040) adi f3 ;Сложение аккумулятора с числом f3 mvi h, 00 ;Запись в H числа 00 hex mov l, a ;Запись в L из аккумулятора mov l, m ;Запись в L из памяти с адресом из HL (адрес 00f3, значение 91) pchl ;Запись в адресный счетчик из HL (переход на адрес 0091) rst 6 ;Переход на 0030 push psw ;Запись аккумулятора и регистра флагов в стек rst 2 ;Переход на 0010 push d ;Запись DE в стек xra a ;Операция ИЛИ-НЕ аккумулятора с аккумулятором mov d, a ;Запись аккумулятора в D rst 4 ; WTF ?Допускаю, что где-то спутал код команды с числовой константой. Только непонятно, где именно.




Допускаю, что где-то спутал код команды с числовой константой. Только непонятно, где именно.
Ответить с цитированием