User Tag List

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

Тема: Вопрос по ассемблеру Z80

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

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

    Регистрация
    23.10.2012
    Адрес
    г. Красноярск
    Сообщений
    206
    Спасибо Благодарностей отдано 
    47
    Спасибо Благодарностей получено 
    63
    Поблагодарили
    29 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от reddie Посмотреть сообщение
    В вышеприведенном примере - да. Но есть способ попроще, хотя с некоторыми ограничениями.
    Через переменную SEED Бейсика (RND- генератор). Командой Randomize NN (до 65535) заносим туда число, а в кодах забираем оттуда значение: LD RP, (23670), где RP - нужная регистровая пара, 23670/23671 - два байта числа.
    Ограничения, думаю, понятны: при запуске кодов через Randomize Usr значение сменится по возврату в Бейсик. Обычно удобней запускать командой вида LET X=USR NN, по возврату X будет равно значению рег. пары BC, то есть можно передавать и обратно из кодов в Бейсик.
    То бишь примерно так?

    10 INPUT x ;Вводим нужное двухбайтное число
    20 LET y=USR 30000 ;Указываем адрес старта подпрограммы ассемблер
    30 RANDOMIZE x ;Помещаем число по адресам 23670/23671
    40 RANDOMIZE y ;Вызываем подпрограмму ассемблера

    ? У меня сбрасывается бейсик. Мож я чего не так понял?
    На всякий случай ниже код ассемблера который я использую. Решил пока сделать вывод на экран


    ORG $7530
    LD A,2
    CALL 5633

    LD HL,(23670)
    LD DE,1
    SBC HL,DE

    LD B,H
    LD C,L
    CALL 11563
    CALL 11747
    RET

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

  3. #2

    Регистрация
    03.07.2021
    Адрес
    г. Кировск
    Сообщений
    922
    Спасибо Благодарностей отдано 
    87
    Спасибо Благодарностей получено 
    211
    Поблагодарили
    156 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Строки 20 и 30 поменять местами и убрать строку 40, она бессмысленна.
    То бишь сперва заносим число в SEED, а потом уже вызываем код.
    Возможны ещё баги в кодовом блоке, уже забыл, что делают те две процедуры.
    Последний раз редактировалось reddie; 23.07.2022 в 22:22.

    Этот пользователь поблагодарил reddie за это полезное сообщение:

    Zidane(23.07.2022)

  4. #3

    Регистрация
    03.07.2021
    Адрес
    г. Кировск
    Сообщений
    922
    Спасибо Благодарностей отдано 
    87
    Спасибо Благодарностей получено 
    211
    Поблагодарили
    156 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Zidane Посмотреть сообщение
    ORG $7530
    LD A,2
    CALL 5633

    LD HL,(23670)
    LD DE,1
    SBC HL,DE

    LD B,H
    LD C,L
    CALL 11563
    CALL 11747
    RET
    Глянул талмуд - это вывод числа из стека калькулятора. Но зачем так много лишних инструкций?

    LD A, 2
    CALL 5633
    LD BC, (23670)
    DEC BC ; уменьшение на 1, если оно надо
    CALL 11563
    JP 11747

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

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

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

Похожие темы

  1. Книга по ассемблеру Z80
    от Shwartz в разделе Пресса
    Ответов: 11
    Последнее: 06.07.2018, 14:29
  2. Книги по бейсику и Ассемблеру Z80
    от stepmotor в разделе Программирование
    Ответов: 3
    Последнее: 30.01.2018, 19:53
  3. вопрос по z80 stealh
    от scl^mc в разделе Эмуляторы
    Ответов: 11
    Последнее: 17.08.2007, 15:32
  4. ламерский вопрос о временных диаграммах шин Z80
    от boo_boo в разделе Несортированное железо
    Ответов: 3
    Последнее: 30.01.2006, 13:14

Ваши права

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