普通操作码和具有 MSB 集的操作码有什么区别?

发布于 2024-11-26 07:56:23 字数 299 浏览 4 评论 0原文

普通操作码和设置 MSB(最高有效位)的操作码有什么区别?

示例:

0036  5E000001           [4] return     1   2
003A  1E008000           [5] return     0   1

第一个操作码 (0x5E/1011110) 已设置其 MSB,而第二个操作码 (0x1E/0011110) 尚未设置。

编辑:将“字节”更正为“位”,呃。

What's the difference between normal opcodes and opcodes with their MSB (Most Significant Bit) set?

Example:

0036  5E000001           [4] return     1   2
003A  1E008000           [5] return     0   1

The first opcode (0x5E/1011110) has its MSB set and the second opcode (0x1E/0011110) hasn't.

Edit: Corrected 'byte' to 'bit', duh.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

尸血腥色 2024-12-03 07:56:23

经过一番谷歌搜索后,我找到了 Lua 源代码的标题(lopcodes.h) 更好地解释指令格式。

看起来将操作码读取为字节是错误的,它应该读取为 6 位:

All instructions have an opcode in the first 6 bits.
Instructions can have the following fields:
`A' : 8 bits
`B' : 9 bits
`C' : 9 bits
`Bx' : 18 bits (`B' and `C' together)
`sBx' : signed Bx

After some googling, I found a header of the Lua source (lopcodes.h) explaining the instruction format a bit better.

It looks like it's wrong to read the opcode as a byte, it should be read as 6 bits:

All instructions have an opcode in the first 6 bits.
Instructions can have the following fields:
`A' : 8 bits
`B' : 9 bits
`C' : 9 bits
`Bx' : 18 bits (`B' and `C' together)
`sBx' : signed Bx
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文