вот еще странный кусочек попался... Я так понимаю в таком виде он исполняться не будет, стоит после JMP и через JMP выход и на него нет ниоткуда перехода. То есть получается или это блок данных, или где то из за блока данных воспринятых неправильно потерялся переход сюда, или переход со внешнего адреса (последние 4кб сменные ПЗУ с разной адресацией и в коде предусмотрены входы на них и возвраты ).... Видимо надо и дальше идти пошагово и все проверять попутно разбираясь какой код где что делает и подправлять.
1141: 3A 48 3E LDA V_3E48
1144: C3 92 20 JMP LBL450
1147: 00 NOP
1148: 3E 05 MVI A,05H ; 5
114A: D3 F3 OUT 0F3H ; 243
114C: C3 07 20 JMP LBL439
114F: 79 LBL237: MOV A,C ; [3]
1150: E6 24 ANI 24H ; 36 '$'
Вопрос про дизассемблирование кода КР580ВМ80
Вопрос про дизассемблирование кода КР580ВМ80
Ищу SRAM 16кб х 4бит DIP-24 например 7C166-15(20) и подобные.
Вопрос про дизассемблирование кода КР580ВМ80
Да тоже верно... В любом случае с точки входа все пройтись будет надежнее тем более так и так проходить чтоб разобраться в работе.
Ищу SRAM 16кб х 4бит DIP-24 например 7C166-15(20) и подобные.
Вопрос про дизассемблирование кода КР580ВМ80
Sinus,
Подскажите пожалуйста насчет этой подпрограммы.
Это что то типа задержки реализовано? В BC загружено 6432H перед ее вызовом.
Подскажите пожалуйста насчет этой подпрограммы.
Это что то типа задержки реализовано? В BC загружено 6432H перед ее вызовом.
Код: Выделить всё
0F12: C5 SUB45: PUSH B ; [2]
0F13: C5 LBL215: PUSH B
0F14: C1 POP B
0F15: D5 PUSH D
0F16: D1 POP D
0F17: E5 PUSH H
0F18: E1 POP H
0F19: F5 PUSH PSW
0F1A: F1 POP PSW
0F1B: 05 DCR B
0F1C: C2 13 0F JNZ LBL215
0F1F: C1 POP B
0F20: 0D DCR C
0F21: C2 12 0F JNZ SUB45
0F24: C9 RET
Ищу SRAM 16кб х 4бит DIP-24 например 7C166-15(20) и подобные.
-
- Advanced Member
- Сообщения: 340
- Зарегистрирован: 20.06.2020,22:40
- Откуда: msk.ru
Вопрос про дизассемблирование кода КР580ВМ80
Да тут даже нечетность push/pop вызывает вопросы. Это точно написанный хумансом код или могут быть выкрутасы транслятора? Потому что если это создано вручную, возникают сомнения в адекватности автора.
-
- Advanced Member
- Сообщения: 9537
- Зарегистрирован: 16.08.2007,11:42
- Откуда: СПб
-
Вклад в сообщество
Вопрос про дизассемблирование кода КР580ВМ80
больше на какие-то данные похоже
c1c5
d1d5
e1e5
f1f5
Xeon E5-2670v2/32 Gb, Amiga А4000Т
-
- Advanced Member
- Сообщения: 340
- Зарегистрирован: 20.06.2020,22:40
- Откуда: msk.ru
Вопрос про дизассемблирование кода КР580ВМ80
Mildi, да, правильно, очень похоже на задержку.
great coder, с чётностью push/pop всё в порядке. Там цикл в цикле:
Во внешнем цикле сначала ВС кладётся в стек. Затем во внутреннем цикле ВС кладётся в стек и берётся из стека, декрементируется В, и после выхода по условию В=0 из внутреннего цикла заложенное в стек первоначальное значение ВС забирается из стека. (Затем декрементируется С, и если С не обратилось в ноль, то идём в начало внешнего цикла: ВС снова кладётся в стек - начинается следующий проход внешнего цикла. Если же С=0, то - выход из подпрограммы. Таким образом, количество push и pop получается одинаковым.)
great coder, с чётностью push/pop всё в порядке. Там цикл в цикле:
Во внешнем цикле сначала ВС кладётся в стек. Затем во внутреннем цикле ВС кладётся в стек и берётся из стека, декрементируется В, и после выхода по условию В=0 из внутреннего цикла заложенное в стек первоначальное значение ВС забирается из стека. (Затем декрементируется С, и если С не обратилось в ноль, то идём в начало внешнего цикла: ВС снова кладётся в стек - начинается следующий проход внешнего цикла. Если же С=0, то - выход из подпрограммы. Таким образом, количество push и pop получается одинаковым.)
Вопрос про дизассемблирование кода КР580ВМ80
great coder, Этот код не ошибка, так и есть.
Sinus, Спасибо. Я так и предположил. Меня просто удивило зачем там данные через стек гоняются... DE и HL тем более в них в данный момент нет полезной информации... Решил на всякий случай уточнить.
Sinus, Спасибо. Я так и предположил. Меня просто удивило зачем там данные через стек гоняются... DE и HL тем более в них в данный момент нет полезной информации... Решил на всякий случай уточнить.
Ищу SRAM 16кб х 4бит DIP-24 например 7C166-15(20) и подобные.
Вопрос про дизассемблирование кода КР580ВМ80
Прошивка полностью без ошибок считана, так что одной заботой меньше.
Дошел до подсчета контрольных сумм, и нашел адрес где они хранятся, посчитал в редакторе, все блоки по 512 байт соответствуют.
А вот контрольные суммы Дизассемблер воспринял не как константы, а как команды, но думаю это логично.. так как адреса в программе вычисляются динамически, хотя на первый байт КС он метку сделал, а ведь этот адрес сначала засылается в стек, потом идут вычисления, потом из стека извлекается в регистровую пару и только потом идет чтения по адресу в регистровой паре...
Так что пока полет нормальный, будем дальше в ручную "парсить" и анализировать...
Но кодер который писал я его ...(дальше следует не переводимый народный фольклор)...
Вызываем подпрограмму, сразу по jmp скачем на другой адрес черт знает где, там делаем 3 команды и опять по jmp прыгаем туда откуда делали первый прыжок и продолжаем....
Если возникнут вопросы буду тут спрашивать, надеюсь на ваши подсказки...
Дошел до подсчета контрольных сумм, и нашел адрес где они хранятся, посчитал в редакторе, все блоки по 512 байт соответствуют.
А вот контрольные суммы Дизассемблер воспринял не как константы, а как команды, но думаю это логично.. так как адреса в программе вычисляются динамически, хотя на первый байт КС он метку сделал, а ведь этот адрес сначала засылается в стек, потом идут вычисления, потом из стека извлекается в регистровую пару и только потом идет чтения по адресу в регистровой паре...
Так что пока полет нормальный, будем дальше в ручную "парсить" и анализировать...
Но кодер который писал я его ...(дальше следует не переводимый народный фольклор)...
Вызываем подпрограмму, сразу по jmp скачем на другой адрес черт знает где, там делаем 3 команды и опять по jmp прыгаем туда откуда делали первый прыжок и продолжаем....
Если возникнут вопросы буду тут спрашивать, надеюсь на ваши подсказки...
Ищу SRAM 16кб х 4бит DIP-24 например 7C166-15(20) и подобные.