江苏计算机三级偏软00002

上传人:飞*** 文档编号:51912304 上传时间:2018-08-17 格式:PPT 页数:117 大小:395KB
返回 下载 相关 举报
江苏计算机三级偏软00002_第1页
第1页 / 共117页
江苏计算机三级偏软00002_第2页
第2页 / 共117页
江苏计算机三级偏软00002_第3页
第3页 / 共117页
江苏计算机三级偏软00002_第4页
第4页 / 共117页
江苏计算机三级偏软00002_第5页
第5页 / 共117页
点击查看更多>>
资源描述

《江苏计算机三级偏软00002》由会员分享,可在线阅读,更多相关《江苏计算机三级偏软00002(117页珍藏版)》请在金锄头文库上搜索。

1、第二章 8086的指令系统封面1第二章 8086的指令系统第二章8086指令系统目录第二章 8086的指令系统概 述2.1 数据传送类指令2.2 算术运算类指令2.3 位操作类指令2.4 控制转移类指令2.5 串操作类指令2.6 处理机控制类指令要点与习题分析2第二章 8086的指令系统概述概 述 8086的指令系统按功能分类可以分成六组,本章分类 逐条讲解。 在汇编语言中,指令的一般格式为 标号:指令助记符 目的操作数,源操作数:注释其中 括弧括起的部分不是必需的,为可选项。“标号”在第 三章详细介绍。 后面讲解指令时,除前一章介绍的符号外,本书用AX ,BX形式表示寄存器的内容。 学习一条

2、指令应掌握的内容:指令的功能 操作数的 寻址方式 指令对标志的影响 避免非法指令返回第二章3第二章 8086的指令系统2.1节 目录 2.1.1-2.1.5(传送)2.1 数据传送指令2.1.1 通用数据传送指令MOV/XCHG/XLAT2.1.2 堆栈操作指令PUSH/POP2.1.3 标志传送指令LAHF/SAHF/PUSHF/POPF2.1.4 地址传送指令LEA/LDS/LES2.1.5 输入输出指令IN/OUT返回第二章4第二章 8086的指令系统2.1.1 目录:132.1.1 通用数据传送指令1.MOV类指令lMOV reg/mem,imm;lMOV seg/reg/mem,re

3、g;lMOV seg/reg,mem;lMOV reg/mem,seg2.交换指令XCHG3.换码指令XLAT2.1节 目录5第二章 8086的指令系统2.1.1-1 mov类例11.MOV 类指令格式1:MOV reg/mem,immMOV AX,2050H / MOV CL,58H MOV BYTE PTR BX,55H/MOV WORD PTR BX,55HMOV BYTE PTR SI+05,55HMOV BYTI PTR BP+DI,55HMOV BYTE PTR BX+DI+2000H,55HMOV BYTE PTR 4050H,55H MOV 55H,AL MOV DH,385

4、MOV BX,55H MOV BX,55H MOV DS,2000HMOV BYTE PTRBX,55HMOV WORD PTRBX,55H6第二章 8086的指令系统mov类例2格式2: MOV seg/reg/mem,regMOV DS,AX/MOV ES,AX/MOV SS,AXMOV AX,BX /MOV SP,AX /MOV DH,CL/MOV AL,BHMOV 2050H,AX / MOV 2050H,BLMOV BX+SI+2000H,DX / MOV 2005HBPDI,CLMOV DS,AL / MOV CS,AXMOV DL,AX / MOV BX,CL / MOV SI,

