作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在学习虚拟机,我偶然发现了这本维基百科的书,它真的很棒。然而,我在作者正在解释他如何转换指令的部分,例如:
loadi r0 #100
至
0x1064
我不知道它是如何工作的?有人可以向我解释一下吗,这是有问题的链接 http://en.wikibooks.org/wiki/Creating_a_Virtual_Machine/Register_VM_in_C
如果你向下滚动到指令代码,他会谈论它,但对我来说没有意义,有人可以像我5岁一样向我解释吗?
最佳答案
loadi r0 #100
指令成为16位指令。
命令loadi
将位11到15(左边的位)设置为1:
0001xxxxxxxxxxxx
r0
用于寄存器 0,并设置位 8 至 11。
00010000xxxxxxxx
值 100 放置在位 0 到 7 中。位 4 到 7 乘以 16,然后与位 0 到 3 中的值相加。因此 100 = 6 乘以 16(等于 96)+ 4。
0001_0000_0110_0100 (in binary, seperations for clarity)
1064 (in hexa)
来源:http://en.wikibooks.org/wiki/Creating_a_Virtual_Machine/Register_VM_in_C#Instruction_codes
关于c - 这个虚拟机如何将指令转换为十六进制值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24772038/
我是一名优秀的程序员,十分优秀!