我需要一段微程序控制器的二进制指令,要标出每一条指令的微址、下址、CI3~0、SCC3~0、MEW、I2~0、I8~6、I5~3、B口、A口、SST、SSH、DC2、DC1,这段指令的作用如下:把一个通用寄存器的内容与一个内存单元ADR中的内容相加,结果保存到另外一个通用寄存器中。未指明的寄存器或内存单元可任选,要求在dos窗口用g指令调用后能正确地运行,只运行一遍且运行完后能正确返回在
时间: 2023-07-10 07:20:37 浏览: 425
以下是一段微程序控制器的二进制指令,用于将一个通用寄存器的内容与一个内存单元ADR中的内容相加,结果保存到另外一个通用寄存器中。这段指令的起始地址为 100H,最后一条指令为 RET,使得程序在运行完后能正确返回到调用它的程序。
指令 | 操作功能 | 微址 | 下址 | CI3~0 | SCC3~0 | MRW | I2~0 | I8~6 | I5~3 | B口 | A口 | SST | SSH | Sci | DC2 | DC1
-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-
LDA | ADR→DR | 01H | 00H | 0000 | 0001 | 001 | 000 | 000 | 000 | 0101 | 0101 | 000 | 000 | 000 | 000 | 000
ADD | DR+R→DR | 02H | 00H | 0000 | 0010 | 001 | 000 | 000 | 000 | 0101 | 1010 | 000 | 000 | 000 | 000 | 000
STA | DR→ADR | 03H | 00H | 0000 | 0011 | 001 | 000 | 000 | 000 | 0101 | 0101 | 000 | 000 | 000 | 000 | 000
RET | 返回子程序 | 04H | 00H | 0000 | 0100 | 000 | 000 | 000 | 000 | 0000 | 0000 | 000 | 000 | 000 | 000 | 000
其中,指令的含义为:
- LDA:从内存单元 ADR 中读取数据,存储到通用寄存器 DR 中。
- ADD:将通用寄存器 DR 中的数据与另一个通用寄存器 R 中的数据相加,结果存储到通用寄存器 DR 中。
- STA:将通用寄存器 DR 中的数据存储到内存单元 ADR 中。
- RET:返回子程序。
注意,这里的微地址、下地址、控制字等具体数值需要根据具体的微程序控制器来确定。另外,未指明的寄存器和内存单元可以任选,只需要在指令中使用正确的寄存器和内存单元地址即可。在 DOS 窗口中使用 `g` 命令调用后,程序会按顺序执行每一条指令,最终将结果保存到指定的通用寄存器和内存单元中,然后返回到调用它的程序。由于没有死循环,程序只会运行一遍。
阅读全文