Дизассемблер Yozh

Советский компьютер Радио-86РК (1986) и его клоны

Moderator: Shaos

Damir
Fanat
Posts: 88
Joined: 21 Feb 2017 06:54
Location: Казань

Re: Дизассемблер Yozh

Post by Damir »

Попрактиковался немного в ассемблере PDP11asm85, использовал свой текст, набранный в ассемблере RK86.ru , не сразу но получилось скомпилировать. Этот ассемблер не принимает такое выражение MVI A, 08 , пока не исправил его на MVI A, 08h .
Перекомпилировал YOZH для Специалиста , получилось сразу и вот, теперь и на Специалисте работает :
YosHSp_dizassm.jpg
You do not have the required permissions to view the files attached to this post.
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Дизассемблер Yozh

Post by Shaos »

круто :mrgreen:
Я тут за главного - если что шлите мыло на me собака shaos точка net
Damir
Fanat
Posts: 88
Joined: 21 Feb 2017 06:54
Location: Казань

Re: Дизассемблер Yozh

Post by Damir »

Задам здесь вопрос про ассемблер PDP11asm85, у него в самом хвосте добавляется строка :

make_radio86rk_rom "yozh.rkr"

т.е. он добавляет в БИН файл коды, превращающие его в RKR магнитофонный файл.
если в асме ОРГ 0000 - то все нормально, файл правильный

но если стоит например ORG 3800h , те не с нуля, то RKR файл делается все равно с 0000h , добавляя с 0000 по 3800 коды 00
и длина файла увеличивается на 15К

почему он так делает ?
User avatar
shiny
Maniac
Posts: 324
Joined: 14 Oct 2023 06:59

Re: Дизассемблер Yozh

Post by shiny »

а нет ли бинаря со всеми опкодами для теста дизассемблера?
Mixa64
Doomed
Posts: 481
Joined: 25 Aug 2009 07:02
Location: Москва

Re: Дизассемблер Yozh

Post by Mixa64 »

shiny wrote:а нет ли бинаря со всеми опкодами для теста дизассемблера?
/dev/urandom попросите такой бинарь сделать :)
Достаточной длины. Или несколько разных. Там будет больше, чем просто все опкоды.
Дизасм должен без замечаний отрабатывать любой ввод, иначе он не может называться инструментом.
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Дизассемблер Yozh

Post by Shaos »

shiny wrote:а нет ли бинаря со всеми опкодами для теста дизассемблера?
Так вот жеж
vital72 wrote:также я добавил файл i8080.bin.rk для проверки дизассемблирования всех инструкций, включая инструкции 8085, он загружается по адресу 1000H.
чтобы его дизассемблировать надо в HL загрузить 1000H, в DE 1163H
Я этот блоб совмещённый с дизассемблером выкладываю каждый раз в архиве Yozh - например тут и тут (в последнем случае я приложил его 2 раза - один раз с дизассемблером 8085 yozh0005-i8085.rkr и другой - только с определением 8080 инструкций yozh0005-i8080.rkr)
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Дизассемблер Yozh

Post by Shaos »

Damir wrote:Задам здесь вопрос про ассемблер PDP11asm85, у него в самом хвосте добавляется строка :

make_radio86rk_rom "yozh.rkr"

т.е. он добавляет в БИН файл коды, превращающие его в RKR магнитофонный файл.
если в асме ОРГ 0000 - то все нормально, файл правильный

но если стоит например ORG 3800h , те не с нуля, то RKR файл делается все равно с 0000h , добавляя с 0000 по 3800 коды 00
и длина файла увеличивается на 15К

почему он так делает ?
Поглядел исходник - да, там нужно задавать аргументы, если начало не с нуля - start и опционально stop (если второй не задавать, то он его посчитает сам - также как если совсем без аргументов писать):