5、CH / MOV BL,DICS不能做目的操作数7第二章 8086的指令系统mov类例3格式3: MOV seg/reg,memMOV DS,BX / MOV ES,BP+SI+25HMOV AX,2050H / MOV AL,2050H注意:MOV mem,mem 形式的指令是非法指令,也就是 说,如果一条指令有两个操作数,不允许两个操作数都 是存储器数,如下列指令为非法指令:MOV BX,2050H / MOV 2050H,BX+SI该项规定不仅适用于“MOV”类指令,也适用于其他 各类指令(串操作除外)。记住: CS不能作 目 的 操 作 数8第二章 8086的指令系统mov类例4(EN

6、D)格式4:MOV reg/mem,segMOV AX,DS / MOV BX,ES / MOV AX,CSMOV SI,DS / MOV BX+SI,CS “MOV”类指令小结:立即数只能作源操作数,且要与目的操作数匹配。两个操作数类型要匹配。如汇编程序无法确定操作类型,要加类型说明符。CS一般不能作目的操作数(用转移指令改变)。如果指令有两个操作数,不允许两个都是存储器数 。上述四类格式以外的指令必定是非法指令。所有“MOV”类指令均不影响标志。CS可以作源操作数返回2.1.1MOV BX,2050H9第二章 8086的指令系统2.1.1-2. xchg -3.XLAT2.交换指令XCHG

7、指令格式:XCHG reg/mem ,reg/mem;将操作数格式“mem,mem” 排除在外!例:XCHG AX,BX / XCHG DH,CLXCHG CX,2000H / XCHG BX+SI,AL 交换指令不影响标志。3.换码指令XLAT指令格式:XLAT ;ALDS16+BX+AL 该指令的操作数是隐含的(AL),且寻址方式 可理解为寄存器相对寻址,偏移量在AL中。 该指令又称“查表指令”,通常用于编写查表 程序。 换码指令不影响标志。10第二章 8086的指令系统查表示意图(end) 16 09 04 01 00 25查表步骤(求某数的平方) 在内存中建立数据表格; 将表格的首地址

8、送入BX中; 假定要求“3”的平方,将3送入寄存器AL中; 执行指令 XLAT; 执行:ALBX+3(DS)执行结束:AL= 9。ALAL中的内容被中的内容被“换码换码”!表格首地址查表示意图2.1节 目录H11第二章 8086的指令系统2.1.2堆栈操作指令(1)2.1.2 堆栈操作指令能够实现“后进先出(先进后出)的存储器组织(或 存储器块)称为堆栈。引入堆栈:以三层子程序嵌套为例,逐级进入子程 序时,A、B、C三点都有断点和现场需要保护,顺序为 ABC;当子程序sub3执行结束,逐级返回时,ABCmainsub1sub2sub3最后被保护的C点数据应 最先恢复,最先保护的A 点数据应最后

9、恢复。为此 ,通常在内存中开辟一段 区域,结合软硬件技术, 使其具有保护数据和后进 先出的功能。此为堆栈。12第二章 8086的指令系统堆栈操作指令(2)8086堆栈管理:8086使用段寄存器SS和指针寄 存器SP管理堆栈,SS决定了堆栈区的首地址,SP的初始SS:0000HSS:SP堆栈区值决定了堆栈区的末地址,堆 栈区的最大长度随之而定。数 据入栈时,SP做减量调整,SP 指示的单元称为“栈顶”,即栈 顶向下延伸;SP永远指向刚刚 入栈的数据。数据出栈时,SP 做增量调整,即栈顶向上延伸 SP永远指向将要出栈的数据。数据入栈数据出栈入栈的数据全部出 完,SP恢复初始值 。 13第二章 80

10、86的指令系统堆栈操作指令(3)1.PUSH r16/m16/seg;“r16/m16/seg”作为源操作数, 堆栈中的存储单元作为目的操作数,指令操作如下:SPSP-1,SS:SPsrc高8位SPSP-1,SS:SPsrc低8位例1:PUSH BX;(设DS:BX字单元数据为55AAH)x x Hx x Hx x HA A H5 5 Hx x HSS:SP指令执行前指令执行后SS:SP14第二章 8086的指令系统堆栈操作指令(4)2.POP r16/m16/seg;“r16/m16/seg”应看作目的操作数,堆栈中的单元看作源操作数,指令操作如下: dest低8位SS:SP,SP SP+1

