3讲:8088寻址方式、指令系统.ppt_第1页
3讲:8088寻址方式、指令系统.ppt_第2页
3讲:8088寻址方式、指令系统.ppt_第3页
3讲:8088寻址方式、指令系统.ppt_第4页
3讲:8088寻址方式、指令系统.ppt_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

1、1,第三讲 8088寻址方式、指令系统,第二章 8088指令系统 6 种寻址方式 II. 6 类指令 2-1 8088/8086的寻址方式 指令包含: 操作码部分(opcode):指示 CPU执 行 什么操作,如:传送、加减。 操作数部分(operand):指明参加操作的 数或数的地址。,2,操作数的来源:,1.CPU中的REG。如:AX,BX等 2.内存(M)中: 1)CS段: 指令中直接给出操作数。 2)DS、SS、ES段:指令中给出操作数的地址 寻址方式:指寻找操作数的方式 ,共有六种。 指令格式: 助记符 目的操作数 , 源操作数 或:助记符 操作数 具体情况不同,寻址方式方便度不同。

2、,3,一、立即寻址,指令中直接给出操作数(在OPCODE后) 存放在CS段中。 例:MOV AX,Im MOV AL,06H 06H AL MOV AX,06H 06H AL 00 AH 注:高低字节对应 图2-1 立即寻址示意图,4,二、寄存器寻址,操作数在CPU的REG 例:MOV DS,AX MOV AL,BL 注:CS,IP慎用(不做目标操作数)。 三、直接寻址 指令中给出操作数的16位的EA地址。 例:MOV AX,2000H;EA=2000H 物理地址=DS:EA =DSx16+2000H,5,图2-2 直接寻址示意图,6,四、寄存器间接寻址,操作数的16位EA地址在SI、DI、B

3、P、BX四个REG的其中一个。 例:MOV AX,BP 物理地址=SS:EA=SSx16+BP MOV AX,SI 物理地址=DS:EA=DSx16+SI 注:BP指SS段;其余在DS段。,7,图2-3 寄存器间接寻址示意图,8,五、变址寻址,操作数的EA由REG(SI、DI、BX、BP)加上一个16位的偏移量构成。 例:MOV AX,COUNT SI COUNT+SI COUNT+SI EA=SI+COUNT 物理地址=DS:EA 或 =SS:EA (SI换成BP) SI、DI、BX对应数据段,BP对应堆栈段,9,图2-4 变址寻址示意图,10,六、基址加变址寻址,操作数的EA由基址REG(

4、BX、BP)和变址 REG(SI、DI)及16位偏移量构成。 例: MOV AX,MASKBXSI MASKBX+SI BX+SI+MASK EA=BX+SI+MASK 物理地址=DS:EA 或=SS:EA(BX换成BP),11,图2-5 基址加变址示意图,12,寻址方式小结:,2种基本方式: 操作数来自REG: 例 MOV AL,BL 操作数来自M: 例:1)MOV AX,2000 2) MOV AX,MASK+BX+SI 操作数在M时: BP意味着操作数在SS段; 立即寻址的操作数在CS段; 其余不特殊说明在DS段。 特殊说明(段超越):MOV AX,ES:2000H。 源和目的操作数都有

5、寻址方式,缺省指源。,13,汇编指令对应机器(目标)指令 例:MOV DS,AX 8E D8 (17字节) 了解指令在CPU内执行过程(图1-11)。 例:MOV AL,2000H 从(CSx16+IP)取OPCODE 队列 EU执行 从(DSx16+2000H)取数 AL,14,2-2 8088/8086指令系统,主要内容:8088指令系统、简单编程。 6大类: 1.数据传送 (Data transfer) 2.算术运算 (Arithmetic) 3.逻辑运算 (Logic) 4.串操作 (String manipulation) 5.控制转移 (Control transfer) 6.处理

6、器控制 (Processor control),15,一、数据传送指令,通用传送 地址传送 累加器专用传送 标志传送 (注意数的单双方向,及源、目的数) (一)通用传送 1.基本传送,16,指令格式: MOV OPRD1,OPRD2功能: OPRD2 OPRD1,OPRD2:源操作数,可以是全部寻址方式. OPRD1:目的操作数,不能是立即数和控制REG(F, IP,CS)。例:mov 30h,ax OPRD1和OPRD2不能同为M操作数. OPRD1为段REG(DS,CS,ES),则OPRD2 不能是立即操作数. 不影响F标志位. OPRD1和OPRD2可以是8位或16位.,17,例:正确指

7、令 MOV AL,2000H MOV DI,AX MOV DS,AX MOV DX,5020H MOV BL,20H MOV AX,BP+SI+4 MOV WORD PTR SI, 4050 注:PTR为属性运算符(伪指令),加“BYTE” 指字节单元;加“WORD”指字单元;加 “DWORD”指双字单元.,18,例:错误的指令:,MOV 52,AH MOV CS,AX MOV DI,SI MOV AL,BX MOV DS,1000H MOV BP,20H 例2-1 已知DS=3000H,从0100H开始顺序存放了100个字节数据,编程传送到0200H为起始的M区域.,19,;exm2-1 m

8、ov ax,3000h mov ds, ax ;建立数据段 mov si, 0100h ;建立源数据指针 mov di, 0200h ;建立目的地指针 mov cx, 100 ;设置计数器 nt: mov al, si ;取数 mov di, al ;送数 inc si ;调整指针 inc di dec cx ;计数器减1 jne nt ;CX-1不等于0转NT标号 int 20h ;返回DOS,20,2.堆栈操作,堆栈是一个按照后进先出原则组织的一段M区域. SS:0000 xx 栈底 SS:SP xx 栈顶 压栈指令:PUSH OPRD 功能:SP-1 SP;OPRDH (SP) SP-1

9、 SP;OPRDL (SP) 注:OPRD为16位;且不能是立即数和控制REG,21,例:AX=5060H;SP=0064H,PUSH AX的结果如下:,堆栈段: SS:0000H SP=0062H 60H 0063H 50H SP=0064H 注:高M地址对应高字节数据,22,(2) 出栈指令: POP OPRD,与PUSH相反:(SP) OPRDL; SP+1 SP (SP) OPRDH; SP+1 SP 在上题基础上,执行POP BX; BX=5060;SP=0064 例: PUSH AX PUSH BX . POP CX POP DX 相当于:AX DX ; BX CX. 注:OPRD的限制同PUSH,2

温馨提示

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

评论

0/150

提交评论