前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ISA指令集

ISA指令集

作者头像
linxinzhe
发布2018-04-10 14:41:04
1.6K0
发布2018-04-10 14:41:04
举报
文章被收录于专栏:林欣哲林欣哲

今天的内容来源于《计算机系统概论》的第4章,介绍的指令是作者根据x86指令简化设计的一个自称为LC-3(Little Computer-3 edition)的指令集。

ISA对于程序员来说是可编程的最底层的层次了,其本质就是一堆机器指令,如0001 001 010 0 00 011。

一、指令的结构

指令是计算机可执行的最小单位,格式由操作数和操作码组成。

以最简单的一个运算指令--取反操作,来看一个指令的格式。

bit[15:12]=0001表示NOT操作,bit[11:9]表示目标寄存器,用于存计算后的操作码,bit[8:6]表示来源寄存器,用于从来源寄存器取出操作数做运算。bit[5:0]设计者固定为11111并无实际意义。

NOT指令执行过程:从来源寄存器取出操作数,做NOT操作,并把结果存入目标寄存器

二、指令的执行

指令的具体执行过程是在CPU的控制单元的控制信号下,一步一步执行的。大多数计算机的指令执行都有这六步,取指令->译码->地址计算->取操作数->执行->存放结果,一次完整的执行叫一个指令周期。

每个步骤的执行通常至少要一个机器周期(时钟周期),涉及从内存读取比较慢可能需要好几个机器周期(时钟周期)。

  1. 取指令:根据PC(程序计数器)的地址,取得内存中该地址的指令。
  2. 译码:根据指令bit[15:12]决定后续的控制命令
  3. 地址计算:如果指令是存取内存的操作,这个步骤需要计算地址
  4. 取操作数:从指令的来源取操作数。
  5. 执行:做操作,比如:加减乘除的算术操作或者“与”“或”“非”的逻辑操作
  6. 存放结果:把计算结果放到目标处
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-10-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 林欣哲 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档