按指令字长度分类

指令字长:整个指令的长度,与机器字长没有固定关系。通常把指令字长 = 机器字长的指令称为单字长指令,同理还有半字长指令和双字长指令。

在一个指令系统(指令集:ARM,x86)中,若所有指令的长度都相等,则称为定长指令字结构。定长指令的执行速度快,控制简单。同样与之对应的有变长指令字结构。

由于主存一般是按字节编址的,所以指令字长多为字节的整数倍。

按操作码长度分类

定长操作码:指令中系统中所有指令的操作码长度都相同。

可变长操作码:指令系统中各指令的操作码长度可变。

扩展操作码的设计(考点)

定长指令字结构+可变长操作码,不同地址数的指令使用不同长度的操作码。

在设计扩展操作码指令格式时,必须注意以下两点:

  • 不允许短码是长码的前缀,即短操作码不能与长操作码的前面部分的代码相同。——比如哈夫曼编码

  • 各指令的操作码一定不能重复。

通常情况下,对使用频率较高的指令,分配较短的操作码,对使用频率较低的指令,分配较长的操作码,从而尽可能减少指令译码和分析的时间。

按指令操作类型分类

一、数据传送类

  • LOAD——把存储器中的数据放到寄存器

  • STORE——把寄存器中的数据放到存储器

二、运算类

1、算术逻辑操作

  • 算术:加、减、乘、除、加1、减1、求补、浮点运算、十进制运算

  • 逻辑:与、或、非、异或、位操作、位测试、位清除、位求反

2、移位操作

算术移位、逻辑移位、循环移位(带进位和不带进位)

三、程序控制类——转移操作

  • 无条件转移:JMP

  • 条件转移

  • 调用CALL和返回RETURN

  • 陷阱(Trap)与陷阱指令

四、输入输出类:进行CPU和I/O设备之间的数据传输

CPU寄存器与IO端口之间的数据传送(端口即IO接口中的寄存器)

按操作数地址码数目分类

1、零地址指令

  • 不需要操作数,如空操作、停机、关中断等指令

  • 堆栈计算机,两个操作数隐含存放在栈顶和次栈顶,计算结果压会栈顶。——如数据结构中“后缀表达式”的运算。

2、一地址指令

  • 只需要单操作数,加1、减1、取反、求补等

    指令含义:OP(A1)→A1

  • 需要两个操作数,但其中一个操作数隐含在某个寄存器(如隐含在ACC)

    指令含义:(ACC)OP(A1)→ACC —— 将ACC中的内容和A1中的内容做OP操作得到的结果放回ACC。

    完成一条指令需要2次访存:取指令和访问A1,放回ACC不用访存,ACC是寄存器。

3、二地址指令

常用与需要两个操作数的算术运算、逻辑运算相关指令。

指令含义:(A1)OP(A2)→A1——将地址为A1和A2的内容执行OP操作,结果放回A1

访存4次:取指令→读A1→读A2→写A1

4、三地址指令

常用与需要两个操作数的算术运算、逻辑运算相关指令。

指令含义:(A1)OP(A2)→A3——将地址为A1和A2的内容执行OP操作,结果放回A3

访存4次:取指令→读A1→读A2→写A3

5、四地址指令

指令含义:(A1)OP(A2)→A3,A4 =下一条将要执行指令的地址。

正常情况:取指令之后PC++,指向下一条指令。

四地址指令:执行指令后,将PC的值修改为A4所指地址。(注意是A4的地址不是A4的内容)

访存4次:取指令→读A1→读A2→写A3

地址寻址范围:

若指令总长度不变,则地址码数量越多,地址码位数越少,直接寻址能力越差。

