如何编写一个具有以下要求的非常简单的指令集?

问题描述 投票:0回答:1

我对编码很新。我试图理解如何编写指令集,这很简单。要求是这些基础:读,写,加,减,启用循环/条件运算。我试图在网上找到示例代码,但没有任何成功。编程语言必须是机器代码还是c?

cpu-architecture instruction-set
1个回答
2
投票

ISA是一种编程语言。程序是机器代码。

ISA是一组规则,用于在运行每个可能的指令时,机器的架构状态发生了什么。例如二进制0101 xxyy可能是一个2操作数add x,y指令,其中xx是一个2位目标寄存器编号,yy是源寄存器编号。如果你有一个标志/条件代码寄存器,ISA将包括如何设置标志的规则。

你不用其他编程语言编写ISA。

您可以设计实现ISA的CPU硬件(例如,我认为是verilog或VHDL)。您甚至可以模拟运行用新ISA编写的机器代码程序的设计。

您还可以为该ISA编写解释仿真器,例如在C中,它使用C变量和内存数组对机器的架构状态进行建模。该程序将读取机器代码和解码指令。通常,您首先设计ISA,然后为其实现模拟器。


另一个有用的工具是汇编程序,它将文本转换为ISA的机器代码。指令和文本寄存器名称的文本助记符仅存在于asm源中。

通常ISA也会对此进行标准化,因此可以讨论机器代码,但是作为ISA的一部分,根本不需要使用汇编语言。您可以将其留给ISA的用户来为您的ISA组成寄存器名称和助记符以及asm源语法。

© www.soinside.com 2019 - 2024. All rights reserved.