计算机组成原理 -- 指令系统(三)
典型指令:
- 数据传送指令:主要包括取数指令、存数指令、传送指令、成组传送指令、字节交换指令、清寄存器指令、堆栈操作指令等。这类指令主要用来实现主存和寄存器间,或寄存器和寄存器之间的数据传送。
- 算术运算指令:包括二进制定点加、减、乘、除指令,浮点加、减、乘、除指令,求反、求补指令,算术位移指令、算术比较指令,十进制加、减运算指令等。这类指令的主要用于定点或浮点的算术运算,大型机中有向量运算指令,直接对整个向量或矩阵进行求和、求积运算。
- 逻辑运算指令:包括逻辑加、逻辑乘、按位加、逻辑位移等指令,主要用于无符号数的位操作、代码的转换、判断及运算。
- 程序控制指令:也称程序转移指令。是为了处理出现不同结果,需要根据不同结果进行转移而该表程序原来的执行顺序。
- 输入输出指令:主要用来启动外围设备,检查测试外围设备的工作状态,并实现外部设备和CPU之间,或外围设备与外围设备之间的信息传送。
- 字符串处理指令:是一种非数值处理指令,一般包括字符传送、字符串转换、字符转比较、字符串查找、字符串抽取、字符串替换等。这类指令在文字编辑中对大量字符串进行处理。
指令类型 | 操作名称 | 说明 |
数据传送 | MOV 传送 | 由源向目标传送字,源和目标是寄存器 |
~ | STO 存数 | 由CPU向存储器传送字 |
~ | LAD 取数 | 由存储器向CPU传送字 |
~ | EXC 交换 | 源和目标交换内容 |
~ | CLA 清零 | 传送全0字到目标 |
~ | SET 置1 | 传送全1字到目标 |
~ | PUS 进栈 | 由源向堆栈顶传送字 |
~ | POP 出栈 | 有堆栈定向目标传送字 |
算术运算 | ADD 加法 | 计算两个操作数的和 |
~ | SUB 减法 | 计算两个操作数的差 |
~ | MUL 乘法 | 计算两个操作数的积 |
~ | DIV 除法 | 计算两个操作数的商 |
~ | ABS 取绝对值 | 以其绝对值替代操作数 |
~ | NEG 变负 | 该变操作数的符号 |
~ | INC 增量 | 操作数加1 |
~ | DEC 减量 | 操作数减1 |
逻辑运算 | AND 与 | 按位完成指定的逻辑操作 |
~ | OR 或 | 按位完成指定的逻辑操作 |
~ | NOT 求反 | 按位完成指定的逻辑操作 |
~ | EOR 异或 | 按位完成指定的逻辑操作 |
~ | TES 测试 | 测试指令的条件;根据结果设置标志 |
~ | COM 比较 | 对两个操作数进行逻辑或算术比较;根据结果设置标志 |
~ | 设置控制变量 | 为保护目的,中断管理,时间控制等设置控制的指令 |
~ | SHI 移位 | 左(右)位移操作,一端引入常数 |
~ | ROT 循环移 | 左(右)位移操作,两端环绕 |
控制指令 | JMP 无条件转移 | 无条件转移;已指定地址装入PC |
~ | JMPX 条件转移 | 根据测试条件;将指定地址装入PC,或什么也不做 |
~ | JMPC 转子 | 将当前程序控制信息放到一个已知位置,转移到指定地址 |
~ | RET 返回 | 由已知位置内容替换PC和其他寄存器内容 |