MIX 中 STA (0:1) 的行为是什么?

What is the behaviour of STA (0:1) in MIX?

在 MIX 中,STA 将 A 寄存器的内容存储在给定的内存位置。

我看不出 TAOCP 如何涵盖标志周围的行为。 MIX 在以下示例中的行为如何:

位置 2000 包含:+ 5 4 6 2 1

A 寄存器包含:- 7 8 1 3 2

STA 2000 (0:1) 有什么作用?

这个思路是不是把A寄存器的值3 2 放到内存位置2000的0:1域?如果是这样,是否存在任何非符号值到 + 的隐式转换?或者字段规范中的 0 是否表示 "take the sign of the A register, and any remaining bytes and put those values into the location"?

解释 1:2000 -> + 2 4 6 2 1

解释 2:2000 -> - 2 4 6 2 1

或者还有第三种选择?

所以,是的,在 STA 的定义中,F 字段很时髦。

阅读第 1.3.1 节,存储操作(我的第 1 卷第 130 页,第三版)我发现:

On a store operation the field F has the opposite significance from the load operation: The number of bytes in the field is taken from the right-hand portion of the register and shifted left if necessary to be inserted in the proper field of CONTENTS(M). The sign is not altered unless it is part of the field. [my emphasis]

它给出了各种示例,其中:

  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)1..5 中的 n):

    • 源的符号存储在目标的符号中,
    • 源的n右侧字节存储在目标的(1:n)字节中,
    • 其余目的地不变
  • 如果 F(m:n)m1..5nm..5):
    • 源的n-m+1右侧字节存储在目标的(m:n)字节中,
    • 目的地的其余部分(包括标志)不变。

[我已经很久没有考虑过 MIX...我承认我记得它太古怪以至于没有用。我不能说我改变了主意!]