pushpop指令的操作数必须是字操作数_指令格式相关推荐

  1. pushpop指令的操作数必须是字操作数_PLC的指令,电气人必须了解的基础内容

    指令语句表编程语言是所有PLC都具有的最基本的编程语言.而指令语句表程序是由一条一条的指令堆砌而成的.因此,我们有必要对指令进行进一步的说明和解读. 1.指令格式 PLC的指令语句表程序和微机汇编语言 ...

  2. pushpop指令的操作数必须是字操作数_MCS-51单片机指令系统(1)

    指令系统概述 指令是计算机用于控制各种功能部件完成的某一特定动作的指示和命令.一台计算机能识别和执行的指令集合即为其指令系统.指令系统是一套控制计算机执行操作的编码,通常称为机器语言.机器语言是计算机 ...

  3. 8086指令系统 操作数地址,双操作数,单操作数,无操作数指令。一,传送类指令;二,二、算数运算类指令

    双操作数指令:OPR DEST,SRC 单操作数指令:OPR DEST 无操作数指令:OPR 按指令功能划分为六大类: 1传送类指令 2算术运算类指令 3位操作类指令 4串操作类指令 5程序转移类指令 ...

  4. mov 指令用c语言写,汇编语言MOV指令:将源操作数复制到目的操作数

    MOV 指令将源操作数复制到目的操作数.作为数据传送(data transfer)指令,它几乎用在所有程序中.在它的基本格式中,第一个操作数是目的操作数,第二个操作数是源操作数: MOV destin ...

  5. 假设指令字长为16位,操作数的地址码为6位,指令有零地址、一地址、二地址三种格式......

    假设指令字长为16位,操作数的地址码为6位,指令有零地址.一地址.二地址三种格式.  (1)设操作码固定,若零地址指令有M种,一地址指令有N种,则二地址指令最多有几种?  (2)采用扩展操作码技术,二 ...

  6. c语言12之编程设计一个简单的计算器程序,要求根据用户从键盘输入的表达式:操作数1 运算符op 操作数2 计算表达式的值,指定的运算符为加减乘除。

    题目: 设计一个简单的计算器程序,要求根据用户从键盘输入的表达式: 操作数1 运算符op 操作数2 计算表达式的值,指定的运算符为加减乘除. 源代码: #include<stdio.h> ...

  7. 我的世界服务器修改右边浮空字,我们是大自然的搬运工 指令方块刷出浮空字教程...

    大家好.今天教大家如何刷出一个浮空的文字.现在1.8的冒险地图里都是,有些玩家就再问是怎么做的(包括CBL的Soft大神).我知道Soft发过一贴,但是他不肯交出滤器,没有了滤器,那就很复杂了.做大型 ...

  8. python井字棋_用Python做一个井字棋小游戏

    井字棋是一个经典的小游戏,在九宫格上玩家轮流画OXO,当每列或每行或是两个对角成一线时便是获胜. 今天就用Python编写一个井字棋小游戏,与电脑对战. 程序执行画面如下图所示: 程序提供了两种人工智 ...

  9. 全字库说文解字字体_整理了10款免费商用中文字体,超好用

    文章来源:logo设计视觉(ID:logoshijue) 字体不能随便用!大家应该经常有听到字体侵权索赔上几十上百万事吧!作为小小的设计师遇上了就倒霉啦!所以,我们要有足够版权意识,没事囤点免费可商用 ...

最新文章

  1. Callable和Future
  2. 【SSM框架系列】Spring - JdbcTemplate声明式事务
  3. 在SharePoint 2010系统中安装RBS FILESTREAM Provider
  4. E-SKILL网络工程师考试认证必备
  5. 企业数字化转型与SAP云平台
  6. 重磅!云+X 案例征集正式启动啦!
  7. ubuntu服务器上提示 To run a command as administrator (user “root“), use “sudo <command>“. See “ 解决方案
  8. matlab butter 低通,matlab butter 用法
  9. ImportError: No module named ‘numpy‘的解决办法
  10. linux邮件报警命令,linux 邮件报警,监控内存cup
  11. S32K144(12)FTM
  12. 高德地图API开发应用-----地图显示+定位+marker
  13. 机器健康监测的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  14. *1-4 OJ 605 格雷码
  15. 【IT职场】阿里巴巴之马云神话
  16. POJ 3069 Saruman's Army(萨鲁曼军)
  17. 用VBOX打造一台高配安卓手机(windows)
  18. 二 、C语言程序的基本语句和基本结构
  19. 穷爸爸与富爸爸读后感(3)
  20. matlab中simulink和flightgear联合仿真

热门文章

  1. 2022-2028年中国农副产品行业市场供需规模及未来前景分析报告
  2. 2022-2028年中国导热硅胶行业市场研究及前瞻分析报告
  3. MYSQL局域网访问设置
  4. BiLSTM-CRF学习笔记(原理和理解) 维特比
  5. LeetCode简单题之作为子字符串出现在单词中的字符串数目
  6. 智能驾驶计算平台算力技术
  7. 模拟Servlet本质
  8. 2021年大数据基础(五):​​​​​​​​​​​​​​​​​​​​​分布式技术
  9. MySQL数据库+命令大全+常用操作
  10. [C] [二分] C语言实现快速排序