Каково поведение STA (0: 1) в MIX? - PullRequest
0 голосов
/ 21 марта 2020

В MIX STA хранит содержимое регистра A в заданной ячейке памяти.

Я не вижу, как поведение вокруг знака рассматривается в TAOCP. Как MIX ведет себя в следующем примере:

Местоположение 2000 содержит: + 5 4 6 2 1

Регистр A содержит: - 7 8 1 3 2

Что делает STA 2000 (0: 1) делать?

Считается ли это тем, что мы берем значения 3 2 из регистра A и помещаем их в поле 0: 1 ячейки памяти 2000? Если так, есть ли неявное преобразование любого незнакового значения в +? Или значение 0 в спецификации поля означает «взять знак регистра A и любые оставшиеся байты и поместить эти значения в местоположение»?

Интерпретация 1: 2000 -> + 2 4 6 2 1

Интерпретация 2: 2000 -> - 2 4 6 2 1

Или есть третий вариант?

1 Ответ

1 голос
/ 21 марта 2020

Так что, да, в определении STA, поле F просто напугано.

Чтение Раздела 1.3.1, Операции хранения (стр. 130 моего тома 1, Третье издание) Нахожу:

В операции store поле F имеет значение, противоположное операции load : количество байтов в поле берется из правой части регистра и сдвигается влево при необходимости для вставки в соответствующее поле СОДЕРЖАНИЯ (M). Знак не изменяется, если он не является частью поля. [мой акцент]

Он дает различные примеры, где:

  Location 2000 contains: | - | 1 | 2 | 3 | 4 | 5 |
  Register A    contains: | + | 6 | 7 | 8 | 9 | 0 |
  STA 2000(0:1) gives:    | + | 0 | 2 | 3 | 4 | 5 |

которая является вашей интерпретацией 2 .

Кажется, что поле F относится к полю в слове destination и:

  • если F равно (0:0):

    • знак источника сохраняется в знаке назначения,
    • остальная часть пункта назначения не изменяется.
  • , если F равно (0:n) (n in 1..5):

    • знак источника хранится в знаке адресата,
    • n справа байты источника хранятся в байтах (1:n) адресата,
    • остальная часть пункта назначения не изменяется.
  • , если F равно (m:n) (m в 1..5, n в m..5):
    • n-m+1 правая байты источника хранятся в байтах * 1 080 * пункта назначения,
    • остальная часть пункта назначения (включая знак) не изменилась.

[Это давно последний даже рассматривал MIX ... Признаюсь, я запомнил это как слишком странное, чтобы быть полезным. Я не могу сказать, что передумал!]

...