Дизассемблер Yozh
Moderator: Shaos
-
- Senior
- Posts: 181
- Joined: 17 Jun 2014 04:29
- Location: 93.80.157.217
Re: Дизассемблер Yozh
если вдруг требования к точному наименованию инструкций нет, то у меня есть версия где 4-буквенные инструкции выводятся как 3-буквенные. 702 байта.
-
- Doomed
- Posts: 528
- Joined: 10 Aug 2022 07:27
- Location: Crimea
Re: Дизассемблер Yozh
Это уже спорт.) Хотя, и это понятно.
-
- Devil
- Posts: 908
- Joined: 26 May 2003 06:57
Re: Дизассемблер Yozh
Если вдруг кому без расширенных команд 8085 надо, то у меня есть версия в 678 байт:
Таблицы минимизировал как мог, правда код распух. Если ограничить некоторые таблицы в пределах 256 байт, наверное можно ещё сократить.
Таблицы минимизировал как мог, правда код распух. Если ограничить некоторые таблицы в пределах 256 байт, наверное можно ещё сократить.
Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
http://bashkiria-2m.narod.ru/
-
- Admin
- Posts: 24097
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Дизассемблер Yozh
Не - это уже переборvital72 wrote:если вдруг требования к точному наименованию инструкций нет, то у меня есть версия где 4-буквенные инструкции выводятся как 3-буквенные. 702 байта.

Но до кучи можно и прицепить сюда - пусть будет

Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Senior
- Posts: 181
- Joined: 17 Jun 2014 04:29
- Location: 93.80.157.217
Re: Дизассемблер Yozh
конкуренция -- это всегда круто.
я проверил, сколько будет весить моя версия только для 8080 -- получилось 702 байта, а я так надеялся
b2m, сделай под 8085, чисто из любопытства, сколько получится?
обновил код. обнаружил небольшой косяк в форматировании кода, "на скорость не влияет", компайлер, которым я сейчас пользуюсь, не умеет в перенос строк, приходится всё вытягивать в одну.
и смог ещё два байта сэкономить
.
я проверил, сколько будет весить моя версия только для 8080 -- получилось 702 байта, а я так надеялся

b2m, сделай под 8085, чисто из любопытства, сколько получится?
обновил код. обнаружил небольшой косяк в форматировании кода, "на скорость не влияет", компайлер, которым я сейчас пользуюсь, не умеет в перенос строк, приходится всё вытягивать в одну.
и смог ещё два байта сэкономить

You do not have the required permissions to view the files attached to this post.
Last edited by vital72 on 12 Feb 2024 09:35, edited 1 time in total.
-
- Fanat
- Posts: 88
- Joined: 21 Feb 2017 06:54
- Location: Казань
Re: Дизассемблер Yozh
Да, круто я завел программистов на Дизассемблер, здорово получилось сократить, хотя это не самое главное. Ещё должно быть удобство при пользовании.
я тоже вот попытался вспомнить, как писать на ассемблере (понял, что давно этого не делал) пока на длину кода не обращал внимания, все делал в лоб, но добавил постраничный вывод ( в размер экрана), при нажатии на "точку" вывод прекращается.
Если по определенному адресу не нулевое значение, то выводит строки как данные до первого кода "00", вот так примерно правда по сравнению с Виталием у меня получилось много, более 1,5 кб, но это ещё не оптимизировано и есть небольшие куски отладочные и временные, кот надо убрать.
я тоже вот попытался вспомнить, как писать на ассемблере (понял, что давно этого не делал) пока на длину кода не обращал внимания, все делал в лоб, но добавил постраничный вывод ( в размер экрана), при нажатии на "точку" вывод прекращается.
Если по определенному адресу не нулевое значение, то выводит строки как данные до первого кода "00", вот так примерно правда по сравнению с Виталием у меня получилось много, более 1,5 кб, но это ещё не оптимизировано и есть небольшие куски отладочные и временные, кот надо убрать.
You do not have the required permissions to view the files attached to this post.
-
- Doomed
- Posts: 355
- Joined: 14 Oct 2019 18:10
- Location: Tashkent
Re: Дизассемблер Yozh
Идеальный дизассемблер - сам процессор!
Бóльшая часть программных затрат уходит на декодирование битовых полей, которые на уровне кристалла являются просто перестановкой отдельных сигналов и не требуют вообще никакой логической обработки.
(Вспомним, хотя бы, тот самый графический экран ZX-Spectrum с причудливым чредованием полей, которые всегда доставляли программистам достаточно хлопот!)
Вся проблема в том, что инженеры ни в какой из имеющихся на данный момент (на сколько мне известно) архитектур не предусмотрели чудо инструкции для распаковки кода команды.
Типа, передаёшь в Aккумулятор код команды, а в регистрах получаешь всю информацию о команде:
Бóльшая часть программных затрат уходит на декодирование битовых полей, которые на уровне кристалла являются просто перестановкой отдельных сигналов и не требуют вообще никакой логической обработки.
(Вспомним, хотя бы, тот самый графический экран ZX-Spectrum с причудливым чредованием полей, которые всегда доставляли программистам достаточно хлопот!)
Вся проблема в том, что инженеры ни в какой из имеющихся на данный момент (на сколько мне известно) архитектур не предусмотрели чудо инструкции для распаковки кода команды.
Типа, передаёшь в Aккумулятор код команды, а в регистрах получаешь всю информацию о команде:
- C - размер инструкции / количество байтов (1…3 или 0, если ошибка)
- B - указатель памяти (0-BC; 1-DE; 2-HL; 3-SP; 4-PC)
- D - регистр-приёмник / счётчик
- E - регистр-источник
- A - код инструкции
- CF - регистр-счётчик (для DCR/DCX/INR/INX/LXI/MVI)
- PF - пара регистров (только для MOV)
- SF - операции контроля и ветвления
- ZF - операции АЛУ (ADD/ADI/ANA/ANI и т.д.)
-
- Admin
- Posts: 24097
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Дизассемблер Yozh
поглядел - да, тут уже пошла эзотерикаvital72 wrote:740 байт.
каждый байт даётся с большим трудом.
...
Вложения:
Комментарий к файлу: запускатель дизассма
disassm-launcher.rk.zip [202 байт]
Скачиваний: 7
Комментарий к файлу: исполняемый файл
disassm.v1.9.rk.zip [903 байт]
Скачиваний: 6
Комментарий к файлу: исходник
disassm.v1.9.asm.zip [3.5 КиБ]
Скачиваний: 6

