User Tag List

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

Тема: Ассемблер PDP-11, попытки что то сделать по статье "Рессурсы УКНЦ/Глава1" Помогите !

Древовидный режим

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

    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    7,505
    Спасибо Благодарностей отдано 
    344
    Спасибо Благодарностей получено 
    713
    Поблагодарили
    595 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от electroscat Посмотреть сообщение
    на сколько я онимаю, это не просто ассемблер, а ассемблер серьезно расширенными возможностями
    У DEC два варианта ассемблера - PAL-11 (ОЧЕНЬ старые системы) и MACRO-11. Основное отличие - ассемблер MACRO-11 поддерживает макросы.

    А теперь нюанс. По крайне мере в оригинальной документации. Если искать описание именно на MACRO-11, можно налететь с хорошей вероятностью на книжку, где будет описание именно MACRO-11, а не системы команд PDP-11. То есть или вообще не будет описания системы команд или описание базового набора, причём не факт, что с нюансами.

    Более того, ВМ2 поддерживает несколько команд, которые специфичны для него - то есть MACRO-11 про них ни сном ни духом. Пусть они и работают в HALT режиме, но тем не менее.

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

    И ещё тонкость. Ассемблер - это программа. Она принимает на вход файл, написанный на ЯЗЫКЕ ассемблера и выдаёт на выходе НЕЧТО. Так вот - ЯЗЫК ассемблера - не эквивалентен системе команд. Даже в PAL-11 есть ДИРЕКТИВЫ компиляции - они тоже входя в ЯЗЫК, но не порождают машинных действия. А уж в MACRO-11 с его макросами - одна ТИПА КОМАНДА языка ассемблера может привести к сколь угодному количеству команды процессора. Или не привести. И вообще, за счёт макросов можно сделать подобие языка высокого уровня, типа:
    Код:
      ;
      ; Calculate memory size
      ;
      PROCEDURE CMEMSZ
      BEGIN
        LET PRGSIZ := PRGTOP - PRGBOT
        LET @#V.4 := #20$
    
        LET R0 := #-^D<2048>
        LET R1 := #0
    
        REPEAT
          LET R0 := R0 + #^D<2048>
          ADD #0, (R0)
          LET R1 := R1 + #1
        UNTIL MEM28K EQ R1
    
        LET R0 := R0 + #^D<2048>
    
      10$:
    
      M00612 =: .+2
        LET @#V.4 := #V.4+2
    
        GOTO 30$
    
      20$:
        LET TOP := #10$
        RTI
    
      30$:
    
        IF R1 LO #10 GOTO MEMERR			; Insufficient core
    
        LET PRGBOT := PRGTOP
        LET PRGTOP := R0
    
        LET	RELCNT := R0 - PRGSIZ
    
        LET R1     := #$LITTB
        WHILE #-1 NE (R1) DO
          LET (R1)+ := (R1)+ + RELCNT
        END
    
        LET R1 := PRGBOT
        LET R2 := PRGSIZ
    
        REPEAT
          LET -(R0) :B= -(R1)
          LET R2 := R2 - #1
        UNTIL RESULT IS EQ
    
        RETURN
      END CMEMSZ

    Эти 2 пользователя(ей) поблагодарили Hunta за это полезное сообщение:

    Aleks1985(03.07.2022), electroscat(03.07.2022)

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

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

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

Похожие темы

  1. Ответов: 206
    Последнее: 19.08.2020, 10:36
  2. Ответов: 15
    Последнее: 24.07.2014, 12:19
  3. Ответов: 1
    Последнее: 21.07.2014, 10:50
  4. Ответов: 5
    Последнее: 20.06.2005, 00:10

Ваши права

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