11、 dest高8位SS:SP,SP SP+1例2:POP BX;设接在例1后执行。A A H5 5 Hx x HSS:SP指令执行前A A H5 5 Hx x HSS:SP指令执行后55AAH BX15第二章 8086的指令系统堆栈操作指令(5)(END)使用堆栈指令:堆栈操作是字操作指令,不要写出“PUSH AL”等。在“POP”指令中,“POP CS”为非法指令。堆栈中的数据弹出后,数据并没有在堆栈中消失,除非压入新数据,画图时注意。堆栈操作指令不影响标志。使用堆栈指令保护和恢复现场时,要注意指令的排列顺序,如:PUSH AX PUSH BX PUSH DSPOP DS POP BX POP

12、 AX2.1节 目录16第二章 8086的指令系统2.1.3标志传送指令(1)2.1.3 标志传送指令1.标志寄存器传送 LAHF ;AH标志寄存器低8位,即SF/ZF/AF;PF/CF送AH相应位,不影响标志。 SAHF ;标志寄存器低8位 AH,该条指令影;响前五个标志。 PUSHF ;标志寄存器入栈,不影响标志。 POPF ;标志寄存器SS:SP,SPSP+2;该指令影响标志。17第二章 8086的指令系统标志传送指令(2)(end)2.标志位操作 (1)CF标志 CLC ;CF0 STC ;CF1 CMC ;CFCF(2)DF标志(串操作指令使用) CLD ;DF0 STD ;DF1(

13、3)IF标志(控制可屏蔽中断能否被响应) CLI ;IF0 STI ;IF1注释:对其他标志没有提供直接修改的指令,但是 如果必要,可以用前述的四条标志传送指令结合逻辑运 算指令进行修改。2.1节 目录18第二章 8086的指令系统2.1.4地址传送指令(1)2.1.4 地址传送指令1.有效地址传送指令LEALEA r16,mem ;r16mem所指单元的偏移地址例:设BX=0400H,SI=003CHLEA BP,2050h;执行后 BP=2050HLEA BP,SI;执行后 BP=003CHLEA BX,BX+SI;执行后 BX=043CHLEA BX,BX+SI+0F62H;执行后 BX

14、=139EH 备注:指令中“r16”常用的寄存器是BX、BP、SI、DI。 一般不使用其他寄存器。指令中源操作数常用的是变量名,而不是上面 例子中例举的形式,如:LEA BX,WORD_VAR。所以,本 条指令常被描述为“取变量的偏移地址”,属常用指令 。19第二章 8086的指令系统地址传送指令(2)2.指针传送指令LDSLDS r16,mem ;r16mem,DSmem+2操作:按mem规定的寻址方式计算某单元物理地址 。按计算出的物理地址做双字操作,即前一个字(偏 移指针)送r16,高位字(段指针)送DS。例:设DS=400H,BX=100H,SI=200H,04300=2050H,04

15、302H=0500HLDS SI,BX+SI执行后DS=0500H,SI=2050H示意图: LDS SI,BX+SI0 5 H0 0 H2 0 H5 0 H04000H 0100H 0200H+ 04300HDSx16 BX SI 04300HDSSI20第二章 8086的指令系统地址传送指令(3)(end) 3.指针传送指令LESLES r16,mem ;r16mem,ESmem+2 操作解释:基本与“LDS”指令相同,不同的是把段寄存 器 DS换成ES。其他问题:“LEA”指令的作用为取偏移地址, 要 注意与“MOV”指令区别:设SI=2050H,DS:2050H(DS:SI)=55AAH 则“LEA BX,SI”执行后,BX=“MOV BX,SI”执行后,BX=“LDS”的r16常用SI; “LES”中,r16常用DI 。地址传送指令不影响标志。 2050H 55AAH2.1节 目录21第二章 8086的指令系统2.1.5输入输出指令(1)2.1.5 输入输出指令1.输入指令 vIN AL

展开阅读全文
相关资源
相关搜索

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

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