May. 6th, 2019

spamsink: (Default)
[personal profile] spamsink
3 мая: Компилирует оригинал, порождая объектный файл, который правильно воспринимается дизассемблером. В результате получается ассемблерный файл, похожий по размеру и общему содержанию на дизассемблированный оригинал, но с множеством мелких отличий: в первую очередь, разряды порядка у литеральных целых констант в большинстве случаев или отсутствуют, или неправильно сформированы; из-за этого в одном месте неправильно выбирается оптимизация константных выражений, и начинаются расхождения в адресах команд тоже.

Теперь предстоит долгая тонкая доводка.

6 мая: После очередных правок осталось два заметных отличия: в операторе case еще плохо различаются целые и enums, и в назначении временных индексных регистров есть ошибка на 1 туда-сюда. Встречаются они не так часто; и между дизассемблированным исходным кодом и рекомпилированным кодом есть всего 70 с небольшим расхождений (против сотен, если не тысяч, до сегодняшнего дня).
x86128: (Default)
[personal profile] x86128
Появился простой таймер



Такой вот "бородатый" код:
*
* HELLO with timer.
*
start   start   '1'
        xta     '0'
        atx     '77765'  , disable timer
        xta     =b'7'
        atx     '77767'  , set prescaler
        xta     =b'100000'   , set period 
        atx     '77766'  , PRD 
* ----
        xta     work
        asn     64+48
        atx     '77756'
        vjm     loop(2)
*
        xta     work
        asn     64+40
        atx     '77756'
        vjm     loop(2)
*
        xta     work
        asn     64+32
        atx     '77756'
        vjm     loop(2)
*
        xta     work
        asn     64+24
        atx     '77756'
        vjm     loop(2)
*
        xta     work
        asn     64+16
        atx     '77756'
        vjm     loop(2)
*
        xta     work
        asn     64+8
        atx     '77756'
        vjm     loop(2)
*
        xta     work
        asn     64
        atx     '77756'
        vjm     loop(2)
*
        xta     work
        asn     64-8
        atx     '77756'
        vjm     loop(2)
*
        xta     work
        asn     64-16
        atx     '77756'
        vjm     loop(2)
*
        xta     work
        asn     64-24
        atx     '77756'
        vjm     loop(2)
*
        xta     work
        asn     64-32
        atx     '77756'
        vjm     loop(2)
*
        xta     work
        asn     64-40
        atx     '77756'
        vjm     loop(2)
* ----
        uj      start
loop    xta     =b'1'
        atx     '77765'  , enable timer
loopi   xta     '77765'  , wait
        u1a     loopi
        uj      (2)
*-------------------------
align   адрес   start+'1777'            , данные с адреса 2000
work    конд    b'7317116034077'
        fin


Всё таки классно, что собирается он компилятором 1978 года, а работает сейчас в 2019 на платке размером с ладонь!

ИПМ МАКРО-БЕМШ ВЕР.06/78
АРАП ВАР.04/78
------------------------------------------------------------------
ВВД◇◇◇
ТРН◇◇◇
0-0
ПЕЧМАК
БТМАЛФ
ЗОНГП 270000
НАЗ   000001
КНЦ◇◇◇
МАКРОРЕДАКТОР ОТ  20.06.78
001134-КОЛИЧ ЯЧ ГС
                                           МАКРОМАШИНА ОТ 1.11.78

