第3章 指令系统1_第1页
第3章 指令系统1_第2页
第3章 指令系统1_第3页
第3章 指令系统1_第4页
第3章 指令系统1_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、3.4 8086/80883.4 8086/8088指令系统指令系统1 1 指令系统简介指令系统简介 指令是微处理器执行某种操作的命令,微处理器全部指令指令是微处理器执行某种操作的命令,微处理器全部指令的集合称为指令系统。的集合称为指令系统。 指令有两种书写格式:机器指令和符号指令。指令有两种书写格式:机器指令和符号指令。F机器指令机器指令指令的二进制数描述,指令的二进制数描述, ,是唯一可以被是唯一可以被CPUCPU直接识别和执行的程序直接识别和执行的程序F符号指令符号指令用规定的助记符和规定的书写格式书写用规定的助记符和规定的书写格式书写的指令的指令10110000 00000001 MO

2、V AL, 11.11.1指令的组成指令的组成操作码字段(操作码字段(OPOP),用来指明操作的性质及功能。),用来指明操作的性质及功能。指令的操作码字段表明了所执行的操作。指令系统中的每一条指令都有一个唯一确定的操作码。OPA操作码字段操作码字段地址码字段地址码字段1 1 指令系统简介指令系统简介 1.11.1指令的组成指令的组成 地址码字段(地址码字段(A A),操作数的地址或直接给出操作数。),操作数的地址或直接给出操作数。 对于一般的指令来说,除去操作码(OP)之外,指令还应包含以下信息: 参加运算的操作数存放的地址; 执行某种操作的结果存放的地址。 指令地址码字段的结构又可以有三地址

3、指令、二地址指令和一 地址指令等几种。OPA操作码字段操作码字段地址码字段地址码字段1 1 指令系统简介指令系统简介 1.3 指令的格式 8086的指令通常由16个字节组成,指令的第一个字节或前两个字节存放指令的操作码和寻址方式。 指令的第一个字节称为操作码字节指令的第一个字节称为操作码字节 其中高6位是操作码OP,用来指明指令执行的操作。 第1位说明数据流动的方向 第0位说明数据长度是字节还是字 第二个字节称为模式字节第二个字节称为模式字节 高2位MOD域选择寻址类型及其是否存在位移量 REG域(中间3位)和R/M域(低3位),表示寄存器的分配和内存寻址方式。 操作码字节和模式字节后面跟着的

4、字节,用来指明该内存操作数地址的位移量(8位或16位),或者直接给出操作数。1 1 指令系统简介指令系统简介 1.4. 1.4. 指令类型指令类型 通常通常CPUCPU的指令系统可以有上百条指令,按功能可的指令系统可以有上百条指令,按功能可以分成:以分成: 数据传送类指令数据传送类指令 算术、逻辑运算类指令算术、逻辑运算类指令 程控类指令程控类指令 输入输入/ /输出类指令输出类指令 1 1 指令系统简介指令系统简介 每种每种CPUCPU的指令系统都有自己的一套寻址方式的指令系统都有自己的一套寻址方式数据有关的寻址方式:以数据有关的寻址方式:以 MOV MOV 指令为例指令为例: : 立即寻址

5、立即寻址 MOV AX , 3069HMOV AX , 3069H 寄存器寻址寄存器寻址 MOV AL , BHMOV AL , BH 直接寻址直接寻址 MOV AX , 2000H MOV AX , 2000H 寄存器间接寻址寄存器间接寻址 MOV AX , BX MOV AX , BX 寄存器相对寻址寄存器相对寻址 MOV AX , COUNT SI MOV AX , COUNT SI 基址变址寻址基址变址寻址 MOV AX , BP DI MOV AX , BP DI 相对基址变址寻址相对基址变址寻址 MOV AX , MASK BX SI MOV AX , MASK BX SI 2 8

6、086/80882 8086/8088指令的寻址方式指令的寻址方式 2.1.2.1.立即寻址立即寻址 立即寻址是将操作数直接传送给寄存器的一种寻址方式 操作数紧跟在操作码之后,作为指令的一部分。 立即数可以是字节(8位)、字(16位)、双字(32位),其低位字节放在低地址单元,高位字节放在高地址单元。例如:MOV AX,1234H低地址低地址高地址高地址操作码操作码34H12H12HAX34H2.1 2.1 立即寻址立即寻址 寄存器寻址是用于寄存器之间的数据传送,源和目的寄存器必须使用相同的位数。例如: MOV AX, BX MOV AL, BH * 字节寄存器只有 AH AL BH BL C

