1、计算机指令有微指令、机器指令、宏指令之分
- 微指令,是微程序级的命令,属于硬件
- 宏指令,由若干条机器指令组成的软件指令,属于软件
- 机器指令,介于微指令和宏指令之间,通常简称指令,每一条指令可以完成一个独立的算术运算或逻辑运算操作
***********************以下讨论的属于机器指令**********************
2、指令系统,一台计算机中所有的机器指令的集合
3、系列计算机,指基本指令系统相同、基本体系结构相同的一系列计算机
4、一个完整的指令系统
- 完备性,指令系统直接能提供足够的指令,而不必用软件来实现
- 有效性,利用指令系统所编写的程序能高效地运行
- 规整性,指令系统的对称性、均匀性、指令格式和数据格式的一致性
- 兼容性,系列机各机种之间具有基本结构和共同的基本指令集(向上兼容,即低档机上运行的软件可以再高档机上运行)
5、汇编语言依赖于计算机的硬件结构和指令系统,所以一台机上的用汇编语言编写的程序不一定能在其他机子上运行
6、机器指令是用机器字来表示的; 表示一条指令的机器字就称为“指令字”,通常简称指令
7、指令格式,则是指指令字用二进制代码表示的结构的形式; 通常由操作码和地址码字段组成
8、根据一条
指令中有几个操作数地址,可将该指令称为几操作数指令或几地址指令
9、在二地址指令格式中,从操作数的物理位置来说,可分为三种类型
- 访问内存的指令格式,SS(存储器-存储器)型指令;从内存中取操作数、将结果存入内存中,需要多次访问内存
- 访问寄存器的指令格式,RR(寄存器-寄存器)型指令;从寄存器中取操作数,将结果存入寄存器中
- 寄存器-存储器(RS)型指令,既要访问内存单元又要访问寄存器
10、指令字长度是一个指令字中包含的二进制码的位数
11、机器字长是指计算机能直接处理的二进制数据的位数,决定了计算机的运算精度;
12、机器字长通常跟主存单元的位数一致
13、指令字长度等于机器字长度的指令称为单字长指令; 相似的有半字长指令、双字长指令
14、指令助记符: ADD、SUB等等; 在不同的计算机中指令助记符的规定是不一样的
15、在存储器中,操作数或指令字写入或读出的方式,有“地址指定方式”、“相联存储方式”和“堆栈存储方式”; 几乎所有的计算机,在内存中都采用“地址指定方式”
16、当采用地址指定方式时,形成操作数或指令地址的方式称为 “寻址方式”,又可分为“指令寻址方式(比较简单)”和“数据寻址方式(比较复杂)”
17、指令寻址方式
- 顺序寻址方式,从存储器中取出第一条指令,执行这条指令;再取出第二条指令,再执行; 必须使用PC来计数指令的顺序号,该顺序号就是指令在内存中的地址
- 跳跃寻址方式,下一条指令的地址码不是由程序计数器给出,而发生了转移
18、操作数的寻址方式
- 形成操作数的有效地址的方式,称为操作数的寻址方式
- 指令中操作数字段的地址码是有“形式地址”和“寻址方式特征位”等组合形成的,因此,指令中给出的地址码并不是操作数的有效地址
- 形式地址D,也称偏移量,是指令字结构中给定的地址量
- 隐含寻址,不明显的给出操作数的地址
- 立即寻址,给出的是操作数本身
- 直接寻址,直接给出操作数在内存中的地址D
- 简介寻址,给出的是操作数地址的指示器
- 寄存器寻址方式,操作数不在内存中,而存放在CPU的通用寄存器中; 此时给出的是通用寄存器的编号
- 寄存器间接寻址方式,指令格式中的寄存器的内容是操作数的地址而不是操作数本身
- 相对地址寻址,吧程序计数器PC的内容加上指令格式中的形式地址D二生成有效地址
- 基址寻址方式,将CPU中基址寄存器的内容加上指令格式中的形式地址而生成操作数的有效地址
- 变址寻址方式,把CPU中某个寄存器的内容和偏移量D相加来形成操作数的有效地址
- 块寻址方式,在指令中指出数据块的起始地址和数据块的长度; 常用于输入输出指令中,以实现外存储器或外围设备同内存之间的数据块的传送
- 段寻址方式,实质上还是基址寻址
19、Pentium的寻址方式
- 在实地址模式下,逻辑地址形式为段寻址方式; 将段名所指定的段寄存器内容(16位)左移4位,低四位补全0,得到20位段基地址,再加上段内偏移,即得20位物理地址
- 保护模式下,32位的段基地址加上段内偏移得到32位的线性地址,由存储管理部件将其转换成32位的物理地址
20、指令的分类
- 数据传送指令, 主要包括取数指令、存数指令、传送指令、成组传送指令、字节交换指令、清累加器指令、堆栈操作指令等等;主要用于实现主存和寄存器之间,或寄存器和寄存器之间的数据传送
- 算术运算指令,包含加、减、乘、除,浮点加减乘除,求反、求补、算术移位指令、算术比较指令等等主要用于定点或浮点的算术运算
- 逻辑运算指令,用于无符号数的位操作、代码的转换、判断及运算
- 程序控制指令,也叫转移指令
- 输入、出指令,主要用于启动外围设备,检测外围设备的工作状态,以实现外部设备和CPU之间的,或外部设备与外部设备之间的信息传送
- 字符串处理指令
- 特权指令,只用于操作系统或其他的系统软件一般不直接提供给用户使用
- 其他指令,如状态寄存器置位、复位指令等等等