PDA

Просмотр полной версии : Дизассемблерный листинг ПЗУ Микро-80



demetrius2003
19.04.2014, 10:50
Дизассемблировал и откомментировал ПЗУ Микро-80. Держите, может кому будет полезно.

esl
19.04.2014, 14:27
возник вопрос, даже два
зачем ida64 а не просто ida? (вроде как надо для дизасма 64битных екзешников)
и второе
вы специально не используете Offset ?

у вас


ROM:F82D 31 FF F7 lxi sp, 0F7FFh ; STACKINI
ROM:F830 21 48 FE lxi h, 0FE48h ; aMikro80Prompt
ROM:F833 CD D4 F8 call OUTSTR2 ; Вывод строки на экран
ROM:F836 CD 5A F8 call READDIR ; Ждём ввода директивы
ROM:F839 21 29 F8 lxi h, 0F829h ; INIT2 - кладём на стек чтобы вернуться


если на переменных нажать 'O'


ROM:F82D 31 FF F7 lxi sp, STACKINI ; STACKINI
ROM:F830 21 48 FE lxi h, aMikro80Prompt ; aMikro80Prompt
ROM:F833 CD D4 F8 call OUTSTR2 ; Вывод строки на экран
ROM:F836 CD 5A F8 call READDIR ; Ждём ввода директивы
ROM:F839 21 29 F8 lxi h, INIT2 ; INIT2 - кладём на стек чтобы вернуться


это так задумано ?



ROM:FE0E 4D DIRTABLE: .db 4Dh ; M
ROM:FE0F E3 FB .dw 0FBE3h
ROM:FE11 43 .db 43h ; C
ROM:FE12 87 FB .dw 0FB87h
ROM:FE14 44 .db 44h ; D
ROM:FE15 6A FB .dw 0FB6Ah
ROM:FE17 42 .db 42h ; B


привращается в


ROM:FE0E 4D DIRTABLE: .db 'M' ; DATA XREF: INIT3+4o
ROM:FE0F E3 FB .dw M_ ; Директива M
ROM:FE0F ; Просмотр или изменение содержимого ячейки (ячеек) памяти
ROM:FE11 43 .db 'C'
ROM:FE12 87 FB .dw C_ ; Директива C
ROM:FE12 ; Сравнение содержимого двух областей памяти
ROM:FE14 44 .db 'D'
ROM:FE15 6A FB .dw D_ ; Директива D
ROM:FE15 ; Просмотр содержимого области памяти в шестнадцатиричном виде
ROM:FE15 ;
ROM:FE17 42 .db 'B'
ROM:FE18 53 FA .dw B_ ; Директива B
ROM:FE18 ; Задание адреса останова при отладке


или даже в


ROM:FE0E 4D E3 FB DIRTABLE: cmdtab <'M', M_> ; DATA XREF: INIT3+4o
ROM:FE0E ; Директива M
ROM:FE0E ; Просмотр или изменение содержимого ячейки (ячеек) памяти
ROM:FE11 43 87 FB cmdtab <'C', C_> ; Директива C
ROM:FE11 ; Сравнение содержимого двух областей памяти
ROM:FE14 44 6A FB cmdtab <'D', D_> ; Директива D
ROM:FE14 ; Просмотр содержимого области памяти в шестнадцатиричном виде
ROM:FE14 ;
ROM:FE17 42 53 FA cmdtab <'B', B_> ; Директива B
ROM:FE17 ; Задание адреса останова при отладке

demetrius2003
19.04.2014, 16:39
Нуёмаё! Отвечу кратко. Это всё от того, что я балда. Неуч, но неуч полный неуёмной энергии и всепоглощающего оптимизма вперемешку с энтузиазмом. Неумею, а делаю. Ну вот поставил я себе Иду, а в запуске два экзешника - 32 и 64 бит. Но поскольку у меня Виндовз 64 бита этот вариант и был запущен. Чуть позже я понял, какую фигню совершил. Когда на работе не смог свой файл открыть. Ида та же, а варианта 64 бита там нет. Но поезд уже ушёл и ничего переделывать я не стал. Если кто знает, как конвертнуть обратно в простую базу, а не 64 бита, буду признателен! По поводу кнопочки "О" - тут я вообще аж прослезился. Я то думаю, чего енто она такая глупая. Слово есть, указывает на вполне определённое место, место это меткой помечено, а слово в метку не превращается! Вот и фигачил я имена меток в комментарии. И в дизассемблере Суры также - половина FACCUM в виде 0F938h! Ну теперь то я все переменные кнопкой "О" попередавлю!

P.S.: Исправил файлик с учётом вышесказанного. Надо же! Стало намного читабельнее! Плюс кое-что автоматически прояснилось! Исправленный файл - в первом посте.