7、H CL DH DL* SRC 和 DST 的字长一致 MOV AH, BX 错误* CS 不能用 MOV 指令改变 MOV CS, AX 错误 2.2 2.2 寄存器寻址寄存器寻址 存储器寻址是寄存器与内存之间传送数据 操作数存放在代码段之外的存储区 指令中给出的是存储单元地址或产生存储单元地址的有关信息。 X86系列处理器对内存采用分段式管理,程序员在指令中使用的是逻辑地址,逻辑地址由两部分组成存储单元所在段的基地址:段内偏移地址(偏移量) 段的基地址一般由操作系统将程序装入内存时设置,程序员在编程时主要使用段内偏移地址,段内偏移地址也称为有效地址(EA) MOV ES:3000H, AL

8、 ES:称为段超越前缀(可选),指示处理器访问哪个逻辑段3000H为段内偏移地址(有效地址)2.3 2.3 存储器寻址存储器寻址 (1) (1) 直接寻址方式直接寻址方式* * 指令中的操作数部分直接给出操指令中的操作数部分直接给出操作数的有效地址作数的有效地址EAEA,操作数可以是,操作数可以是1616位或位或3232位整数,操作位整数,操作数默认在数默认在DSDS段中。段中。 MOV AX, 3000HMOV AX, 3000H低地址低地址 高地址高地址CS段段操作码操作码00H30H34H12H34H12HAXDS段段5000053000DS5000 0300053000+2.3 2.3

9、 存储器寻址存储器寻址 ( (2) 2) 寄存器间接寻址寄存器间接寻址 EA EA 在基址寄存器在基址寄存器(BX/BP) (BX/BP) 或或 变址寄存器变址寄存器(SI/DI) (SI/DI) 中中 MOV AX, BX PA = 16d MOV AX, BX PA = 16d (DS) + (BX) (DS) + (BX) MOV AX, ES:BX PA = 16d MOV AX, ES:BX PA = 16d (ES) + (BX) (ES) + (BX) MOV AX, BP PA = 16d MOV AX, BP PA = 16d (SS) + (BP) (SS) + (BP)

10、* * 不允许使用不允许使用AXAX、CXCX、DX DX 存放存放 EAEA MOV AX, CX MOV AX, CX * * SRC SRC 和和 DST DST 的字长一致的字长一致 MOV DL, BX ; BXMOV DL, BX ; BX指示一个字节单元指示一个字节单元 MOV DX, BX ; BXMOV DX, BX ; BX指示一个字单元指示一个字单元 * * 适于数组、字符串、表格的处理适于数组、字符串、表格的处理2.3 2.3 存储器寻址存储器寻址 低地址低地址高地址高地址CS段段操作码操作码34H12H34H12HAXSS段段7000073000SS7000 0300

11、073000+MOV AX, BPMOV AX, BPBP2.3 2.3 存储器寻址存储器寻址 (3) (3) 寄存器寄存器相对寻址相对寻址方式方式* * 例例: MOV AX, COUNTSI MOV AX, COUNTSI 或或 MOV AX, COUNT+SIMOV AX, COUNT+SI 假设假设(DS)=3000H, (SI)=2000H, COUNT=3000H,(DS)=3000H, (SI)=2000H, COUNT=3000H, 那么那么 PA = 35000H PA = 35000H 假设假设(35000H)=1234H, (35000H)=1234H, 那么那么 (AX

12、)=1234H(AX)=1234H* * 适于数组、字符串、表格的处理适于数组、字符串、表格的处理 有效地址有效地址 =(BX)(BP) 8位位(SI) 16位位(DI)+位移量位移量2.3 2.3 存储器寻址存储器寻址 低地址低地址高地址高地址CS段段操作码操作码00H15H34H12H34H12HAXDS段段7000073500BX150073500+MOV DX, BX+1500DS7000 020002.3 2.3 存储器寻址存储器寻址 (4) (4) 基址变址寻址方式基址变址寻址方式* * MOV AX, BXDIMOV AX, BXDI 或或 MOV AX, BX+DI MOV A