пожалуй я возьму за основу Йожа версию 1.8 (766 байт)

P.S. вот этот кусок поди можно переписать без дадов?
Code: Select all
disassm_put_str:
push d
mov e, a
mvi d, 0
dad d
dad d
mov e, m
inx h
mov d, m
xchg
pop d
call $+6
call $+3
xra a
dad h
ral
dad h
ral
dad h
ral
dad h
ral
dad h
ral
ana a
rz
adi 40h
stax d
inx d
ret
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Doomed
- Posts: 528
- Joined: 10 Aug 2022 07:27
- Location: Crimea
Re: Дизассемблер Yozh
Давеча обнаружил в своём ассемблере что не работает rst. Полез и офигел. Ни каментов нормальных, ни логики... Пол дня потратил что бы в своей же писанине разобраться.( При том что там без особых трюков. И даже $-5 такого нет.) И пустые строки после jp.) Всё как учили в школе.)
-
- Admin
- Posts: 24097
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Дизассемблер Yozh
Почистил топик от лирических отступлений от темы 

Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Admin
- Posts: 24097
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Дизассемблер Yozh
Вот - обработал напильником, выкинув макросы, чтобы собиралось последним pdp11asm85 - теперь можно навешивать опциональные фенечкиShaos wrote: пожалуй я возьму за основу Йожа версию 1.8 (766 байт)![]()

Code: Select all
Archive: yozh0003.zip
Length Date Time Name
--------- ---------- ----- ----
16211 2024-02-13 00:03 yozh0003.asm
24 2024-02-07 22:53 yozh0003-mk
772 2024-02-13 00:03 yozh0003.bin
35126 2024-02-13 00:03 yozh.lst
782 2024-02-13 00:03 yozh.rkr
--------- -------
52915 5 files
Code: Select all
; TEST BEGIN
lxi h,0F8C7h
lxi d,0F8FFh
; TEST END

You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Doomed
- Posts: 528
- Joined: 10 Aug 2022 07:27
- Location: Crimea
Re: Дизассемблер Yozh
Ассемблер без макро - это порнография.
Шаос, старайся писать красиво (и к тебе потянутся люди)), потому что коряво все умеют.
Шаос, старайся писать красиво (и к тебе потянутся люди)), потому что коряво все умеют.
-
- Admin
- Posts: 24097
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Дизассемблер Yozh
Вот вариант с этим тестом - нужные адреса уже прописаны, надо просто загрузить с запуском:vital72 wrote:также я добавил файл i8080.bin.rk для проверки дизассемблирования всех инструкций, включая инструкции 8085, он загружается по адресу 1000H.
чтобы его дизассемблировать надо в HL загрузить 1000H, в DE 1163H
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Admin
- Posts: 24097
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Дизассемблер Yozh
Все вопросы по ассемблеру следует направлять к оригинальному автору - vinxruMondx wrote:Ассемблер без макро - это порнография.

Я могу всякую мелочь исправить/добавить, но фундаментально я его переписывать не буду

А в каком месте я некрасиво написал?Mondx wrote:Шаос, старайся писать красиво (и к тебе потянутся люди)), потому что коряво все умеют.

Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Doomed
- Posts: 528
- Joined: 10 Aug 2022 07:27
- Location: Crimea
Re: Дизассемблер Yozh
Я имею ввиду стиль. После ветвлений (jmp, ret) желательна пустая строка и т.п.Shaos wrote:А в каком месте я некрасиво написал?
Это и к высокоуровневым языкам относится. А в Си вообще безобразие. Постоянно думаю о Пайтоне. Ну почему ведь основатели Си к этому не пришли!