装配操作码问题

0 assembly

如果我正在为8位计算机创建指令集,我是否可以使用2位操作码和一些带3位操作码的指令进行操作?当然,每个操作码的值都是不同的.

我有3个r类型的指令,其操作码为00,我有3个i类型的指令,操作码为01,11和10,然后我可以用op代码100进行指令吗?

Jim*_*hel 5

如果您希望您的操作码具有不同的长度,那么您必须确保没有较短的操作码是较长操作码的子串.也就是说,如果您有两位操作码01和一个三位操作码010,那么您的解码器将如何区分它?

我假设您正在尝试将操作码和操作数拟合为单个8位数量并将其视为记录.因此,例如,您可能具有01000111前两位是操作码的指令,接下来的三位是第一个操作数,后三位是第二个操作数.

如果你有两个操作码,01并且010,请问你的解码器这两种解释之间做出选择?

 01 000 111 - opcode 01, two three-bit arguments
 010 00 111 - opcode 010, a two-bit argument, and a three-bit argument
Run Code Online (Sandbox Code Playgroud)

如果您确实需要不同长度的操作码,则需要为较长的操作码保留前缀字符串.所以,你可以有两个位指令00,01以及10和所有长指令开始11.