13、X, BX+DI MOV AX, ES:BXSI MOV AX, ES:BXSI* * 适于数组、字符串、表格的处理适于数组、字符串、表格的处理* * 必须是一个基址寄存器和一个变址寄存器的组合必须是一个基址寄存器和一个变址寄存器的组合 MOV AX, BXBP MOV AX, BXBP MOV AX, SIDI MOV AX, SIDI 有效地址有效地址 =(BX) (SI)(BP) (DI)+2.3 2.3 存储器寻址存储器寻址 例如:例如:MOV CXMOV CX,BXSIBXSI(DSDS)=2000H=2000H,(,(BXBX)=2000H=2000H(SISI)=100H=100

14、H(22100H22100H)=1357H=1357H+基址寄存器基址寄存器变址寄存器变址寄存器100H2000H SI BX2100H20000HDS22100H2.3 2.3 存储器寻址存储器寻址 MOV CXMOV CX,BP+SI BP+SI (SSSS)=3000H=3000H,(,(BPBP)=1000H=1000H(SISI)=100H=100H(31100H31100H)=2468H=2468H物理地址物理地址=16=16 2000H2000H+2000H+100H+2000H+100H =22100H =22100H(CXCX)= 1357H= 1357H物理地址物理地址=1

15、6=16 3000H3000H+1000H+100H+1000H+100H =31100H =31100H(CXCX)= 2468H= 2468H 相对基址变址寻址相对基址变址寻址 默认的段: 以BP寻址,段为堆栈段(段寄存器SS)。 以BX寻址,段为数据段(段寄存器DS)。 使用其它段时采用段超越 有效地址是基址寄存器(BX或BP)和变址寄存器(SI或DI)+位移量。位移量可以为8位(-128127)或16位(-3276832767)。 在80386以上的微处理器中,这种寻址方式适用于除ESP之外的任何两个扩展寄存器组合。 有效地址有效地址 =(BX) (SI) 8位位(BP) (DI) 1

16、6位位+位移量位移量2.3 2.3 存储器寻址存储器寻址 例如:例如: MOV CXMOV CX, ARRAYBXSIARRAYBXSI(DSDS)=2000H=2000H, (BXBX)=2000H=2000H(SI SI)=100H=100H, ARRAY=10H ARRAY=10H (22110H22110H)=1357H=1357H 57H13H22110H68H24H31110H2.3 2.3 存储器寻址存储器寻址 MOV CX MOV CX, ARRAY+BP+SI ARRAY+BP+SI (SSSS)=3000H=3000H, (BPBP)=1000H=1000H(SI SI)=

17、100H=100H, ARRAY=10HARRAY=10H(31110H31110H)=2468H=2468H8086/80888086/8088基本寻址方式基本寻址方式 寻址方式寻址方式操作数操作数有效地址(有效地址(EAEA)立即寻址立即寻址在指令中在指令中无无寄存器寻址寄存器寻址在寄存器中在寄存器中无无直接寻址直接寻址在存储器中在存储器中直接地址直接地址寄存器间接寻址寄存器间接寻址 基址寄存器基址寄存器 / / 变址寄存器变址寄存器 寄存器相对寻址寄存器相对寻址 基址寄存器基址寄存器/ / 变址寄存器变址寄存器+8/16+8/16位位移量位位移量基址加变址寻址基址加变址寻址 变址寄存器变

18、址寄存器+变址寄存器变址寄存器 相对基址加变址相对基址加变址寻址寻址 基址寄存器基址寄存器+ + 变址寄存器变址寄存器+8/16+8/16位位移位位移量量8086/80888086/8088基本寻址方式练习基本寻址方式练习 1假定DS=2000H,ES=2100H,SS=1500H,SI=00A0H,BX=0100H,BP=0010H,数据变量VAL的偏移地址为0050H,请指出下列指令源操作数是什么寻址方式?其物理地址是多少? 指令(1)MOV AX,0ABH (2)MOV AX,100H (3)MOV AX,VAL (4)MOV BX,SI(5)MOV AL,VALBX(6)MOV CL,

19、BXSI(7)MOV VALSI,BX(8)MOV BPSI,100寻址方式立即寻址直接寻址直接寻址寄存器间接寻址寄存器相对寻址基址变址寻址寄存器相对寻址基址变址寻址物理地址20100H20050H200A0H20150H201A0H200F0H150B0H(MOV(MOV,PUSHPUSH,POPPOP,XCHGXCHG,XLATXLAT,CBWCBW,CWD )CWD )(IN(IN,OUT )OUT )(LEA(LEA,LDSLDS,LES )LES )(LAFH(LAFH,SAFHSAFH,PUSHFPUSHF,POPF )POPF )(ADD(ADD,ADCADC,INC)INC)(

20、SUB(SUB,SBBSBB,DECDEC,NEGNEG,CMP)CMP)(MUL(MUL,IMUL)IMUL)(DIV(DIV,IDIVIDIV,CBWCBW,CWD) CWD) (DAA(DAA,AAAAAA,DASDAS,AASAAS,AAMAAM,AAD )AAD )3 8086/80883 8086/8088指令系统指令系统 (AND(AND,OROR,NOTNOT,XORXOR,TESTTEST,SHLSHL,SALSAL,SHRSHR,SARSAR,ROLROL,RORROR,RCLRCL,RCR )RCR )(CLC STC CMC CLD STD CLI STI ) (CLC STC CMC CLD STD CLI STI ) (HLT WAIT ESC LOCK NOP )(HLT WAIT ESC LOCK NOP )(MOVS(MOVS,CMPSCMPS,SCASSCAS,LODSLODS,STOS )STOS )(JMP

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论