微机原理2011-3.ppt
上传人:qw****27 上传时间:2024-09-12 格式:PPT 页数:229 大小:4.6MB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

微机原理2011-3.ppt

微机原理2011-3.ppt

预览

免费试读已结束,剩余 219 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

大连理工大学控制学院第三章8086的寻址方式和指令系统3.1基本概念(二)指令系统(InstructionSet)所有指令的集合,8086CPU包括133条指令(三)寻址方式一条指令通常包括两部分操作码:规定所要执行的操作类型,如传送、运算、移位、跳转等操作数:所需要处理的数据或者数据的地址信息,指令执行的参与者,即各种操作的对象有些指令不需要操作数每种指令的操作码:用一个助记符表示(指令功能的英文缩写)对应着机器指令的一个或多个二进制编码指令中的操作数:可以是一个具体的数值可以是存放数据的寄存器或指明数据在主存位置的存储器地址获得数据或者数据地址信息的方式称为寻址方式例:MOVAX,1234H在这条指令中有两个操作数,按照在指令中所处的位置,将前者称为目的操作数,后者称为源操作数。该指令将数据1234H传送到数据寄存器AX中,源操作数是“立即”寻址方式,目的操作数是“寄存器”寻址方式。3.28086寻址方式8086CPU指令系统有133条指令,通常分为:数据寻址方式程序寻址方式8086指令是不定长的,一般为1~6个字节数据寻址方式(一)隐含寻址指令已经默认对CPU中的某个寄存器进行操作,不用在指令中指明所使用的寄存器,即隐含了规定的操作数,这样的寻址方式称为隐含寻址。例:DAA指令,只有操作码,无操作数,但已经规定是对AL中的内容进行十进制调整操作数直接写在指令中,在指令译码执行时,可以立即得到,同时把操作数又称作“立即数”这种操作数被称为立即数imm可以是8位数值i8(00H~FFH)也可以是16位数值i16(0000H~FFFFH)立即数寻址方式常用来给寄存器和存储单元赋值,多以常量形式出现例:MOVAL,5;AL5,操作数5采用的就是;立即寻址立即数寻址方式(三)寄存器寻址操作数放在CPU内部的寄存器中,在指令中直接指出寄存器的名字。操作数存放在CPU的内部寄存器reg中:8位寄存器reg8:AH、AL、BH、BL、CH、CL、DH、DL16位寄存器reg16:AX、BX、CX、DX、SI、DI、BP、SP4个段寄存器seg_reg:CS、DS、SS、ES寄存器名表示其内容(操作数)例:MOVBX,AX;BXAX以上三种寻址方式都是直接在处理器内部获得数据,操作速度快。寄存器寻址方式(四)存储器操作数寻址操作数存放在存储器中时,指令执行时必须通过总线在存储器中存取操作数。执行单元EU根据指令中给出的寻址方式计算出16位的偏移量,称为有效地址(EA)送到总线接口单元BIU,经过加法器生成20位实际物理地址,在存储器读写总线周期对存储器进行操作,一般在表示EA时,用[操作数]表示。由于计算EA需要时间,进行总线操作比较慢,因此存储器操作寻址比前三种要慢。操作数在主存储器中,用主存地址表示程序设计,8086/8088采用逻辑地址表示主存地址段地址在默认的或用段超越前缀指定的段寄存器中指令中只需给出操作数的偏移地址(有效地址EA)8086设计了多种存储器寻址方式1、直接寻址方式2、寄存器间接寻址方式3、寄存器相对寻址方式4、基址变址寻址方式5、相对基址变址寻址方式8086的寄存器和存储器管理1.通用寄存器8086有8个通用的16位寄存器(1)数据寄存器:AXBXCXDX(2)变址寄存器:SIDI(3)指针寄存器:BPSP4个数据寄存器还可以分成高8位和低8位两个独立的寄存器,这样又形成8个通用的8位寄存器AX:AHALBX:BHBLCX:CHCLDX:DHDL(1)数据寄存器AX称为累加器(Accumulator)使用频度最高。用于算术、逻辑运算以及与外设传送信息等BX称为基址寄存器(BaseaddressRegister)常用做存放存储器地址CX称为计数器(Counter)作为循环和串操作等指令中的隐含计数器DX称为数据寄存器(Dataregister)常用来存放双字长数据的高16位,或存放外设端口地址(2)变址寄存器16位变址寄存器SI和DI常用于存储器变址寻址方式时提供地址SI是源地址寄存器(SourceIndex)DI是目的地址寄存器(DestinationIndex)在串操作类指令中,SI、DI还有较特殊的用法(3)指针寄存器指针寄存器用于寻址内存堆栈内的数据SP为堆栈指针寄存器(StackPointer),指示堆栈段栈顶的位置(偏移地址)BP为基址指针寄存器(BasePointer),表示数据在堆栈段中的基地址SP和BP寄存器与SS段寄存器联合使用以确定堆栈段中的存储单元地址2.指令指针寄存器IP(InstructionPointer)为指令指针寄存器,指