微型计算机的指令系统

上传人:豆浆 文档编号:48366153 上传时间:2018-07-14 格式:PPT 页数:183 大小:3.05MB
返回 下载 相关 举报
微型计算机的指令系统_第1页
第1页 / 共183页
微型计算机的指令系统_第2页
第2页 / 共183页
微型计算机的指令系统_第3页
第3页 / 共183页
微型计算机的指令系统_第4页
第4页 / 共183页
微型计算机的指令系统_第5页
第5页 / 共183页
点击查看更多>>
资源描述

《微型计算机的指令系统》由会员分享,可在线阅读,更多相关《微型计算机的指令系统(183页珍藏版)》请在金锄头文库上搜索。

1、第五讲 86系列微型计算机的 指令系统曾铁军主要内容86系列汇编语言及指令的格式与寻址方式1传送类指令2数据操作类指令3串操作指令4控制类指令586系列汇编语言及指令的格式与寻址方式指令是让计算机完成某种操作的命令,指令的集合称作指令系统,不同系列计算机有不同的指令系统。指令系统与计算机硬件有着某些对应关系,用指令进行编程能够充分开发计算机硬件资源,它的程序目标代码短、运行速度快。86系列指令系统是在8位微处理器86系列的指令系统基础上设计的,它兼容了86系列的全部指令。汇编语言的指令语句与机器指令一一对应 图中由前向后的箭头表示是可选项,由后向前 的箭头表示是重复项,圆头方框表示是语句中 的

2、关键字。5.1.1 865.1.1 86系列汇编语言指令语句格式系列汇编语言指令语句格式5.1 86系列汇编语言及指令的 格式与寻址方式【例6.4】的程序如下: START: IN AL,71H ; 将71H端口的字节读入ALCLC ; 清除CFCMP AL,10 ; 将AL的内容和10相比较JC LP1 ; 小于10转LP1CMP AL,20 ; 将AL的内容和20相比较JC LP2 ; 10AL20转LP2MOV BL,0FFH ; 将0FFH送入BL寄存器 LP3: OUT 73H,BL ; 将0FFH输出到73H端口 HLT ; 暂停 LP1: MOV BL,00JMP LP3 LP2

3、: MOV BL,88HJMP LP3(1) 标号是给该指令所在地址取的名字。86系列汇 编语言中可使用的标识符必须遵循下列规则: 标识符由字母(az,AZ)、数字(09)或 某些特殊字符(,-,?)组成。 第一个字符必须是字母(az,AZ)或某些特 殊的符号(,-,?),但“?”不能单独作标识符。 标识符有效长度为31个字符,若超过31个字符 ,则只保留前面的31个字符为有效标识符。(2) 指令助记符是指令名称的代表符号,它表示本 指令的操作类型,必要时可在指令助记符的前面加 上一个或多个“前缀”,从而实现某些附加操作。 (3) 操作数是参加本指令运算的数据,有些指令不 需要操作数,可以缺省

4、;有些指令需要两个操作数 ,这时必须用逗号(,)将两个操作数分开;有些操 作数可以用表达式来表示。 (4) 注释部分是可选项,允许缺省,必须用分号(; )5.1.2 86系列 CPU的寻址方式寻址:把物理地址分配给程序各条指令的过程寻址方式:根据指令的地址码生成操作数的物 理地址的方法地址地址指令地址指令地址: : 指令通常存放在内存中指令通常存放在内存中操作数地址:操作数地址:操作数可以存放在多个地方操作数可以存放在多个地方此处主要是针对操作数地址此处主要是针对操作数地址物理地址物理地址=段基址段基址16+16+偏移地址偏移地址本书介绍的微机系统有本书介绍的微机系统有4 4种寻址方式:种寻址

