指令概述与标志寄存器
指令
指令是CPU操作的基本单位,每条指令执行一个特定的操作。
可以理解为:指令通知CPU执行某种操作的 “命令”。
CPU全部指令的集合,称为指令集。
指令的分类
- 机器指令:二进制格式编码的序列(一串0,1代码书写)。
注意:硬件只能识别,存储,运行机器指令。 - 符号指令:用字符串形式的序列(包含字符串形式的操作码以及操作数助记符)表示。
指令的组成
- 操作码:计算机要执行的操作,如:加、减、逻辑与等。
- 操作数:执行操作过程所要操作的数,如加运算的两个加数。
- 标号:标号又称符号地址,代表该指令的逻辑地址。
- 注解:以 “ ;” 开头,不执行。
指令的长度
指令在存储器中占用的字节数成为指令长度。80X85指令长度(机器指令长度)为1~16字节。
指令的地址
多字节指令占用连续的内存单元,存放指令第一字节的内存单元地址,称为 “指令地址”。
指令的存放
首先存放操作码,然后存放操作数。多字节操作数连续存放,顺序依据小端法规则(Little Endian),即:低位字节存放在低地址单元,高位字节存放在相邻的高地址单元。
标志寄存器
32位CPU标志寄存器为32位,实际使用15位。
15位标志分为两类:状态标志和控制标志。
- 状态标志记录了当前指令执行后的状态信息。
- 控制标志用来控制微处理器操作。
本节介绍6种状态标志。
C标志—进位/借位标志
- 字节加/减,最高位(D7)产生进位/借位时:C标志置1,否则置0
- 字加/减,最高位(D15)产生进位/借位时:C标志置1,否则置0
- 双字加/减,最高位(D31)产生进位/借位时:C标志置1,否则置0
A标志—辅助进位/辅助借位标志
- 字节、字、双字加/减,D3位产生进位/借位时:A标志置1,否则置0
S标志—符号标志
- 字节运算后,结果的最高位D7位为1,S标志置1,否则置0
- 字运算后,结果的最高位D15位为1,S标志置1,否则置0
- 双字运算后,结果的最高位D31位为1,S标志置1,否则置0
Z标志—零标志
- 运算结果全为0时,Z标志置1,否则置0
P标志—奇偶标志(实际上是偶标志)
- 运算结果的低8位中,若“1”的个数为偶数个,则P标志置1,否则置0
溢出标志—溢出标志
- 加数与被加数的最高位相同,却与结果的最高位相异,则O标志置1,否则置0
- 由于溢出和操作数的性质有关,而操作数的性质是由程序员定义的。CPU只能默认一种选择,即CPU一律默认操作数是有符号补码数,并以此来设置溢出标志。
- 程序员如何判断溢出:
有符号数运算,判O标志,O标志为1,有溢出
无符号数运算,判C标志,C标志为1,有溢出
例题与小节