计算机 指令和程序

简化内存

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

更多的指令

减法指令SUB
跳转指令JUMP: 调回开头, 后4位代表内存地址的值, 覆盖"指令寄存器"里的值
特殊跳转JUMP_NEGATIVE: 在 ALU的" 负数标记"为真时, 进行JUMP
停止: 停止指令执行

在这里插入图片描述
如果没有"停止" , "STORE_A_13"之后,CPU会一直运行下去,处理后面的0,导致崩溃:
在这里插入图片描述
指令和数据都是存在同一个内存里面的, 都是二进制,没有区别.
HALT: 很重要, 可以区分 指令 和数据

JUMP

将 地址14 15的值变成1 1
在这里插入图片描述
内存从 地址0依次执行, 放入 14的值到A, 放入15 的值到B
然后 ADD A & B 放入A, 此时 A中为 2
接着执行地址3, 将A的值放入 地址13
下面执行 JUMP
在这里插入图片描述
在这里插入图片描述
执行完这一步后,再一次JUMP 2 , 于是进入无限循环
于是有了 JUMP NEGATIVE 条件跳转
还有 JUMP EQUAL (相等)
还有 JUMP GREATER (如果更大)
计算余数的代码: 11除5 …1
JUMP_NEG 5 为负数时执行跳转
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
8位 由 4位指令和4位内存地址组成, 也就是说 我们最多只能有 16条指令 或者 16个地址, 因此在这个内存中 JUMP17 是不可能的
那么可以使用32位或者34位来代表指令, 这个指令长度
当然也有采用 "可变指令长度"的策略, 如 HALF 指令,不要额外的地址, 就可以立即执行,但是遇到JUMP 就得知道位置.这样设计,指令可以是任意长度, 但是读取会变得复杂.
C4004 支持 46个指令
在这里插入图片描述
在这里插入图片描述
i7 的指令长度 1~15个字节

发布了48 篇原创文章 · 获赞 0 · 访问量 554

猜你喜欢

转载自blog.csdn.net/weixin_44286839/article/details/104781467