5、方式:uu立即寻址方式立即寻址方式uu寄存器寻址方式寄存器寻址方式uu直接寻址方式直接寻址方式uu寄存器间接寻址方式寄存器间接寻址方式uu后后2 2种寻址方式是确定内存单元有效地址的种寻址方式是确定内存单元有效地址的 五种不同的计算方法,用它们可方便地实现五种不同的计算方法,用它们可方便地实现 对数组元素的访问。对数组元素的访问。多种寻址方式?多种寻址方式?效效 率和方便性的平衡率和方便性的平衡2. 寄存器寻址INC CX ; 将CX的内容加1 ROL AH,1;将AH中的内容循环左移一位 操作数就在CPU的内部寄存器中 对16位操作数来说,寄存器可以为AX,BX, CX,DX,SI,DI,S

6、P或者BP,而对8位操作 数来说,寄存器可为AH,AL,BH,BL,CH, CL,DH,DL 操作就在CPU内部进行,不需要使用总线周期 ,因此,执行速度快3. 直接寻址MOV AX,1070H;将DS段的1070H和 1071H 两单元的内容取到AX中 默认为段寄存器是数据段寄存器DS。设DS 2000H,则执行过程是将绝对地址为21070H和 21071H两单元的内容取出送AX。 如果要对其它段寄存器所指出的存储区进行直接寻 址,则本条指令前必须用前缀指出段寄存器名。CS:MOV BX,3000H;将CS段的 3000H和3001H两单元的内容送BX设CS为5100H,则本指令在执行时,将

7、 54000H和54001H两单元的内容取出送BX。4. 寄存器间接寻址操作数一定在存储器中,存储单元的有效地址由寄存 器指出,这些寄存器可以为BX,BP,SI和DI之一, 即有效地址等于其中某一个寄存器的值:BXBPEA SIDIBXBP+ 8位位移量EA SI 16位位移量DIEAEA为寄存器能表示为寄存器能表示 的有效地址的有效地址寄存器间接寻址方式读取存储单元的原理寄存器间接寻址方式读取存储单元的原理 和直接寻址一样,如果指令前面没有用前缀指明具体 的段寄存器,则寻址时默认的段寄存器通常为DS。如 寄存器为BP时,则对应的段寄存器为SS。 在有些资料中,将位移量看成是一个相对值。细分起

8、 来,寄存器间接寻址可分为以下4种: (1)以BX寄存器进行间接寻址数据段基址寻址。MOV AX,BX设DS5000H,BX3000H,则本指令在执行时, 将53000H和53001H两单元的内容送AX。ESMOVCX,BX设ES3000H,BX4000H,则本指令在执行时, 将34000H和34001H两单元的内容送CX。(2) 以BP寄存器进行间接寻址堆栈段基址寻址。MOV BX,BP设SS5000H,BP4000H,则本指令在执行时 ,将54000H和54001H两单元的内容送BX。 (3) 以SI和DI寄存器进行间接寻址变址寻址。SI 和DI寄存器分别称为源变址寄存器和目的变址寄存器

9、,所以用这两个寄存器来进行间接寻址也叫变址寻址 。变址寻址通常用于对数组元素进行操作,另外,在 “54串操作指令中还将讲到有些串操作指令要求用 固定的变址寄存器对操作数进行寻址,操作过程中, 指令会自动修改变址寄存器中的地址,以指向下一个 操作数。(4) 将BX,BP和SI,DI寄存器组合起来进行 间接寻址基址加变址的寻址。通常将BX和BP 称为基址寄存器,将SI和DI称为变址寄存器。EABX SIBP + DI +偏移量MOV AX,BX+SI设DS1000H,BX5000H,SI2000H,则 上面指令在执行时,有效地址为7000H,本指令 将17000H和17001H两单元的内容取到AX

