|
nedoPC.orgElectronics hobbyists community established in 2002 |
|
Author |
Message |
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22770 Location: Silicon Valley
|
не - там же быстрый подскок к нужному слову - шаг ровно 4 байта (т.е. 4-буквенные слова не имеют между собой пробела) - если делать аля бейсик, то придётся перебором искать, а это долго
|
08 Feb 2024 01:06 |
|
|
b2m
Devil
Joined: 26 May 2003 06:57 Posts: 871
|
Ну хорошо, отсортировать мнемоники по длине, сделать 4 (или 3, если не отделять условия) отдельные таблицы. Всё равно номер мнемоники задан произвольно, а так будет 4 диапазона.
_________________Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
|
08 Feb 2024 01:23 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22770 Location: Silicon Valley
|
Это придётся 3 разных алгоритма кодить на вытаскивание слова - с одним алгоритмом оно наверное меньше будет... Кстати 4-й букве не надо 5 бит т.к. таких букв только 9! | | | | Code: 4th letter: X -> 02,12,0A,1A,D9,ED L -> F9,E3,E9,CD,10 H -> C5,D5,E5,F5 I -> 28,38 D -> 22,2A V -> CB G -> EB E -> 18 B -> 08
| | | | |
плюс 10-й вариант - нет четвёртой буквы (пробел) т.е. эту букву можно закодить 4 битами вместо 5 (но потребуется специальная функция, которая будет эту букву печатать), а в оставшихся 24-5*3-4=5 битах надо попробовать закодировать объяснялки...
|
08 Feb 2024 01:57 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22770 Location: Silicon Valley
|
Ну у них названия разные - если добавлять код, который будет по месту коверкать мнемонику, то код раздуется...
|
08 Feb 2024 02:34 |
|
|
Alikberov
Maniac
Joined: 14 Oct 2019 18:10 Posts: 328 Location: Tashkent
|
Кстати, у меня мнемоники хранились в трёх байтах - 24 бита достаточно для 4-х символов по 5 бит в регистрах A/H/L. На четыре символа по 5 бит - 20 бит и ещё 4 бита на флаги опций мнемоники.
|
08 Feb 2024 03:04 |
|
|
Damir
Fanat
Joined: 21 Feb 2017 06:54 Posts: 79 Location: Казань
|
Ого, сколько написали. Почитал про ваши планы и сразу вспомнил как я упаковывал слова для экономии байтов. Так как 3 символьных мнемоник больше всех : | | | | Quote: 3 = 46 шт. NOP, HLT, ADD, ADC, ANA, ADI, ACI, ANI, CPI, CMP, CNZ, CNC, CPO, CPE, INR, INX, DAD, DCX, DCR, MOV, MVI, ORA, OUT, JNZ, JMP, JNC, JPO, JPE, LXI, LDA, ORI, POP, RLC, RNZ, RST, RET, RNC, RPO, RPE, STA, SUB, SBB, SUI, SBI, XRA, XRI,
2 = 15 шт. EI, CM, CZ, CC, DI, CP, IN, JZ, JC, JP, JM, RZ, RC, RP, RM,
4 = 9 шт. LDAX, LHLD, PUSH, PCHL, STAX, SHLD, SPHL, XTHL, XCHG | | | | |
про них и напишу. все используемые буквы в старших 4 битах имеют только 2 значения 4Х и 5Х, то можно вычесть из кода каждого символа 40 , а младшие 3 полубайты уложить в 2 байта, а единицы получаемые при вычитании прибавить в 3 старших бита соответственно каждому символу. Пример: команда MOV, коды символов 4D 4F 56 - получаем 2D F6 - и програмно дешифрируем обратно 2 символьные таким же образом упаковывал по 2 слова в 1 байт, а ещё один байт с единицами в старшей тетраде по такому же принципу, 4 символьные в 2 байта + 1 байт с единицами в старшей тетраде. то есть получалось экономить по 1 байту на каждое слово. Всего 62 байта .
|
08 Feb 2024 03:16 |
|
|
vital72
Senior
Joined: 17 Jun 2014 04:29 Posts: 138 Location: 93.80.157.217
|
поморщил черепушку, удалось сократить размер кода до 1109 байт. на этом наши полномочия всё.
_________________https://radio-86rk.ruкто я такой, чтобы спорить с самим собой
|
08 Feb 2024 05:53 |
|
|
vital72
Senior
Joined: 17 Jun 2014 04:29 Posts: 138 Location: 93.80.157.217
|
удалось ещё немного скинуть, теперь код весит 1084 байт
_________________https://radio-86rk.ruкто я такой, чтобы спорить с самим собой
|
08 Feb 2024 09:08 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22770 Location: Silicon Valley
|
Ну силён
|
08 Feb 2024 09:54 |
|
|
vital72
Senior
Joined: 17 Jun 2014 04:29 Posts: 138 Location: 93.80.157.217
|
если убрать пробелы после запятой в операндах, то можно ещё 12 байт скинуть
_________________https://radio-86rk.ruкто я такой, чтобы спорить с самим собой
|
08 Feb 2024 11:36 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22770 Location: Silicon Valley
|
Ещё 48 байт где-то найти и будет килобайт
|
08 Feb 2024 11:50 |
|
|
vital72
Senior
Joined: 17 Jun 2014 04:29 Posts: 138 Location: 93.80.157.217
|
1042 байта
_________________https://radio-86rk.ruкто я такой, чтобы спорить с самим собой
|
08 Feb 2024 12:01 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22770 Location: Silicon Valley
|
Ух ты
|
08 Feb 2024 12:16 |
|
|
vital72
Senior
Joined: 17 Jun 2014 04:29 Posts: 138 Location: 93.80.157.217
|
подсократил там, поменял сям -- удалось добиться 1031 байта. но чтобы прога работала необходимо выполнить одно условие -- строка disassm_reg8_8085 не должна пересекать границу 256 байт.
прикольно... это ровно на 200 байт короче первоначального варианта
_________________https://radio-86rk.ruкто я такой, чтобы спорить с самим собой
|
08 Feb 2024 13:03 |
|
|
Damir
Fanat
Joined: 21 Feb 2017 06:54 Posts: 79 Location: Казань
|
Надо бы ещё сделать, что бы можно было компилировать на RK86.ru у меня что то не получается, ругается на макросы и много другого. Или может bin файл выложите?
Может обьявить конкурс на программу Дизассемблер для Радио 86 РК - программистов здесь много, будет чем заняться, что пообсуждать ?
я тоже буду учавствовать.
|
08 Feb 2024 13:20 |
|
|
Who is online |
Users browsing this forum: vital72 and 0 guests |
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot post attachments in this forum
|
|