游民星空 > 资讯中心 > 正文

技术宅惊世之作 《我的世界(Minecraft)》如何打造计算机

2014-08-28 12:24:16 来源:人人网 作者:季文瀚 编辑:暗影猫 浏览:loading

暂定指令表(下表暂时作废,已经制定出新表,与下表出入较大):

  由于CU还没做完,指令机器码可能还有较大变动,所以是暂定表,这一部分也不多介绍。其中有一些指令是我特殊设计出来为了节约代码,所以助记符不一定规范(有些缩写就是在瞎编)。

游民星空

部分指令说明(此处说明与最新设计的版本出入较大):

1. 数据传送指令:MOV,PUSH,POP,RIA

  MOV指令支持除了MAR,MDR,PC和栈区之外的寄存器之间的数据传送;

  PUSH和POP指令为压栈和弹栈,原地址和目标地址均为寄存器,当栈满时PUSH则无效,原栈区数据不变,以溢出中断处理;

  RIA指令可实现单字节的立即数写入寄存器,设计该指令的目的是为了使寄存器赋初值等操作更灵活,节约指令周期。

2. 数据读写指令:LDB,SDB,LDW,SDW,LIB,SIB

  LDB,SDB,LDW,SDW均为对数据储存器的读写操作,读操作均由储存器传输至ACC,写操作均由ACC至储存器;

  LIB,SIB均为对程序储存器的读写操作,读操作均由储存器传输至ACC,写操作均由ACC至储存器;

  这6种操作均支持4种寻址方式。

3.算术运算指令:ADD,SUB,MUL,DIV,INC,DEC

ADD,SUB,MUL,DIV均为取操作数于Y寄存器,然后与ACC进行算术运算,结果存于ACC。当寻址方式为寄存器寻址时,指令格式为

游民星空

  即该格式指令支持目标寄存器,结果由ACC存至目标寄存器;

  INC和DEC指令只支持寄存器直接寻址。

4.逻辑运算指令:ASH,LSH,AND,ORL,XRL,NOTASH和LSH指令只支持寄存器内数据移位操作,移位数值为立即数,取值范围-15到+15;

  AND,OR,XOR指令和算术运算指令同格式;

  NOT,LSH指令为单操作数指令。

  控制转移类指令参考流水线架构。

  关于寻址位数。因为储存器很小,我在16bit的双字节指令里正好塞下了5位的基本操作码,2位的寻址方式和9位的储存器寻址。9位寻址对应512个程序储存器单元共1kb,也正好对应了512个数据储存器单元512byte,所有可用空间都填满了。所以不能再扩充内存,也用不到像8086一样的造过于复杂的段式内存管理,那样的MMU会给系统造成很大的延迟。

更多相关资讯请关注:我的世界专区

上一页 11 12 13 14 15 16 17 18 19 下一页
友情提示:支持键盘左右键“← →”翻页
人喜欢
游民星空APP
随时掌握游戏情报
code
休闲娱乐
综合热点资讯
单机游戏下载
好物推荐
游民星空联运游戏
技术宅惊世之作 《我的世界》如何打造计算机https://imgs.gamersky.com/upimg/2014/201408281220432943.jpg