Code: Select all

  if(p.ifToken("make_radio86rk_rom"))
  {
        p.needToken(ttString2);
        Parser::TokenText fileName;
        strcpy(fileName, p.loadedText);
        size_t start = 0, stop = out.writePtr;
        if(p.ifToken(","))
        {
            start = ullong2size_t(readConst3());
            if(p.ifToken(",")) stop = ullong2size_t(readConst3());
        }
        if(step2)
        {
            if(stop<=start || stop>sizeof(out.writeBuf)) p.syntaxError();
            size_t length = stop - start;
            char error_buf[256];
            if(!make_radio86rk_rom(fileName, start, out.writeBuf+start, length, error_buf, sizeof(error_buf)))
                p.syntaxError(error_buf);
            lstWriter.writeFile(fileName);
        }
        return true;
  }
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
shiny
Maniac
Posts: 324
Joined: 14 Oct 2023 06:59

Re: Дизассемблер Yozh

Post by shiny »

Mixa64 wrote:/dev/urandom попросите такой бинарь сделать :)
Достаточной длины. Или несколько разных. Там будет больше, чем просто все опкоды.
Дизасм должен без замечаний отрабатывать любой ввод, иначе он не может называться инструментом.
и как это я сразу не догадался?
You do not have the required permissions to view the files attached to this post.
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Дизассемблер Yozh

Post by Shaos »

а как проверить, что там всё ок надекодилось? 8)
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
shiny
Maniac
Posts: 324
Joined: 14 Oct 2023 06:59

Re: Дизассемблер Yozh

Post by shiny »

Shaos wrote:а как проверить, что там всё ок надекодилось? 8)
Там это где?
скормил бинарь онлайн-дизассемблеру, который упоминался в разделе. Визуально код норм, но последние 5 байт неверны. Dasmx 1.40 обработал корректно, сравнил с исходником Telemark Assembler.
Других способов я не знаю.
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Дизассемблер Yozh

Post by Shaos »

там - это в случайно нагенерённой последовательности
если есть другие эталонные дизасмы, то это хорошо
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
shiny
Maniac
Posts: 324
Joined: 14 Oct 2023 06:59

Re: Дизассемблер Yozh

Post by shiny »

Shaos wrote:там - это в случайно нагенерённой последовательности
если есть другие эталонные дизасмы, то это хорошо
Вооот) Поэтому и спросил набор опкодов - хватит для начальной отладки.
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Дизассемблер Yozh

Post by Shaos »

shiny wrote:
Shaos wrote:там - это в случайно нагенерённой последовательности
если есть другие эталонные дизасмы, то это хорошо
Вооот) Поэтому и спросил набор опкодов - хватит для начальной отладки.
А он тут пролетааал :lol:
см. выше:
viewtopic.php?p=172617#p172617
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
vital72
Senior
Posts: 181
Joined: 17 Jun 2014 04:29
Location: 93.80.157.217

Re: Дизассемблер Yozh

Post by vital72 »

shiny wrote: скормил бинарь онлайн-дизассемблеру, который упоминался в разделе. Визуально код норм, но последние 5 байт неверны. Dasmx 1.40 обработал корректно, сравнил с исходником Telemark Assembler.
Других способов я не знаю.
а какой онлайн-дизассемблер упоминался? я, вроде, свой не упоминал, если речь о нём и в нём всё нормально.
https://radio-86rk.ru
кто я такой, чтобы спорить с самим собой
User avatar
shiny
Maniac
Posts: 324
Joined: 14 Oct 2023 06:59

Re: Дизассемблер Yozh

Post by shiny »

vital72 wrote:
shiny wrote: скормил бинарь онлайн-дизассемблеру, который упоминался в разделе. Визуально код норм, но последние 5 байт неверны. Dasmx 1.40 обработал корректно, сравнил с исходником Telemark Assembler.
Других способов я не знаю.
а какой онлайн-дизассемблер упоминался? я, вроде, свой не упоминал, если речь о нём и в нём всё нормально.
https://86rk.ru/disassm/

меня это смутило
You do not have the required permissions to view the files attached to this post.