# 5.1.5指令摘要

> 译者： [https://sicp.comp.nus.edu.sg/chapters/100](https://sicp.comp.nus.edu.sg/chapters/100)

我们的寄存器机器语言的控制器指令具有以下形式之一，其中每个![%5Ctextit%7Binput%7D_i](img/1ae4c21fedef677426f2899f89169d74.jpg)均为`reg(` ![%5Ctextit%7Bregister-name%7D](img/c2d0b9b093f6a7aa4d32b06f88b8b756.jpg) `)`或`constant(` ![%5Ctextit%7Bconstant-value%7D](img/4d29776b1c81aa49f67f6ca1231c53d1.jpg) `)`。

这些说明在 [5.1.1](96) ：`assign(![%5Ctextit%7Bregister-name%7D](img/c2d0b9b093f6a7aa4d32b06f88b8b756.jpg), reg(![%5Ctextit%7Bregister-name%7D](img/c2d0b9b093f6a7aa4d32b06f88b8b756.jpg))) assign(![%5Ctextit%7Bregister-name%7D](img/c2d0b9b093f6a7aa4d32b06f88b8b756.jpg), constant(![%5Ctextit%7Bconstant-value%7D](img/4d29776b1c81aa49f67f6ca1231c53d1.jpg))) assign(![%5Ctextit%7Bregister-name%7D](img/c2d0b9b093f6a7aa4d32b06f88b8b756.jpg), list(op(![%5Ctextit%7Boperation-name%7D](img/f7808203a4e7a6f4be7fce9f3e324e4f.jpg)), ![%5Ctextit%7Binput%7D_%7B1%7D](img/6a86889a4d59b0e5d424c22ae0c2d708.jpg), ![%5Cldots](img/9f57fa7487fb5cc87b777f74773ffb74.jpg), ![%5Ctextit%7Binput%7D_%7Bn%7D](img/7b1efd4db5a9f266cff4b29fde65e7af.jpg))) perform(list(op(![%5Ctextit%7Boperation-name%7D](img/f7808203a4e7a6f4be7fce9f3e324e4f.jpg)), ![%5Ctextit%7Binput%7D_%7B1%7D](img/6a86889a4d59b0e5d424c22ae0c2d708.jpg), ![%5Cldots](img/9f57fa7487fb5cc87b777f74773ffb74.jpg), ![%5Ctextit%7Binput%7D_%7Bn%7D](img/7b1efd4db5a9f266cff4b29fde65e7af.jpg))) test(list(op(![%5Ctextit%7Boperation-name%7D](img/f7808203a4e7a6f4be7fce9f3e324e4f.jpg)), ![%5Ctextit%7Binput%7D_%7B1%7D](img/6a86889a4d59b0e5d424c22ae0c2d708.jpg), ![%5Cldots](img/9f57fa7487fb5cc87b777f74773ffb74.jpg), ![%5Ctextit%7Binput%7D_%7Bn%7D](img/7b1efd4db5a9f266cff4b29fde65e7af.jpg))) branch(label(![%5Ctextit%7Blabel-name%7D](img/1c8d403b6184cd906c67a647c0120c57.jpg))) go_to(label(![%5Ctextit%7Blabel-name%7D](img/1c8d403b6184cd906c67a647c0120c57.jpg)))`部分中介绍

[5.1.3节](98) ：`assign(![%5Ctextit%7Bregister-name%7D](img/c2d0b9b093f6a7aa4d32b06f88b8b756.jpg), label(![%5Ctextit%7Blabel-name%7D](img/1c8d403b6184cd906c67a647c0120c57.jpg))) go_to(reg(![%5Ctextit%7Bregister-name%7D](img/c2d0b9b093f6a7aa4d32b06f88b8b756.jpg)))`中介绍了使用寄存器保存标签的方法。

[5.1.4](99) ：`save(![%5Ctextit%7Bregister-name%7D](img/c2d0b9b093f6a7aa4d32b06f88b8b756.jpg)) restore(![%5Ctextit%7Bregister-name%7D](img/c2d0b9b093f6a7aa4d32b06f88b8b756.jpg))`部分介绍了使用堆栈的说明。

到目前为止，我们看到的唯一一种常数值是数字，但是稍后我们将使用字符串，符号和列表。 例如，`constant("abc")`是字符串`"abc"`，`constant(list(a, b, c))`是列表`list(a, b, c)`，而`constant(null)`是空列表。