第5章指令系统本章学习目标
了解指令系统的格式。
了解指令系统的编码。
掌握8086指令系统的格式及功能。
掌握8086汇编语言程序设计的方法及应用。本章首先介绍计算机指令系统的格式、寻址方式、编码等基本概念,然后**介绍8086指令系统的格式及功能,*后介绍8086汇编语言程序设计的方法及应用。
5.1指令系统概述
指令系统是指计算机所具有的各种指令的集合,它是软件编程的出发点和硬件设计的依据,反映了计算机硬件具有的基本功能。
5.1.1指令的格式
机器指令是计算机硬件能够识别并直接执行的操作命令。指令由操作码和地址码两部分组成。操作码用来说明指令操作的性质及功能。地址码用来描述该指令的操作对象,由它给出操作数或操作数的地址以及操作结果的存放地址。
根据指令中所含地址码的个数,指令分为零地址指令、单地址指令、双地址指令、三地址指令和多地址指令。
一般来说,地址码较少的指令占用空间小,执行速度快,所以在结构简单的计算机指令系统中,零地址、单地址和双地址指令较多采用。而在功能较强的计算机中多采用双地址、三地址及多地址指令。5.1.2寻址方式
指令中的地址码部分指明了指令的操作数或操作数的地址以及操作结果的地址。这种指定操作数或者操作数的地址以及操作结果地址的方式称为寻址方式。
在指令中,需要设定源地址码和目的地址码。源地址码是操作数的地址,目的地址码是运算结果的地址。
计算机指令系统中常用的寻址方式有立即寻址、寄存器寻址、直接寻址、寄存器间接寻址、相对寻址、基址和变址寻址、隐含寻址等方式。为了方便讲解,本节以8086指令系统为例。
在8086指令系统中,指令中地址码的个数有零地址、单地址和双地址3种。在双地址指令中,目的地址码在前,源地址码在后。首先介绍常用的MOV指令。MOV指令的格式为MOV目的地址码,源地址码MOV指令的功能是将源地址码指定的操作数传送到目的地址码。MOV指令能实现将立即数送寄存器或存储器,实现寄存器和寄存器间、寄存器和存储器间数据的传送。目的地址码和源地址码可以使用不同的寻址方式。MOV指令操作数的类型由寄存器长度确定,或者由类型操作符指定。
1. 立即寻址方式
在指令中直接给出操作数本身。操作数作为指令的一部分,在读取指令的时候就把数据读取了出来,这个操作数又称为立即数。这种方式不需要再根据地址寻找操作数,所以指令的执行速度较快。
在8086指令系统中,立即数是常量,可以是各种进制的数据、字符、字符串,还可以是数值表达式或符号常量。
【例51】在8086指令系统中,写出指令MOV AH,20H的执行结果。
解:这条指令中的源地址码是一个立即数,使用的是立即寻址方式。指令功能是把8位立即数20H传送到AH寄存器中。指令执行结果为AH=20H。