10、中。MOV AX,BX+SI+0050;将BX和SI中的内容与0050相加作为有效地址【例5.1】设BX0158H,DI10A5H,位移 量1B57H,DS2100H,并假定没有使用段 前缀,即把DS作为操作数对应的段寄存器。 在各种寻址方式下,这些寄存器和位移量所产生的有 效地址和物理地址为: 直接寻址: 有效地址1B57H 物理地址21000H+1B57H22B57H 寄存器间接寻址(寄存器为BX): 有效地址0158H 物理地址21000H+0158H21158HBX寄存器相对间接寻址: 有效地址0158H+1B57H1CAFH 物理地址21000H+1CAFH22CAFH 变址寻址(寄

11、存器为DI): 有效地址10A5H 物理地址21000H+10A5H220A5H DI寄存器相对变址寻址: 有效地址10A5H+1B57H2BFCH 物理地址21000H+2BFCH23BFCH基址加变址的寻址(BX为基址寄存器,DI为变址 寄存器): 有效地址0158H+10A5H11FDH 物理地址21000H+11FDH221FDH 相对的基址加变址的寻址(BX为基址寄存器,DI 为变址寄存器): 有效地址0158H+10A5H+1B57H2D54H 物理地址21000H+2D54H23D54H8086指令分类8086指令系统按功能可分为4大类型:1. 数据传输类2. 数据操作类3. 串

12、操作类4. 控制类传送类指令 传送类指令是指令系统中最活跃的一类指令,也传送类指令是指令系统中最活跃的一类指令,也是条数最多的一类指令,主要用于数据的保存及交是条数最多的一类指令,主要用于数据的保存及交换等场合。换等场合。 通用传送指令中包括最基本的传送指令通用传送指令中包括最基本的传送指令MOVMOV,堆,堆栈指令栈指令PUSHPUSH和和POPPOP,数据交换指令,数据交换指令XCHGXCHG。一、数据传送指令数据传送指令又可以分成4种:1. 通用数据传送2. 累加器专用传送(输入/输出数据传送)3. 目的地址传送4. 标志寄存器转送5.2.1 通用数据传送指令MOV指令格式:MOV DS

13、T, SRC;源操作数和目的操作数可用上述6种寻址方式的 任何一种。 将源操作数内容复制到目操作数中,结果目的操 作数的内容等于源操作数的内容,源操作数的内 容不变。即OPRD2OPRD1。 OPRD1和OPRD2可以是字节或字, 但是必须 等长。 对标志位的影响:无源操作数可以是通用寄存器、段寄存器、存 储器以及立即操作数,目标操作数可以是通 用寄存器、段寄存器(CS除外)或存储器。未交叉未交叉 MOV reg,data ;立即数送寄存器 MOV mem,data ;立即数送存储单元 MOV mem/reg1,mem/reg2指令中两操作数中至少有一个为寄存器例: MOVCL,DLMOVAX

14、,BX MOVSI,CX MOVCL,BX+5 MOV segreg,mem/reg ; 存储单元/寄存器送段寄存器 MOV mem/reg,segreg ; 段寄存器送存储单元/寄存器 段寄存器CS、IP及立即数不能作为目标操作数; 两个存储单元之间不允许直接传送数据; 立即数不能直接传送到段寄存器; 两个段寄存器之间不能直接传送数据。 几个不能传送的解决办法:用AX作桥梁存储器存储器:MOV AX,MEM1MOV MEM2,AX 段寄存器段寄存器:MOV AX,DSMOV ES,AX 段寄存器立即数:MOV AX,DATAMOV DS,AX应用举例:将1000H开始的100个存储单元全部填

15、充为ASCII码2AH(*)。 程序段如下:MOV DI,1000HMOV CX,64HMOV AL,2AH AGAIN:MOV DI,ALINC DIDEC CXJNZ AGAINHLT写入写入2AH(*)2AH(*)后,数据段中相应存储单元的内容改后,数据段中相应存储单元的内容改 变如下:变如下:DS:1000DS:1000 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A DS:1010 DS:1010 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A DS:1020 DS:1020 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A DS:1030DS:1030 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号