User Tag List

Показано с 1 по 10 из 531

Тема: ZX Like Pascal

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    26.11.2013
    Адрес
    г. Новосибирск
    Сообщений
    1,104
    Спасибо Благодарностей отдано 
    1,340
    Спасибо Благодарностей получено 
    323
    Поблагодарили
    152 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    По адресу $6257 стоит PUSH, и то что что он PUSHает уже не POPается.

    - - - Добавлено - - -

    Для ориентировки:
    Код:
            LD   HL,(7533H)                 ;6231   2A3375
            INC  HL                         ;6234   23
            LD   (7533H),HL                 ;6235   223375
            LD   A,4FH                      ;6238   3E4F
            LD   HL,7537H                   ;623A   213775
            CP   (HL)                       ;623D   BE
            JP   NZ,6244H                   ;623E   C24462
            JP   624DH                      ;6241   C34D62
    ; 6244 - jump/call references:
    ; JP from 623EH
            LD   A,4FH                      ;6244   3E4F
            LD   HL,7538H                   ;6246   213875
            CP   (HL)                       ;6249   BE
            JP   NZ,6254H                   ;624A   C25462
    ; 624D - jump/call references:
    ; JP from 6241H
            LD   HL,(7533H)                 ;624D   2A3375
            DEC  HL                         ;6250   2B
            LD   (7533H),HL                 ;6251   223375
    ; 6254 - jump/call references:
    ; JP from 624AH
            LD   HL,(7533H)                 ;6254   2A3375
            PUSH HL                         ;6257   E5   <--------***ТУТ!***---------
            LD   HL,0005H                   ;6258   210500
            LD   DE,001DH                   ;625B   111D00
            EX   DE,HL                      ;625E   EB
            AND  A                          ;625F   A7
            SBC  HL,DE                      ;6260   ED52
            JP   NC,626DH                   ;6262   D26D62
            POP  DE                         ;6265   D1
            ADD  HL,DE                      ;6266   19
            LD   HL,0018H,GET_CHAR          ;6267   211800
            LD   (7533H),HL                 ;626A   223375
    ; 626D - jump/call references:
    ; JP from 6262H
            LD   HL,(7533H)                 ;626D   2A3375
            LD   DE,0002H                   ;6270   110200
            EX   DE,HL                      ;6273   EB
            AND  A                          ;6274   A7
            SBC  HL,DE                      ;6275   ED52
            JP   Z,6283H                    ;6277   CA8362
            JP   C,6283H                    ;627A   DA8362
            LD   HL,0002H                   ;627D   210200
            LD   (7533H),HL                 ;6280   223375
    ; 6283 - jump/call references:
    ; JP from 6277H, 627AH
            LD   A,01H                      ;6283   3E01
            LD   (7517H),A                  ;6285   321775
            LD   (7518H),A                  ;6288   321875
            CALL 6F2AH                      ;628B   CD2A6F

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2

    Регистрация
    05.04.2015
    Адрес
    г. Майкоп
    Сообщений
    294
    Спасибо Благодарностей отдано 
    47
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Так вот оно что, я только количество PUSH и POP проверил, совпадало. Т.е., получается команды
    JP NC,626DH ;6262 D26D62
    POP DE ;6265 D1
    нужно поменять местами?

    - - - Добавлено - - -

    Чуть позже попробую.

    - - - Добавлено - - -

    Andrew771, нашли ошибку.
    Код, который нашёл Reobne соответствует участку в сгенерированном asm:
    Код:
    L16
    L17
          ld    hl,(_GGX)
          push  hl
          ld    hl,5
          ld    de,29
          ex    de,hl
          and   a
          sbc   hl,de
          jp    nc,L18
          pop   de
          add   hl,de
    L19
          ld    hl,24
          ld    (_GGX),hl
    и его исходный код на паскале:
    Код:
        if ggx+5>29 then
          ggx:=29-5;
    Я-то попробую попроще написать, но ошибка налицо.

    - - - Добавлено - - -

    Переделал на
    Код:
        if ggx>29-5 then
          ggx:=29-5;
    теперь генерирует
    Код:
    L16
    L17
          ld    hl,(_GGX)
          ld    de,29
          ex    de,hl
          and   a
          sbc   hl,de
          jp    nc,L18
          ld    de,5
          and   a
          sbc   hl,de
    L19
          ld    hl,24
          ld    (_GGX),hl
    что тоже неправильно, потому что надо сравнивать сразу с 24, а 5 вообще не к месту. В общем, ошибка при вычислении выражений в условии.

    Ещё раз переделал на
    Код:
        if ggx>24 then
          ggx:=24;
    Теперь, вроде, правильно сгенерировал код. Единственное, осталось непонятно, зачем загружать не в нужные регистры и затем обменивать их содержимое для сравнения.

    - - - Добавлено - - -

    Ещё есть пожелание программу завершать не "jp $", а просто "ret".

    - - - Добавлено - - -

    Нарушен порядок вычисления выражений. Написал if (ggx+5)>29 then ggx:=29-5; и тоже правильно сгенерировал код, загрузил переменную, добавил к ней 5 и сравнил с 29. Надо чтобы сначала вычислялись выражения, затем проводилось сравнение.

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. PASCAL + MACRO11 (УКНЦ-ДВК).
    от hobot в разделе ДВК, УКНЦ
    Ответов: 341
    Последнее: 15.01.2022, 17:30
  2. Turbo Pascal для msx/msx2
    от Оззя в разделе MSX
    Ответов: 4
    Последнее: 23.02.2020, 23:59
  3. в розыске дисковая версия Pascal.
    от goblinish в разделе Программирование
    Ответов: 18
    Последнее: 16.08.2011, 16:30
  4. Pascal
    от Andrew771 в разделе Программирование
    Ответов: 22
    Последнее: 24.05.2011, 21:20
  5. Скопировать/вставить из/в HiSoft Pascal в эмуляторе
    от kit в разделе Программирование
    Ответов: 1
    Последнее: 05.02.2010, 15:35

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •