好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

微机原理-寻址方式和指令编码演示文档.ppt

29页
  • 卖家[上传人]:夏**
  • 文档编号:567317775
  • 上传时间:2024-07-19
  • 文档格式:PPT
  • 文档大小:416KB
  • / 29 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 3 指令寻址方式与指令系统指令寻址方式与指令系统 3-1 8086 的寻址方式(重点)3-2 指令的机器码表示方法3-3 8086指令系统(重点) 一、数据传送指令 二、算术运算指令 三、逻辑运算、移位、循环指令 四、串操作指令 五、控制转移指令 六、处理器控制指令 七、指令的执行时间和软件延时第03章小结主要内容主要内容 3-1 8086的寻址方式的寻址方式 3-1 8086 的寻址方式的寻址方式每条指令,都是对某些数据进行一定的操作或运算(1)MOV AX,BX执行:把BX寄存器的内容复制到AX寄存器中•指令的要素指令的要素–指令执行的何种操作——操作码,如:MOV,ADD–指令执行的哪个对象——操作数,如:AX,BX,CL,CH–执行前的数称为源操作数,执行后的结果称为目的操作数–两个操作数用“,”分隔,左边为目的,右边为源,(2)ADD CL,21H执行:把常数21H加到CL寄存器中•指令寻址方式指令寻址方式——确定指令中操作数的方法确定指令中操作数的方法–每个操作数都有寻址方式,一条指令可有多种寻址方式 A19—A1D15—D0WRRDBHEA0M/IO8086最小系统最小系统I/O接口ABCBDB存储器代码段代码段数据段数据段堆栈段堆栈段扩展段扩展段19153-1 8086 的寻址方式的寻址方式数据存放地点:寄存器,程序存储器,数据存储器,数据存放地点:寄存器,程序存储器,数据存储器,I/O接口接口AX、、BX、、CX、、DXSP、、 SI、、BP 、、DIDSESSSCSIPZFCFAFPFSFOFALUIFDFTF指令队列指令队列 数据传送指令 MOVMOV目的,源;目的目的,源;目的源源操作:操作:将源操作数的值复制到目的操作数中,将源操作数的值复制到目的操作数中,原操作数保持不变原操作数保持不变以以MOVMOV指令的操作数为例,说明寻址方式指令的操作数为例,说明寻址方式 3-1 寻址方式寻址方式——寄存器寻址寄存器寻址•寄存器的内容为操作数寄存器的内容为操作数–8位寄存器:AH,AL,BH,BL,CH,CL,DH,DL–16位通用寄存器:AX,BX,CX,DX,–16位指针寄存器:SI,DI,BP,SP,IP–16位段寄存器: CS、DS、ES、SS–16为标志寄存器:PSW•既能做源操作数又能做目的操作数•寄存器操作数执行速度快例:MOV DS,AX;DS  AX •立即数是直接包含在指令代码中的8位或16位的常数,其值在程序运行过程中不变,是软件处理常数的最广泛的方法•立即数是指令码的一部分,紧跟在操作码之后存放在程序存储器(代码段)中。

      执行时,EU从指令队列中获得该操作数•16位立即数,按字数据格式存放,即低字节存放在低地址单元中,高字节存放在高地址单元中•立即数只能做源操作数,不能做目的•以A-F打头的立即数,前面加0,以区别其它字符•立即数寻址方式不需要计算存储单元地址,执行速度最快3-1 寻址方式寻址方式——立即数寻址立即数寻址例:MOVAX, 1234H; AX1234H 16位位内部暂存器内部暂存器 IP ES SS DS CS输入输入/输出输出控制电路控制电路执行部分执行部分控制电路控制电路1 2 3 4 5 6∑ALU标志寄存器标志寄存器 AH AL BH BLCH CL DH DL SP BP SI DI地址地址加法加法器器指令队列缓冲器指令队列缓冲器20位位16位位8位位3-1 寻址方式寻址方式——立即数寻址立即数寻址操作码OP34H12H1 2 3 4 5 63412OP •存储器寻址方式的关键是确定操作数的逻辑地址PC机中,段内偏移地址被称为有效地址EA逻辑地址逻辑地址 = 段基址:有效地址段基址:有效地址EA•存储器操作数的执行速度较慢–EU计算16位有效地址并送BIU–BIU确定段基址,计算20位物理地址–BIU读取指定单元中操作数的值,送到EU中运算•EA要用[ ]括起来,[EA],以区分其它寻址方式,[ ] 有“取有效地址”的含义3-1 寻址方式寻址方式——存储器操作数寻址存储器操作数寻址 3-1 寻址方式寻址方式——存储器操作数寻址存储器操作数寻址寻址方式有效地址EA的值举例直接寻址指令中的16位常数[1234H], Data1寄存器间接寻址16位寄存器的值[BP], [BX], [SI], [DI]寄存器相对寻址寄存器 + 8位/16位的相对位移量[BP+Disp], [BX+Disp], [SI+Disp], [DI+Disp]基址变址寻址基址寄存器+变址寄存器[BP+SI], [BP+DI][BX+SI], [BX+DI]相对基址变址寻址基址寄存器+变址寄存器+相对位移量[BP+SI+Disp], [BP+DI+Disp] [BX+SI+Disp], [BX+DI+Disp]段基址的值来自CS、DS、ES、SS,有两种方法确定:1.默认段寄存器:有BP则为SS,其它均为DS2.指定段寄存器:段超越符,DS:,ES:,SS:,CS:EA有五种方法确定,对应不同的存储器寻址方式 •在指令中以常数形式直接给出操作数的16位有效地址EA,EA作为指令码的一部分,紧跟操作码存放在代码段中。

      •EA是用[ ]括起来,以与立即数区分•有效地址EA的存储顺序与16位立即数相同,低字节存放在低地址单元中,高字节存放在高地址单元中•EU从指令队列中直接获得EA送BIU•段基址的默认值是DS3-1 寻址方式寻址方式——直接寻址直接寻址 例: 设 DS=5000HMOV AX,[4321H]操作码21H43H内容物理地址54322H54321H54320H90H78H56HALAH1.操作数物理地址:PA = DS × 16 + EA = 54321H2.字数据,PA对应单元内容AL, (PA+1)对应单元内容AH78903-1 寻址方式寻址方式——直接寻址直接寻址 •在汇编语言中,可以事先把一个存储单元的有效地址定义为一个符号,在程序中使用符号地址而不直接使用数值地址•定义字节数据用DB,定义字数据用DW例:例:ARRAY1ARRAY1DWDW0506H0506HMOVMOV AXAX,,ARRAY1ARRAY1;;AX=0506HAX=0506H对符号地址,可以不加[ ],等价于直接寻址MOVMOV AXAX,,ARRAY1 == MOVARRAY1 == MOVAXAX,,[ARRAY1][ARRAY1]3-1 寻址方式寻址方式——符号地址符号地址 3-1 寻址方式寻址方式——直接寻址直接寻址•如果直接寻址的数据不在DS段中,则要在指令中使用段超段超越前缀越前缀指明段的名称。

      •如在有效地址前用“ES: ”标明对附加段的寻址是属性修改运算符,表示计算物理地址时,不再使用缺省的DS,而改用ES例:MOV AL,ES:[3024H] ;PA= ES × 10H + 3024HMOV AL,[3024H];PA=DS ×10H + 3024H •有效地址EA为某个16位寄存器的内容•8086只能用两个基址寄存器BX、BP ,以及两个变址寄存器SI、DI例:设例:设 AX=0102HAX=0102H,,BX=2346HBX=2346H,,DS=1000HDS=1000H,,ES=2000HES=2000HMOVMOV AXAX,,BXBX;;AX=2346HAX=2346HMOVMOV AXAX,,[BX][BX];;AX=3344HAX=3344H1. 源操作数物理地址: PA = DS × 16 + EA = 10000H + 2346H = 12346H2. 取物理地址为12346H的字数据送AX中,即取(12346H)单元的内容送AL中,(12347H)单元的内容送到AH中…33H44H…12346H3-1 寻址方式寻址方式——寄存器间接寻址寄存器间接寻址 •有效地址EA是一个基址或变址寄存器的内容与一个8位或16位的位移量之和•默认段基址由寄存器决定,BP  SS;BX、SI、DI  DS•段超越前缀指定非缺省的段基址例:例:MOVMOV AXAX,,[BX- 12H][BX- 12H];;EA=BX-12HEA=BX-12H,,DSDSMOVMOV ALAL,,CNT [BP]CNT [BP];;EA=BP+CNTEA=BP+CNT,,SSSSMOVMOV BXBX,,ESES:: ARY[DI]ARY[DI] ;;EA=DI+ARYEA=DI+ARY,,ESES3-1 寻址方式寻址方式——寄存器相对寻址寄存器相对寻址•物理地址PA分两步形成:•第1步EU计算有效地址EA。

      EA的计算是16位数据运算,通过16位内部总线传送,超过16位的数据会自然丢失•第2步BIU根据EA和段基址计算物理地址,这一步在地址加法器中完成 例:设例:设DS=2000H,,BX=0AB00H,,ARY=0F000H例:例:MOV AL,,[BX+12H]①①EA = BX + 12H = 0AB00H + 12H = 0AB12H②②PA = DS × 10H + EA = 20000H +0AB12H = 2AB12H例:例:MOV AL,,ARY[BX]①①EA = BX + ARY = 0AB00H + 0F000H = 1 9B00H,进位,而,进位,而EA只能取低只能取低16位,故位,故EA=9B00H,,进位位自然丢失进位位自然丢失②②PA=DS × 10H + EA = 20000H + 9B00H = 29B00H3-1 寻址方式寻址方式——寄存器相对寻址寄存器相对寻址 •有效地址EA是一个基址寄存器(BX,BP)与一个变址寄存器(SI,DI)的内容之和•默认段由基址寄存器决定,BP  SS,BX  DS•用段超越前缀指定非缺省的段基址•注意计算EA和PA时进位的自然丢失例:例:MOVMOV AXAX,,[BX +SI][BX +SI];;EA = BX + SIEA = BX + SI,,DSDSMOVMOV ALAL,, [BP] [DI][BP] [DI];;EA = BP + DIEA = BP + DI,,SSSSMOVMOV BXBX,,ESES:: [BX] [DI][BX] [DI] ;;EA = BX + DIEA = BX + DI,,ESES3-1 寻址方式寻址方式——基址变址寻址基址变址寻址 •有效地址EA是一个基址寄存器(BX,BP)与一个变址寄存器(SI,DI)的内容之和,再加上一个8位或16位的位移量•默认段由基址寄存器决定,BP  SS,BX  DS•用段超越前缀指定非缺省的段基址•注意计算EA和PA时的自然丢失例:例:MOVMOV AXAX,,[BX +SI+12H][BX +SI+12H] ;;EA = BX + SI + 12HEA = BX + SI + 12H,,DSDSMOVMOV ALAL,,BUF[BP][DI]BUF[BP][DI] ;;EA = BP + DI + BUFEA = BP + DI + BUF,,SSSSMOVMOV BXBX,,ES:ARY[BX] [DI] ES:ARY[BX] [DI] ;;EA = BX + DI +ARYEA = BX + DI +ARY,,ESES3-1 寻址方式寻址方式——相对基址变址寻址相对基址变址寻址 1、隐含寻址、隐含寻址指令中不显性指明操作数,此类指令的操作数是预先规指令中不显性指明操作数,此类指令的操作数是预先规定的,称为隐含寻址方式。

      定的,称为隐含寻址方式例:例:例:例:STCSTC;;;;CF CF  1 1DAADAA;对;对;对;对ALAL中数据进行十进制加法调整中数据进行十进制加法调整中数据进行十进制加法调整中数据进行十进制加法调整XLATXLAT;查表指令;查表指令;查表指令;查表指令3-1 寻址方式寻址方式——隐含寻址隐含寻址 I/O端口:端口:I/O接口电路中存放数据的地方接口电路中存放数据的地方①①8086使用低使用低16位地址信号寻址位地址信号寻址I/O端口,寻址范围端口,寻址范围64kB空间I/O端口寻址不使用地址加法器端口寻址不使用地址加法器②②访问访问I/O端口使用输入端口使用输入IN、输出、输出OUT指令,指令,M/IO=0;访问;访问内存用内存用MOV指令,指令,M/IO=1③③直接寻址与间接寻址两种方式直接寻址与间接寻址两种方式3-1 寻址方式寻址方式——I/O端口寻址端口寻址例:例:例:例:;端口直接寻址,;端口直接寻址,;端口直接寻址,;端口直接寻址, PORT=8PORT=8位端口号位端口号位端口号位端口号ININAXAX,,,,PORTPORT;直接字输入,;直接字输入,;直接字输入,;直接字输入,OUTOUTPORTPORT,,,,AXAX;;;; 直接字输出直接字输出直接字输出直接字输出ININALAL,,,,PORTPORT;;;; 直接字节输入直接字节输入直接字节输入直接字节输入OUTOUTPORTPORT,,,,ALAL;;;; 直接字节输出直接字节输出直接字节输出直接字节输出;端口间接寻址,;端口间接寻址,;端口间接寻址,;端口间接寻址,DX=16DX=16位端口号位端口号位端口号位端口号ININAXAX,,,,DXDX;间接字输入;间接字输入;间接字输入;间接字输入OUTOUTDXDX,,,,AXAX;间接字输出;间接字输出;间接字输出;间接字输出ININALAL,,,,DXDX;间接字节输入;间接字节输入;间接字节输入;间接字节输入OUTOUTDXDX,,,,ALAL;间接字节输出;间接字节输出;间接字节输出;间接字节输出 A19—A1D15—D0WRRDBHEA0M/IO8086最小系统最小系统I/O接口ABCBDB存储器直接寻址直接寻址寄存器间接寄存器间接寄存器相对寄存器相对相对基址变址相对基址变址1915操作数寻址方式操作数寻址方式AX、、BX、、CX、、DXSP、、 SI、、BP 、、DIDSESSSCSIPZFCFAFPFSFOFALUIFDFTF指令队列指令队列3-1 8086寻址方式寻址方式基址变址基址变址直接端口寻址直接端口寻址间接端口寻址间接端口寻址立即数寻址立即数寻址寄存器寻址寄存器寻址 3-2 指令的机器码表示方法指令的机器码表示方法 一、机器语言指令的编码目的和特点•机器语言指令–CPU只能识别和执行二进制机器码指令。

      •机器语言指令的编码特点–指令机器码有单字节、双字节、多字节之分,8086 CPU最长指令有 6 字节–一般通过查表即可找到对应的机器码•分为“操作码域”和“操作数域”–操作码域:操作码域:指令的第一个字节或者头两个字节表示指令的操作码和寻址方式,称为操作码域–操作数域:操作数域:操作码域后面所跟的字节统称为操操作码域后面所跟的字节统称为操作数域作数域3-2 指令的机器码表示方法指令的机器码表示方法 1、操作码、操作码OP:指出执行这条指令时,CPU 要做什么操作OP)一般用指令的一个字节表示,有时由于用 8 位还不够,常在指令的第二个字节中还可占有 3 位操作码指令的第一字节:wd立即方式寻址时,操作码中用 S 位表示符号扩展 s=1,将 8 位立即数扩展成 16 位数时 OP d/s ww=1,对字进行操作w=0,对字节进行操作d=1,寄存器作为目的操作数d=0,寄存器作为源操作数3-2 指令的机器码表示方法指令的机器码表示方法 2、操作数域:、操作数域:操作码域后面所跟的字节一般统操作码域后面所跟的字节一般统 称为操作数域称为操作数域• 2 字节的有效地址(直接寻址);• 1 字节或者 2 字节的位移量;• 1 字节或者 2 字节的立即数;• 1 字节或者 2 字节的位移量,• 1 字节或者 2 字节 的立即数;• 2 字节的位移量和 2 字节的段地址(只对段间接转移而言)。

      单操作数指令双操作数指令指令:3-2 指令的机器码表示方法指令的机器码表示方法 例:例:MOVMOV[BX+2100H][BX+2100H],,0FA50H0FA50H两字节操作码位移量低字节位移量高字节立即数低字节立即数高字节第1字节C 7第2字节8 7第3字节0 0第4字节2 1第5字节5 0第6字节F A低地址高地址3-2 指令的机器码表示方法指令的机器码表示方法 指令地址指令地址•指令在存储器中的地址,是指该指令第一个字节所在存储单元的地址•其段基址由CS确定,段内偏移地址由IP决定•每执行完一条指令后,IP的值指向下一条指令的首地址IP的值不是连续变化的,每次变化按照一条指令的字节数变化•CS : IP的改变是通过专门的指令——跳转类指令来实现3-2 指令的机器码表示方法指令的机器码表示方法 。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.