当前位置: 首页 > web >正文

计算机指令分类和具体的表示的方式

1.关于计算机的指令系统

下面的这个就是我们的一个简单的计算机里面涉及到的指令:

m就是我们的存储器里面的地址,可以理解为memory这个意思,r可以理解为rom这样的单词的首字母,帮助我们去进行这个相关的指令的记忆,不要去死记硬背;L也是我们的内存里面的跳转到的地址

1)运算类指令:就是存储器里面的内容和寄存器里面的内容相加,这个结果存储到我们的寄存器里面去;

2)传送类指令:我们的数据是在存储器里面,怎么和这个寄存器里面的数据相加呢,这个时候就是需要进行load,也就是把我们的存储器里面的数据加载到寄存器里面进行相加的操作;

我们的结果存储到寄存器里面之后,需要重新转载到我们的存储器里面,这个就是store操作

3)转移类指令:就是我们的存储器里面需要执行的下一条的这个指令的具体地址;

image-20250516221257419

2.指令在计算机里面是如何表示的

上面的这个毕竟是帮助我们程序员进行理解的,实际上这个指令在我们的计算机里面还是0101这样的代码罢了;

下面的这个就是针对于一个指令进行的分析:

1)指令是两个字节,也就是16个bit位数,第一个字节的高四位表示的是操作码,就是我们需要对于这个指令进行那些操作,低四位就是寄存器的编号,就是哪一个寄存器参与下面的这个运算;

2)第二个字节就是我们的存储器里面的具体的地址,表示的就是我们的存储器里面的哪一个数据需要和我们的寄存器进行相关的运算;

3)在我们的这个里面,操作码是四种情况,对应的就是我们的这个文章里面的第一小节里面的四个指令,实际上因为这个是四位,所以实际上可以表示的操作码情况应该是2的四次方,也就是16哥可能得情况,但是我们只会使用其中4个,这个为我们的后续的扩展提供了一个切口;

4)同样的道理,这个寄存器的编号也是16个可能得结果,但是我们只给出了4个寄存器,方便后面进行这个相关的扩展;

5)右边的这个图片里面也是给出来了这个正确的指令的实例和错误的例子,帮助我们去进行指令执行的内容的相关的理解,通过对于这个指令进行翻译,首先确定这个需要进行什么运算,然后是这个寄存器是哪一个,存储器里面的运算的地址是哪一个,然后我们就可以根据实际的情况判断我们的这个运算是不是合法的了;

我们就可以根据实际的情况判断我们的这个运算是不是合法的了;

image-20250516222901394

http://www.xdnf.cn/news/6707.html

相关文章:

  • 【Win32 API】 lstrcmpA()
  • Java内存泄露生产环境排查过程,通透了
  • 计算机网络 : Socket编程
  • EXCEL在一列数据前统一添加负号
  • 6种方式来探究数据集的的方法worldquant
  • STM32外设AD-定时器触发 + DMA读取模板
  • RKNN开发环境搭建(ubuntu22.04)
  • 网络世界的“百变身份“:动态IP让连接更自由
  • 解锁DeepSeek潜能:Docker+Ollama打造本地大模型部署新范式
  • 【Python 操作 MySQL 数据库】
  • maven和npm区别是什么
  • 几种排序方式的C语言实现(冒泡、选择、插入、希尔等)
  • 大数据技术的主要方向及其应用详解
  • 【问题排查】easyexcel日志打印Empty row!
  • DeepSearch代表工作
  • 时钟产生的公共模块示例
  • Java 泛型与类型擦除:为什么解析对象时能保留泛型信息?
  • 随笔:hhhhh
  • Redisson 四大核心机制实现原理详解
  • 涂色不踩雷:如何优雅解决 LeetCode 栅栏涂色问题
  • Vue3项目使用ElDrawer后select方法不生效
  • 突围“百机大战”,云轴科技ZStack智塔获IDC中国AI大模型一体机推荐品牌
  • 第五章:Linux用户管理
  • 【无标题】威灏光电哲讯科技MES项目启动会圆满举行
  • leetcode 57. Insert Interval
  • Node.js 同步加载问题详解:原理、危害与优化策略
  • Spring Cloud动态配置刷新:@RefreshScope与@Component的协同机制解析
  • Gitee DevOps:中国企业数字化转型的加速引擎
  • UNiAPP地区选择
  • 解码国际数字影像产业园:成都高品质办公楼宇