User Tag List

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

Тема: Программирование на УКНЦ как?

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

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

    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,807
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    149
    Поблагодарили
    80 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от form Посмотреть сообщение
    К тому, чтобы лучше понимать программы и не городить идиотизм вроде

    Код:
    ERROR:  SEC
            RETURN
    OK:     CLC
            RETURN
    Чем советские (да и не только) программы частенько страдают :)
    Это не идиотизм, поскольку получаемый результат соответствует ожидаемому.

    ...

    Например,
    Код:
    MTPS 0
    вместо
    Код:
    MTPS #0
    - это гораздо хуже. ( А я именно так и отличился недавно - у половины MTPS забыл решётки к числам добавить и очень потом удивлялся странному поведению программы :)

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

  3. #2

    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,850
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    289
    Поблагодарили
    233 сообщений
    Mentioned
    30 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    у половины MTPS забыл решётки к числам добавить и очень потом удивлялся странному поведению программы
    Ну это просто ошибка - всякое бывает

    ---------- Post added at 02:47 ---------- Previous post was at 02:43 ----------

    Цитата Сообщение от Titus Посмотреть сообщение
    Лично я не ставлю себе задачи писать на УКНЦ, чтобы это потом работало на PDP11 каких-нить. На ДВК - куда не шло. Но как справочная таблица отдельных команд, которые работаю по-разному на разных процессорах - полезно.
    Так для того и есть таблица. Команды собственно даны так, чтобы место заполнить. Кроме ASH и явно косячных JMP на регистр, все остальные компилятор и так посчитает ошибкой

    Куда важнее таблица признаков, особенно если будешь разбирать чьи-то программы. Далеко не всегда очевидно почему автор так уверен, что вот в этом месте скажем бит C сброшен, а в этом установлен итд. Или к примеру встречал такую ошибку - при 32битном счетчике пытались оперировать командой INC вместо нужного ADD #1.
    PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
    Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
    PMI: KDJ11-BF, MSV11-JE
    VT220, CM7209

  4. #3

    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,807
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    149
    Поблагодарили
    80 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от form Посмотреть сообщение
    при 32битном счетчике пытались оперировать командой INC вместо нужного ADD #1.
    Поэтому, чтобы сэкономить одно слово в обработчике прерывания таймера RT-11 - в PSW его вектора установлен бит C (в чём легко можно убедиться, выполнив в KMON команду "E 102"):

    Код:
    .E 102
    000341
    .
    а сам обработчик выглядит так:

    Код:
    LKINT::
    	ADC	$TIME+2
    	ADC	$TIME
    	RTI

  5. #4

    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,850
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    289
    Поблагодарили
    233 сообщений
    Mentioned
    30 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Поэтому, чтобы сэкономить одно слово в обработчике прерывания таймера RT-11 - в PSW его вектора установлен бит C (в чём легко можно убедиться, выполнив в KMON команду "E 102"):

    Код:
    .E 102
    000341
    .
    а сам обработчик выглядит так:

    Код:
    LKINT::
    	ADC	$TIME+2
    	ADC	$TIME
    	RTI
    Это хорошо когда есть обработчик прерываний, а если это не обработчик прерываний - там все просто: один обработчик на кучу устройств и никаких проблем (всмысле тем же способом). Но далеко не всегда такие вещи используются в прерываниях

    И здесь опять таки таблица признаков помогает. Можно к примеру сравнить R1,#1, а можно и #1,R1 и мы можем сэкономить на чем-нибудь за счет этого
    Последний раз редактировалось form; 06.12.2011 в 00:04.
    PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
    Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
    PMI: KDJ11-BF, MSV11-JE
    VT220, CM7209

  6. #5

    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,250
    Спасибо Благодарностей отдано 
    362
    Спасибо Благодарностей получено 
    639
    Поблагодарили
    415 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от form Посмотреть сообщение
    И здесь опять таки таблица признаков помогает. Можно к примеру сравнить R1,#1, а можно и #1,R1 и мы можем сэкономить на чем-нибудь за счет этого
    Это из той же оперы?
    Код:
            CMP     R1,#1
            ADC     R2
            ADC     R3
    Только таблица здесь не поможет, надо знать как признаки формируются.

  7. #6

    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,850
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    289
    Поблагодарили
    233 сообщений
    Mentioned
    30 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Это из той же оперы?
    Код:
            CMP     R1,#1
            ADC     R2
            ADC     R3
    Только таблица здесь не поможет, надо знать как признаки формируются.
    Как формаруются знать в принципе надо, а таблица поможет понять будет ли вообще флаг меняться

    ---------- Post added at 03:12 ---------- Previous post was at 03:11 ----------

    Цитата Сообщение от Titus Посмотреть сообщение
    На PDP11 она одноперандная. R0 = R0 + C. А нужно R0 = R0 + R1 + C.
    А-а - вон ты про что.

    ADD L1,L2
    ADC H2
    ADD H1,H2

    - это всмысле как 32 бита сложить с 32 битами
    а как ты написал - думаю и так понятно
    PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
    Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
    PMI: KDJ11-BF, MSV11-JE
    VT220, CM7209

  8. #7

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,437
    Спасибо Благодарностей отдано 
    1,723
    Спасибо Благодарностей получено 
    2,268
    Поблагодарили
    892 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от form Посмотреть сообщение
    А-а - вон ты про что.

    ADD L1,L2
    ADC H2
    ADD H1,H2
    Нет, так получим лишь правильный результат, а не правильный флаг V.

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

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

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

Похожие темы

  1. Программирование на Эмуляторе. Возможно ли это?
    от Toxic в разделе Программирование
    Ответов: 10
    Последнее: 20.01.2008, 19:20
  2. Программирование Altera и JTAG
    от Mikka_A в разделе Несортированное железо
    Ответов: 7
    Последнее: 18.01.2008, 09:07
  3. Программирование и софтмейк на NES
    от Splinter в разделе Nintendo
    Ответов: 7
    Последнее: 30.06.2006, 04:31

Ваши права

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