ИПМ МАКРО-БЕМШ ВЕР.06/78      SТАRТ    СТР 0001
ОШИБКИ   НПК  СВОБ ПЕРЕМ АДРЕС КОМАНДА    А ИСП N ГЕН N ИСХ МЕТКА  ОПЕРАЦИЯ ОПЕРАНД   КОММЕНТАРИЙ
                                                 0001  0001 *
                                                 0002  0002 * НЕLLО WIТН ТIМЕR.
                                                 0003  0003 *
                                                 0004  0004 SТАRТ  SТАRТ ’1’
         001             00001 00 010 0000       0005  0005        ХТА   ’0’
                               00 100 7765       0006  0006        АТХ   ’77765’  , DISАВLЕ ТIМЕR
                         00002 00 010 2001       0007  0007        ХТА   =В’7’
                               00 100 7767       0008  0008        АТХ   ’77767’  , SЕТ РRЕSСАLЕR
                         00003 00 010 2002       0009  0009        ХТА   =В’100000’   , РЕRIОD
                               00 100 7766       0010  0010        АТХ   ’77766’  , РRD
                        ‾00004                   0011  0011 * ----
                         00004 00 010 2000       0012  0012        ХТА   WОRК
                               00 036 0160       0013  0013        АSN   64+48
                         00005 00 100 7756       0014  0014        АТХ   ’77756’
                               02 31 00035       0015  0015        VJМ   LООР(2)
                        ‾00006                   0016  0016 *
                         00006 00 010 2000       0017  0017        ХТА   WОRК
                               00 036 0150       0018  0018        АSN   64+40
         002             00007 00 100 7756       0019  0019        АТХ   ’77756’
                               02 31 00035       0020  0020        VJМ   LООР(2)
                        ‾00010                   0021  0021 *
                         00010 00 010 2000       0022  0022        ХТА   WОRК
                               00 036 0140       0023  0023        АSN   64+32
                         00011 00 100 7756       0024  0024        АТХ   ’77756’
                               02 31 00035       0025  0025        VJМ   LООР(2)
                        ‾00012                   0026  0026 *
                         00012 00 010 2000       0027  0027        ХТА   WОRК
                               00 036 0130       0028  0028        АSN   64+24
                         00013 00 100 7756       0029  0029        АТХ   ’77756’
                               02 31 00035       0030  0030        VJМ   LООР(2)
                        ‾00014                   0031  0031 *
                         00014 00 010 2000       0032  0032        ХТА   WОRК
                               00 036 0120       0033  0033        АSN   64+16
         003             00015 00 100 7756       0034  0034        АТХ   ’77756’
                               02 31 00035       0035  0035        VJМ   LООР(2)
                        ‾00016                   0036  0036 *
                         00016 00 010 2000       0037  0037        ХТА   WОRК
                               00 036 0110       0038  0038        АSN   64+8
                         00017 00 100 7756       0039  0039        АТХ   ’77756’
                               02 31 00035       0040  0040        VJМ   LООР(2)
                        ‾00020                   0041  0041 *
                         00020 00 010 2000       0042  0042        ХТА   WОRК
                               00 036 0100       0043  0043        АSN   64
                         00021 00 100 7756       0044  0044        АТХ   ’77756’
                               02 31 00035       0045  0045        VJМ   LООР(2)
                        ‾00022                   0046  0046 *
                         00022 00 010 2000       0047  0047        ХТА   WОRК
                               00 036 0070       0048  0048        АSN   64-8
         004             00023 00 100 7756       0049  0049        АТХ   ’77756’
                               02 31 00035       0050  0050        VJМ   LООР(2)
                        ‾00024                   0051  0051 *
                         00024 00 010 2000       0052  0052        ХТА   WОRК
                               00 036 0060       0053  0053        АSN   64-16
                         00025 00 100 7756       0054  0054        АТХ   ’77756’
                               02 31 00035       0055  0055        VJМ   LООР(2)
                        ‾00026                   0056  0056 *
                         00026 00 010 2000       0057  0057        ХТА   WОRК
                               00 036 0050       0058  0058        АSN   64-24
                         00027 00 100 7756       0059  0059        АТХ   ’77756’
                               02 31 00035       0060  0060        VJМ   LООР(2)
                        ‾00030                   0061  0061 *
                         00030 00 010 2000       0062  0062        ХТА   WОRК
                               00 036 0040       0063  0063        АSN   64-32
ИПМ МАКРО-БЕМШ ВЕР.06/78      SТАRТ    СТР 0002
ОШИБКИ   НПК  СВОБ ПЕРЕМ АДРЕС КОМАНДА    А ИСП N ГЕН N ИСХ МЕТКА  ОПЕРАЦИЯ ОПЕРАНД   КОММЕНТАРИЙ
         005             00031 00 100 7756       0064  0064        АТХ   ’77756’
                               02 31 00035       0065  0065        VJМ   LООР(2)
                        ‾00032                   0066  0066 *
                         00032 00 010 2000       0067  0067        ХТА   WОRК
                               00 036 0030       0068  0068        АSN   64-40
                         00033 00 100 7756       0069  0069        АТХ   ’77756’
                               02 31 00035       0070  0070        VJМ   LООР(2)
                        ‾00034                   0071  0071 * ----
                         00034 00 30 00001       0072  0072        UJ    SТАRТ
                               00 22
                         00035 00 010 2003       0073  0073 LООР   ХТА   =В’1’
                               00 100 7765       0074  0074        АТХ   ’77765’  , ЕNАВLЕ ТIМЕR
                         00036 00 110 7765       0075  0075 LООРI  ХТА   ’77765’  , WАIТ
                               00 27 00036       0076  0076        U1А   LООРI
         006             00037 02 30 00000       0077  0077        UJ    (2)
                        _00037                   0078  0078 *-------------------------
                               00 22
                         00040                   0079  0079 АLIGN  АДРЕС SТАRТ+’1777’            , ДАННЫЕ С АДРЕСА 2000
                         02000  0007317116034077 0080  0080 WОRК   КОНД  В’7317116034077’
                         02000                   0081  0081        FIN
                         02001  0000000000000007
                         02002  0000000000100000
         172             02003  0000000000000001
SТАRТ    НАМ=00001   ДИАП ЗАГР=00001-05775  ДЛИНА МОДЛ=00005  ДЛИНА ПРОГ=02003 ВХОДН=00001 ВНЕШН=00000 ЧИСЛО МЕТОК=00006
***********
ЧИСЛО ОШИБОК=0000. МАКС СЕРЬЕЗН=0.
ЗАГР: 12.78
ЗОНГП=270000  СВ.ЗОНА = 270002  АМИН=00001 АМАКС=02003 АСВОБ=02004

 КОНЕЦ ЗАДАЧИ
 02201  00 074 0000	*74

Profile

Сообщество любителей БЭСМ-6

December 2025

S M T W T F S
 123456
78910111213
14151617181920
21222324252627
282930 31   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 16th, 2026 11:10 pm
Powered by Dreamwidth Studios