第四章 指令系统

本文介绍了计算机指令系统的组成,包括指令的基本格式、操作码和地址码字段。讲解了不同类型的指令,如零地址、一地址、二地址和三地址指令,并探讨了扩展操作码的概念。此外,还涵盖了指令的操作类型、寻址方式以及X86汇编指令的使用,包括数据传送、算术逻辑运算和控制流指令。同时,提到了过程调用、选择语句和循环语句的机器级表示,并对比了CISC和RISC架构的特点。
摘要由CSDN通过智能技术生成

指令格式

指令(机器指令)是指示计算机执行某种操作的命令
一台计算机的所有指令的集合构成该机的指令系统,也称指令集

指令的基本格式

指令 = 操作码字段 + 地址码字段

指令字长取决于操作码的长度、操作数地址码的长度和操作数地址的个数。与机器字长没有固定的关系

(单字长指令、半字长指令、双字长指令)
(定长指令字结构、变长指令字结构)
(指令字长一般都是字节的整数倍)
  1. 零地址指令: OP
    1)不需要操作数的指令:空操作指令、停机指令、关中断指令
    2)零地址的运算类指令仅用在堆栈计算机中

  2. 一地址指令:OP A1
    1)只有目的操作数的单操作数指令
    2)隐含约定目的地址的双操作数指令
    OP(A1) → A1

  3. 二地址指令:OP A1 A2
    (A1)OP(A2) → A1

  4. 三地址指令:OP A1 A2 A3(结果)
    (A1)OP(A2) → A3

  5. 四地址指令:OP A1 A2 A3(结果) A4(下址)
    (A1)OP(A2) → A3,A4 = 下一条将要执行指令的地址

扩展操作码指令格式

  • 不允许短码是长码的前缀,即短操作码不能与长操作码的前面部分的代码相同

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

指令的操作类型

在这里插入图片描述

指令的寻址方式

在这里插入图片描述

常见的数据寻址方式

程序的机器级代码表示

常用汇编指令介绍

在这里插入图片描述

在这里插入图片描述

// X86汇编指令

// 1. 数据传送指令
MOV				复制							    不能用于直接从内存复制到内存
PUSH			压栈
POP				出栈

// 2. 算术和逻辑运算指令
ADD/SUB			加/减							结果保存到第一个操作数
INC/DEC			自加1、自减1
IMUL			带符号整数乘法					操作数有两个和三个两种,第一个操作数必须为寄存器,结果保存在第一个操作数
IDIV			带符号整数除法					
AND/OR/XOR		与、或、异或						结果保存到第一个操作数
NOT				位翻转
NEG				取负
shl/shr			逻辑左移/逻辑右移					第一个操作数表示操作数,第二个操作数表示移位的位数

// 3. 控制流指令
JMP 
jcondition
CMP/TEST
CALL/RET

过程调用的机器级表示

选择语句的机器级表示

循环语句的机器级表示


CISC和RISC的基本概念

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值