Важная информация

User Tag List

Страница 4 из 28 ПерваяПервая 12345678 ... ПоследняяПоследняя
Показано с 31 по 40 из 276

Тема: Практическое программирование в среде RT-11 на ассемблере.

  1. #31
    Guru Аватар для form
    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,823
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    281
    Поблагодарили
    227 сообщений
    Mentioned
    29 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Здесь ничего библиотечного не вызывается, потому и так можно.
    В данном случае да, просто иной раз потом программа дорабатывается и долго ищется глюк - проще сразу универсально делать

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Да и к значению из @#50 надо вроде прибавить 2.
    Да, надо.
    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

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

  3. #32
    Guru Аватар для form
    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,823
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    281
    Поблагодарили
    227 сообщений
    Mentioned
    29 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Вот такая маленькая фича на заметку. Привычная конструкция разборок с битом C:
    Код:
            TST     (PC)+           ;ОЧИСТКА C
    100$:   SEC                     ;УСТАНОВКА C
            RETURN                  ;ВЫХОД
    А это вариант конструкции при которой (например из-за нехватки регистров) на вершине стека делаются некие вычисления которые в случае успеха применяются, а в случае ошибки нужно извлекать перед выходом:
    Код:
            ADD     (SP)+,VAR       ;ПРИМЕНЕНИЕ РЕЗУЛЬТАТА
            TST     (PC)+           ;ОЧИСТКА C
    100$:   COM     (SP)+           ;УСТАНОВКА C
            RETURN
    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. #33
    R.I.P. Аватар для hobot
    Регистрация
    30.08.2011
    Адрес
    Зеленоград
    Сообщений
    7,161
    Спасибо Благодарностей отдано 
    2,979
    Спасибо Благодарностей получено 
    370
    Поблагодарили
    309 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от form Посмотреть сообщение
    TST (PC)+ ;ОЧИСТКА C
    Извини я не совсем понимаю как сравнение с 0 = очистке ты 0 туда не пишешь ты просто сравниваешь
    и после этого даже ветвления никакого нет (
    разве очистка это не три строки минимум?
    1.сравнение
    2.beq куда то
    3. CLR - очистка непосредственно ???
    Архив программ для УК-НЦ, ДВК и БК.

    Ищу игру "СТРАНА МОНСТРОВ" [monstr.sav] для ДВК.

  5. #34
    Junior
    Регистрация
    28.11.2016
    Адрес
    г. Санкт-Петербург
    Сообщений
    9
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от hobot Посмотреть сообщение
    Извини я не совсем понимаю
    Там нечего особенно понимать. (РС)+ это 27-я адресация, в общем случае автоинкрементная, но для счётчика команд имеющая особое название непосредственная. При ней проц тестирует (то есть устанавливает флаги N и Z, а V и С всегда сбрасывает) слово непосредственно за командой, увеличивая заданный регистр - в данном случае счётчик команд. Программистская фишка здесь в том, что тестируемое слово является операндом для операции по адресу .=100$-2 (там лежит TST #261, которая всегда сбрасывает С), но операцией по адресу .=100$, которая всегда устанавливает С. Точно так же, кстати, она могла бы устанавливать и V, если бы там было SEV. И точно так же она могла бы устанавливать Z, если бы там было SEZ. И 4-й раз точно так же она могла бы устанавливать N, если бы там было SEN. Но в RT11 принято передавать флаг ошибки в С, а приведённые две строчки - это классика жанра.
    Всего доброго.
    Евгений.

  6. #35
    Guru
    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    13,560
    Спасибо Благодарностей отдано 
    1,223
    Спасибо Благодарностей получено 
    1,754
    Поблагодарили
    683 сообщений
    Mentioned
    67 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Я не понял смысла этого - зачем после очистки C его опять устанавливать?

  7. #36
    Junior
    Регистрация
    28.11.2016
    Адрес
    г. Санкт-Петербург
    Сообщений
    9
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от MM Посмотреть сообщение
    Однако, некотрые сомнения имеются в достоверности материала
    Управлявшая система не понравилась? Ну так сколько лет уже прошло! Нынче она давно уже не управляющая... Да и кто из нас застрахован от очепяток?!
    Всего доброго.
    Евгений.

  8. #37
    Guru
    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,208
    Спасибо Благодарностей отдано 
    346
    Спасибо Благодарностей получено 
    607
    Поблагодарили
    399 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Я не понял смысла этого - зачем после очистки C его опять устанавливать?
    А он не устанавливается. Получается команда TST #261. Т.е. если произошла ошибка, то переходим на метку 100$, и исполняем SEC и RETURN. А если ошибок нет, то исполняем TST #261 и RETURN.

  9. #38
    Guru
    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    13,560
    Спасибо Благодарностей отдано 
    1,223
    Спасибо Благодарностей получено 
    1,754
    Поблагодарили
    683 сообщений
    Mentioned
    67 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    А он не устанавливается. Получается команда TST #261. Т.е. если произошла ошибка, то переходим на метку 100$, и исполняем SEC и RETURN. А если ошибок нет, то исполняем TST #261 и RETURN.
    Ааа) PC же перескакивает команду SEC автоинкрементом)
    Ну, PDP-шники, вы извращенцы) А такие методы адресации этому лишь способствуют)

  10. #39
    Member
    Регистрация
    10.06.2016
    Адрес
    г. Киев, Украина
    Сообщений
    87
    Спасибо Благодарностей отдано 
    30
    Спасибо Благодарностей получено 
    9
    Поблагодарили
    9 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Ну, PDP-шники, вы извращенцы) А такие методы адресации этому лишь способствуют)
    А думанье в командах "пропустить, если" (условные команды позволяют только пропустить следующую) и "отложенный переход" (следующая команда после команды перехода выполняется до перехода) привычно?

  11. #40
    Guru
    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    13,560
    Спасибо Благодарностей отдано 
    1,223
    Спасибо Благодарностей получено 
    1,754
    Поблагодарили
    683 сообщений
    Mentioned
    67 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от kolk Посмотреть сообщение
    "отложенный переход" (следующая команда после команды перехода выполняется до перехода) привычно?
    Вот этого я не встречал. В каком это ассемблере?

Страница 4 из 28 ПерваяПервая 12345678 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Арифметические процедуры на ассемблере
    от spensor в разделе Программирование
    Ответов: 27
    Последнее: 13.05.2017, 20:56
  2. Пишем на ассемблере под эмулятором
    от GM BIT в разделе Для начинающих
    Ответов: 76
    Последнее: 15.07.2016, 20:04
  3. try-catch на ассемблере z80
    от siril в разделе Программирование
    Ответов: 22
    Последнее: 30.10.2012, 21:17
  4. Продам книгу- AMIGA: программирование на ассемблере
    от Doctor Max в разделе Барахолка (архив)
    Ответов: 11
    Последнее: 01.03.2012, 00:35
  5. Подпрограмма на ассемблере в памяти?
    от jimled в разделе Программирование
    Ответов: 1
    Последнее: 29.11.2009, 06:46

Ваши права

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