版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、信息科学与工程系信息科学与工程系1第三章第三章 指令系统指令系统 信息科学与工程系信息科学与工程系2指令系统指令系统本章主要介绍:本章主要介绍:8086微机系统的指令格式及其微机系统的指令格式及其寻址方式寻址方式各类指令各类指令(数据传送类、算术运算类、逻辑运算、(数据传送类、算术运算类、逻辑运算、字符串操作、程序控制类)字符串操作、程序控制类)X86高性能微处理器新增指令不作介绍高性能微处理器新增指令不作介绍信息科学与工程系信息科学与工程系3第一节第一节 指令格式与寻址方式指令格式与寻址方式 信息科学与工程系信息科学与工程系4基本概念基本概念微机工作过程中其内部信息有两类:微机工作过程中其内
2、部信息有两类:一类是控制信息(一类是控制信息(指令指令););一类是被加工处理的信息(一类是被加工处理的信息(数据数据)。)。指令:微机中的控制信息就是使计算机进行某种指令:微机中的控制信息就是使计算机进行某种操作的命令,这些命令就称为指令。操作的命令,这些命令就称为指令。指令系统:一台计算机所能执行的全部指令的集指令系统:一台计算机所能执行的全部指令的集合称为指令系统。不同的计算机其指令系统是不合称为指令系统。不同的计算机其指令系统是不同的。同的。信息科学与工程系信息科学与工程系5基本概念基本概念汇编语言指令或符号指令:用字母和其它一些符汇编语言指令或符号指令:用字母和其它一些符号组成的号组
3、成的“助记符助记符”与操作数等表示的指令称为与操作数等表示的指令称为汇编语言指令或符号指令。汇编语言指令或符号指令。例如:例如:MOV AX, BX ; AXBX 其二进制代码(机器代码)为其二进制代码(机器代码)为89D8H,就是就是1000 1001 1101 1000 B 不易理解,不易记忆。不易理解,不易记忆。汇编程序与汇编过程:把符号指令变成机器代码汇编程序与汇编过程:把符号指令变成机器代码的过程叫汇编,完成汇编任务的程序叫汇编程序。的过程叫汇编,完成汇编任务的程序叫汇编程序。信息科学与工程系信息科学与工程系6一、指令格式一、指令格式指令一般由两部分组成:指令一般由两部分组成:操作码
4、操作码与与地址码(操作数)地址码(操作数) 操作码规定操作的性质(即执行什么样的操作)操作码规定操作的性质(即执行什么样的操作) 地址码提供操作数地址或操作数本身。地址码提供操作数地址或操作数本身。还有多地址指令还有多地址指令微机中操作数的来源有以下三处:微机中操作数的来源有以下三处:1.操作数就含在操作数就含在指令指令中(码区中);中(码区中);2.操作数在操作数在CPU的的REG中;中;3.操作数在操作数在内存内存的数据区中的数据区中。QDQD1D2D3信息科学与工程系信息科学与工程系7二、寻址方式二、寻址方式 指令中关于如何求出操作数有效地址的方法称为指令中关于如何求出操作数有效地址的方
5、法称为寻址方式寻址方式。计算机按照指令给出的寻址方式求出操作数有效地址的过程,称计算机按照指令给出的寻址方式求出操作数有效地址的过程,称为寻址操作。在程序设计中,有时需要直接写出操作数本身,有为寻址操作。在程序设计中,有时需要直接写出操作数本身,有时希望给出操作数的地址,有时希望给出操作数所在地址的地址。时希望给出操作数的地址,有时希望给出操作数所在地址的地址。为了满足程序设计需要,为了满足程序设计需要,8086/8088给出了多种寻址方式,根据操给出了多种寻址方式,根据操作数的类型及来源大致分为三类:数据寻址、转移地址寻址、作数的类型及来源大致分为三类:数据寻址、转移地址寻址、I/O寻址。本
6、节讲解数据寻址方式,后两种分别见转移指令及寻址。本节讲解数据寻址方式,后两种分别见转移指令及I/O指令指令部分。部分。 8086/8088系列计算机有系列计算机有7种基本的数据寻址方式:种基本的数据寻址方式:立即寻址、立即寻址、寄存器寻址寄存器寻址、寄存器间接寻址寄存器间接寻址、直接寻址直接寻址、变址寻址变址寻址、基址加变基址加变址寻址址寻址。后面。后面4种寻址方式属于存储器寻址,用来确定操作数所在种寻址方式属于存储器寻址,用来确定操作数所在的存储单元的有效地址的存储单元的有效地址EA的计算方法。的计算方法。信息科学与工程系信息科学与工程系8二、寻址方式二、寻址方式1.立即寻址立即寻址 操作数
7、直接包含在指令中,操作码后紧跟着一个或两个字操作数直接包含在指令中,操作码后紧跟着一个或两个字节的操作数,又称为立即数(码区中)。节的操作数,又称为立即数(码区中)。例如:例如:MOV AL, 12H MOV AX, 1234H信息科学与工程系信息科学与工程系9二、寻址方式二、寻址方式2. 寄存器寻址寄存器寻址 操作数放在操作数放在CPU内部的内部的REG中,指令中给出寄存器名。中,指令中给出寄存器名。对于对于16位操作数,可以使位操作数,可以使AX,BX,CX,DX,SI,DI,SP,BP,CS,DS,SS,ES;对于;对于8位操作数,可以是位操作数,可以是AH,AL,BH,BL,CH,CL
8、,DH,DL。例如:例如:MOV DX, AX;DXAX.信息科学与工程系信息科学与工程系10二、寻址方式二、寻址方式3.寄存器间接寻址寄存器间接寻址 操作数是在操作数是在存储器存储器中,而不在中,而不在REG中,操作数地址的中,操作数地址的16位偏移量是在位偏移量是在REG中(即中(即SI,DI,BP,BX之一中)。分以下两种情况:之一中)。分以下两种情况: 若以若以SI、DI、BX间址,操作数在现行间址,操作数在现行数据段数据段区域中,操作数地址区域中,操作数地址为为DS左移左移4位加上位加上SI、DI、BX中之一的内容。中之一的内容。例如:例如:DS=2000H,SI=1500H, 执行
9、执行MOX AX, SI(间址用间址用 ) 则操作数地址为则操作数地址为21500H与与21501H。(若指令中指定是段超越的,则若指令中指定是段超越的,则SI、DI、BX之内容也可以与其它段之内容也可以与其它段REG相相加,形成操作数之地址。如加,形成操作数之地址。如 MOV AX, ES:SI 或或ES:MOV AX, SI 若若ES=2200H,SI=1500H, 则地址为则地址为23500H与与23501H)。)。信息科学与工程系信息科学与工程系11寄存器间接寻址示意图:寄存器间接寻址示意图:信息科学与工程系信息科学与工程系12 若以若以BP间址,则操作数在间址,则操作数在堆栈段堆栈段
10、区域内,操区域内,操作数地址为作数地址为SS左移左移4位加上位加上BP之内容。之内容。例如:例如:SS=1200H,BP=2200H, 执行执行MOV AX, BP 操作数地址为操作数地址为14200H与与14201H (允许段超越)允许段超越)寄存器间接寻址:寄存器间接寻址:信息科学与工程系信息科学与工程系13二、寻址方式二、寻址方式4. 直接寻址直接寻址 操作数地址的操作数地址的16位偏移量直接在指令中(存放于位偏移量直接在指令中(存放于码区),而操作数是在数据区中。(操作数地址为码区),而操作数是在数据区中。(操作数地址为DS左移左移4位加上该位加上该16位偏移量)位偏移量)例如:例如:
11、MOV AX, 2000H;2000H为为16位地址偏移量位地址偏移量 若若DS=1000H, 则操作数地址为则操作数地址为12000H12001H。 (允许段超越)允许段超越)信息科学与工程系信息科学与工程系14直接寻址示意图:直接寻址示意图:信息科学与工程系信息科学与工程系15二、寻址方式二、寻址方式5.变址寻址变址寻址 以以指定的指定的REG内容,加上指令中给定的内容,加上指令中给定的8位(或位(或16位)偏位)偏移量(必须要一个段移量(必须要一个段REG作基址),作为操作数之地址。作基址),作为操作数之地址。 作为变址寻址的作为变址寻址的REG是是SI、DI、BX、BP中任一个。中任一
12、个。 (三个内容相加(三个内容相加地址)地址)例如:例如:MOV AX, SI+60H 或或MOV AX, 60HSI; MOV BX, DI+18ABH 或或MOV BX, 18ABHDI 通常:通常:SI,DI,BX作变址作变址REG时时DS BP作变址时作变址时SS。 (允许段超越)允许段超越)信息科学与工程系信息科学与工程系16二、寻址方式二、寻址方式6.基址加变址寻址方式基址加变址寻址方式 通常把通常把BX和和BP作基址作基址REG,SI与与DI做变址做变址REG,把这两把这两种寻址结合起来形成一种新的寻址方式。种寻址结合起来形成一种新的寻址方式。 即即BX或或BP加上加上SI或或D
13、I再加上再加上8(or16)位偏移量,四个量)位偏移量,四个量相加。相加。例如:例如:MOV AX, BX+SI+1050H或或MOV AX, 1050HBXSI 若若BX=2500H,SI=1500H,偏移量偏移量1050H,DS=1000H,则操作数地址为则操作数地址为10000+2500+1500+1050=14A50H与与14A51H。正常情况下:由基址正常情况下:由基址REG决定哪个段决定哪个段REG作为地址基准作为地址基准 BXDS,BPSS。 (允许段超越)允许段超越)信息科学与工程系信息科学与工程系17三、指令的分类三、指令的分类 指令系统:一台计算机所能执行的全部指令的集合。
14、指令系统:一台计算机所能执行的全部指令的集合。 微处理器指令分类的方法有很多种,可以按其指令微处理器指令分类的方法有很多种,可以按其指令长短、寻址方式以及指令功能等进行分类。长短、寻址方式以及指令功能等进行分类。 按指令长短可分为按指令长短可分为单字节指令单字节指令、二字节指令二字节指令和和多字多字节指令节指令。 按寻址方式分类,有访问按寻址方式分类,有访问存储器存储器指令、访问指令、访问寄存器寄存器指令和访问指令和访问输入输入/输出端口输出端口指令等。指令等。 按功能分,有数据传送类、数据处理类、程序控制按功能分,有数据传送类、数据处理类、程序控制类、类、CPU控制类等等。控制类等等。信息科
15、学与工程系信息科学与工程系18三、指令的分类三、指令的分类 数据传送类指令数据传送类指令(只进行传送而不改变数值)(只进行传送而不改变数值) 这一类指令主要包括:寄存器之间传送指令、寄存器与存这一类指令主要包括:寄存器之间传送指令、寄存器与存储器之间传送指令、堆栈操作指令和输入储器之间传送指令、堆栈操作指令和输入/输出指令。输出指令。 数据加工处理类指令数据加工处理类指令 这类指令主要包括:算术运算指令、逻辑运算指令、移位这类指令主要包括:算术运算指令、逻辑运算指令、移位与循环指令和比较与位操作指令与循环指令和比较与位操作指令 程序控制类指令程序控制类指令(即转移控制类)(即转移控制类) 这类
16、指令包括:无条件转移指令、条件转移指令、子程序这类指令包括:无条件转移指令、条件转移指令、子程序调用与返回指令、中断及中断返回指令。调用与返回指令、中断及中断返回指令。 CPU控制类指令控制类指令 这类指令包括:标志或状态位控制指令、特权指令、暂停这类指令包括:标志或状态位控制指令、特权指令、暂停指令和空操作指令。指令和空操作指令。 其他指令其他指令信息科学与工程系信息科学与工程系19第二节第二节 数据传送类指令数据传送类指令 信息科学与工程系信息科学与工程系20数据传送类数据传送类指令类型指令类型指令功能指令功能指令书写格式指令书写格式通用数据传送通用数据传送字节或字传送字节或字传送字压入堆
17、栈字压入堆栈字弹出堆栈字弹出堆栈字节或字交换字节或字交换字节翻译字节翻译MOV d,sPUSH sPOP sXCHG d,sXLAT目标地址传送目标地址传送装入有效地址装入有效地址装入装入DS寄存器寄存器装入装入ES寄存器寄存器LEA d, sLDS d,sLES d,s标志位传送标志位传送将将FR低字节装入低字节装入AH寄存器寄存器将将AH内容装入内容装入FR低字节低字节将将FR内容压入堆栈内容压入堆栈从堆栈弹出从堆栈弹出FR内容内容LAHFSAHFPUSHFPOPFI/O数据传送数据传送输入字节或字输入字节或字输出字节或字输出字节或字IN 累加器,端口累加器,端口OUT 端口,累加器端口,
18、累加器信息科学与工程系信息科学与工程系21一、通用数据传送类指令一、通用数据传送类指令1. MOV d, s; d s 其中其中d为目的操作数,可以是存储器操作数,又为目的操作数,可以是存储器操作数,又可以是寄存器操作数;可以是寄存器操作数;s为源操作数,可以是寄存器为源操作数,可以是寄存器或内存操作数,也可以是立即数;或内存操作数,也可以是立即数; 注意:注意: d,s不能同时为内存操作数;不能同时为内存操作数; CS和和IP不能做目的操作数;不能做目的操作数; 所有的所有的MOV指令都不改变标志位。指令都不改变标志位。信息科学与工程系信息科学与工程系22一、通用数据传送类指令一、通用数据传
19、送类指令传送方向示意图传送方向示意图段段 寄寄 存存 器器CS,DS,SS,ES通用REGAX.DX,BP,SI,DI,SPMEM立即数立即数信息科学与工程系信息科学与工程系23一、通用数据传送类指令一、通用数据传送类指令使用使用MOV指令应注意以下几点:指令应注意以下几点:l 立即数无地址,故只能作为源操作数,不能作为立即数无地址,故只能作为源操作数,不能作为目的操作数目的操作数l CS只能作为源操作数,不能作为目的操作数只能作为源操作数,不能作为目的操作数 CPU中的寄存器除中的寄存器除IP外都可通过外都可通过MOV指令访问指令访问l 立即数不能直接传送到段寄存器,但可通过其他立即数不能直
20、接传送到段寄存器,但可通过其他寄存器或堆栈传送。寄存器或堆栈传送。l 段寄存器之间不能直接传送段寄存器之间不能直接传送l 两个内存单元之间不能直接传送。两个内存单元之间不能直接传送。信息科学与工程系信息科学与工程系24一、通用数据传送类指令一、通用数据传送类指令2. 堆栈操作指令堆栈操作指令 堆栈是一个按照后进先出原则组织的一段内存区堆栈是一个按照后进先出原则组织的一段内存区域,要由堆栈区域与域,要由堆栈区域与栈指针栈指针SP组成,堆栈主要用于子组成,堆栈主要用于子程序调用与中断服务处理程序。程序调用与中断服务处理程序。 堆栈指令分为压栈堆栈指令分为压栈PUSH和出栈和出栈POP指令。指令。信
21、息科学与工程系信息科学与工程系25一、通用数据传送类指令一、通用数据传送类指令 压栈指令压栈指令 PUSH reg/mem或或PUSH OPRD 操作如下:操作如下:SPSP-1 (栈操作都是栈操作都是16位)位) SP OPRDH SPSP-1 SP OPRDL例如例如 SP=2000H,SS=1000H,AX=1234H执行执行PUSH AX,则堆栈内容与则堆栈内容与SP如下:如下: SP=1FFEH3412SP1FFE 1FFF SP2000 M信息科学与工程系信息科学与工程系26一、通用数据传送类指令一、通用数据传送类指令出栈指令出栈指令 POP d 与与PUSH过程相反。过程相反。3
22、.交换指令交换指令 将源操作数和目的操作数(字节或字)相互对应交换位置将源操作数和目的操作数(字节或字)相互对应交换位置 XCHG d, s ; l可以在通用寄存器与累加器之间,通用寄存器之间进行交换可以在通用寄存器与累加器之间,通用寄存器之间进行交换l通用寄存器与存储器之间进行通用寄存器与存储器之间进行l存储单元之间不能交换存储单元之间不能交换l不能使用立即数不能使用立即数l段寄存器与段寄存器与IP不能作为一个源或目的操作数不能作为一个源或目的操作数信息科学与工程系信息科学与工程系27二、累加器专用传送指令二、累加器专用传送指令1.输入输入/输出指令输出指令IN,OUTl输入字节或字:输入字
23、节或字:IN 累加器,端口累加器,端口l输出字节或字:输出字节或字:OUT 端口,累加器端口,累加器 IN AL/AX, port IN AL/AX, DX OUT port, AL/AX OUT DX, AL/AX例如:有两个例如:有两个I/O端口分别为:端口分别为:80H和和120H,如何读如何读/写这两个端口?写这两个端口? 读读80H口:口: IN AL,80H; 写写80H口:口:OUT 80H,AL 读读120H口:口:MOV DX, 120H; IN AL, DX 写写120H口口: MOV DX, 120H; OUT DX, AL直接寻址直接寻址I/O指令:指令:寻址范围寻址范
24、围0255间接寻址间接寻址I/O指令:指令:寻址范围寻址范围065535信息科学与工程系信息科学与工程系28二、累加器专用传送指令二、累加器专用传送指令2.XLAT:表格查找指令:表格查找指令 通过查表来完成代码转换,用于实现字节翻译功能的指令。操作数是隐通过查表来完成代码转换,用于实现字节翻译功能的指令。操作数是隐含的,操作数地址为基址含的,操作数地址为基址+索引值。索引值。 使用指令前:使用指令前:BX寄存器指向表的首地址寄存器指向表的首地址 AL中存放待查的码,即某一项与表首地址的距离。中存放待查的码,即某一项与表首地址的距离。 XLAT;BX为表格起点,为表格起点,AL为索引值;为索引
25、值; 从从BX+AL中取一个字节送给中取一个字节送给AL。BX+0BX+1BX+2BX+ALXXYYZZ表格地址表格地址 内容内容DD信息科学与工程系信息科学与工程系29三、地址传送指令三、地址传送指令1.LEA reg, src ; src代表地址偏移量(代表地址偏移量(16位)位) 例如:例如:LEA BX, 2400H ; BX=2400H2.LDS reg, mem; (DW) 将将mem中的字装入到指定的中的字装入到指定的reg中,跟在内存单元字后面中,跟在内存单元字后面的的mem单元中的字装入到单元中的字装入到DS中。中。 若若DS=1000H,例如:例如:LDS SI, 20H
26、SI=1234H, DS=2000H3.LES reg, mem;(DW) 将上述指令的将上述指令的DS换为换为ES即可。即可。34120020SIDS10020H10021H10022H10023HM信息科学与工程系信息科学与工程系30四、标志传送指令四、标志传送指令1.LAHF(Load AH from Flags):将将FR中的低中的低8位送到位送到AH中中2.SAHF(Store AH into Flags) 与与LAHF相反,将相反,将AHFR中的低中的低8位。位。3.PUSHF 将将FR压入堆栈。压入堆栈。4.POPF 将堆栈顶内容弹出给将堆栈顶内容弹出给FR。 经常成对出现,用在
27、子程序和中断处理程序的首尾,用来保护和恢复经常成对出现,用在子程序和中断处理程序的首尾,用来保护和恢复主程序涉及的标志寄存器内容。主程序涉及的标志寄存器内容。SFZFAFPFCF AH FR信息科学与工程系信息科学与工程系31第三节第三节 算术运算指令算术运算指令 信息科学与工程系信息科学与工程系32一、加法指令(一、加法指令(ADD,ADC,INC)1.不带进位不带进位CF的加法指令的加法指令 ADD d, s; dd+s2.带进位的加法指令带进位的加法指令 ADC d, s; dd+s+CF ADD与与ADC影响标志位影响标志位SZAPCO(六个)(六个) 例如例如5879D1 SZAPC
28、O101101B3.加加1指令指令 INC d; (8位或位或16位位REG,MEM内容)内容) 注:段注:段REG内容不能加内容不能加1; 不改变不改变CF,只改变,只改变S,Z,A,P,O。 如如FF+01=00 SZAPCO=01110。信息科学与工程系信息科学与工程系33二、减法指令二、减法指令1.不带不带CF减法指令减法指令 SUB d, s ; dd - s。 (s可以是可以是REG、MEM或或Data)2.带带CF减法指令减法指令 SBB d, s ; dd-s-CF。 SUB与与SBB影响影响SZAPCO。3.减减1指令指令 DEC reg/mem;(B/W); reg/mem
29、reg/mem-1。4.求补指令求补指令 NEG reg/mem; reg/mem0-reg/mem 标志同减法标志同减法SUB。信息科学与工程系信息科学与工程系34二、减法指令(续)二、减法指令(续)5.比较指令比较指令 CMP d, s; d-s 不送回相减的结果,只影响标志位。不送回相减的结果,只影响标志位。 当两数当两数x,y为无符号数比较时,判断大小用为无符号数比较时,判断大小用CF标志:标志: 若若x-y,CF=0,xy; 若若x-y,CF=1,xy; SF=0,OF=0,则,则xy; 即若即若SF OF=0,则,则xy。 若若x-y后,后,SF=1,OF=0或或SF=0,OF=1
30、,即即:SF OF=1 则则xAL; 若为符号数,若为符号数,SF=1,OF=1,则,则SF OF=0 所以所以ALBL。信息科学与工程系信息科学与工程系36三、乘法指令三、乘法指令1.无符号数乘法无符号数乘法 MUL reg/mem;(;(B/W) 该指令只影响该指令只影响CF与与OF,当乘积的高一半为,当乘积的高一半为0,则,则OF=CF=0;否否则则CF=OF=1. 目的操作数目的操作数AX(AL)隐含着)隐含着Reg/memALAHAL8 8AXReg/memAXDX|AX信息科学与工程系信息科学与工程系37三、乘法指令(续)三、乘法指令(续)2.带符号数乘法带符号数乘法 IMUL r
31、eg/mem; 与与MUL相似,只是两操作数是符号数。相似,只是两操作数是符号数。 若若OF=CF=0,则表示,则表示AH或或DX中不是中不是00就是就是FF,积的符号,积的符号位扩展。位扩展。 若若OF=CF=1,表示,表示AH(orDX)内容是积的有效数字部分。)内容是积的有效数字部分。例如:例如:MOV AL, FBH | MOV AL, FBH MOV BH, 02H | MOV BH, 02H IMUL BH | MUL BH 则则AX=FFF6H, | 则则AH=01F6H,即即502 CF=OF=0,符号位扩展。符号位扩展。 | CF=OF=1(AH=01为有效位)。为有效位)。
32、信息科学与工程系信息科学与工程系38四、除法指令四、除法指令1.无符号数除法无符号数除法 DIV mem/reg DX|AX mem/reg (32位位16位)位)AXDX AXmem/reg (16位位8位)位) ALAH 标志标志ZSAPCO不确定。不确定。2.带符号数除法带符号数除法 IDIV mem/reg 商范围:商范围:8位:位: -128 +127 16位:位:-32768 +32767 若超出了这个范围,则会作为除数为若超出了这个范围,则会作为除数为0的情况来处理,即产的情况来处理,即产生一个生一个0号中断(不是按常规使号中断(不是按常规使OF=1)。)。 若若8位位8位,或位
33、,或1616时,被除数时,被除数AH与与DX做符号扩展。做符号扩展。 商商 余余信息科学与工程系信息科学与工程系39扩展指令扩展指令 CBW、CWD 将将AL之符号扩展到之符号扩展到AH中中 CBW 若若AL 80H,则,则CBW后,后,AH00; 若若AL80H,则,则CBW后,后,AHFFH; 不影响标志位。不影响标志位。 扩展扩展AX之符号到之符号到DX中中 CWD 若若AXB(不包括相等),(不包括相等),则转移。则转移。JNA/JBE disp; AB满足满足cc,小于(,小于(Below)CF=1,相等,相等ZF=1, cc为:为:CF=1,或者,或者 ZF=1信息科学与工程系信息
34、科学与工程系76二、条件转移指令(续)二、条件转移指令(续)2. 判断符号数的大小(判断符号数的大小(SF,OF,ZF组合)组合)JG/JNLE;AB满足满足cc,则转移;,则转移; 不等不等ZF=0,大于,大于SF OF=0,所以,所以cc为:为: SF OF=0并且并且ZF=0;JGE/JNC;AB,满足,满足cc,则转移;,则转移; cc为:为:SF OF=0或或ZF=1;信息科学与工程系信息科学与工程系77二、条件转移指令(续)二、条件转移指令(续)JL/JNGE disp;A DEBUG常用命令:常用命令:R (r) (Register) 显示各显示各REG的内容的内容AX,BX,C
35、X,DX,CS,DS,ES,SS,IP,SI,DI,BP,SP,FR。 有有13个个REG都显示具体的数字,只有都显示具体的数字,只有FR是用是用 字母表示的。字母表示的。信息科学与工程系信息科学与工程系95DEBUG命令与指令练习(调试程序命令与指令练习(调试程序DEBUG) FR: 当各标志都为当各标志都为1时,即时,即OF=DF=IF=SF=ZF=AF=PF=CF=1, 八个标志对应字母如下:八个标志对应字母如下: OV,DN,EI,NG,ZR,AC,PE,CY; 而各标志都为而各标志都为0时,即时,即 OF=DF=IF=SF=ZF=AF=PF=CF=0; 八个标志对应字母如下:八个标志
36、对应字母如下: NV,UP,DI,PL,NZ,NA,PO,NC。信息科学与工程系信息科学与工程系96各标志位的缩写与原文各标志位的缩写与原文 OV:overflow NV: non-overplow DN:down UP:up EI:enable interrupt DI:disable interrupt NG:negative PL:plus ZR:zero NZ:non-zero AC:accessory carry NA:non-accessory PE:parity even PO:parity odd CY:carry NC:non-carry 信息科学与工程系信息科学与工程系97
37、DEBUG命令与指令练习(调试程序命令与指令练习(调试程序DEBUG)T(Trap) 单步运行命令,每次执行一条指令,即单步运行命令,每次执行一条指令,即 IP=0100对应的一条指令;对应的一条指令;A 100 (Assemble 汇编命令)从汇编命令)从100H开始输入指开始输入指令,每输入一条回车,可退出;令,每输入一条回车,可退出;U 100(Unassemble 反汇编命令)反汇编命令) 从从100H开始开始把程序与指令(代码)显示出来;把程序与指令(代码)显示出来;D(Dump) 显示内存显示内存 D DS:100H 就是把数据段就是把数据段100H开始的内存内容显开始的内存内容显
38、示出来;示出来;信息科学与工程系信息科学与工程系98DEBUG命令与指令练习(调试程序命令与指令练习(调试程序DEBUG)E(Enter) 改变内存改变内存 E DS:100H 可把内存数据段可把内存数据段100H开始的内容按开始的内容按字节修改,修改第二个打空格键,不再修改打回字节修改,修改第二个打空格键,不再修改打回车。车。G(Go) 执行程序执行程序 G=起始地址起始地址断点地址断点地址 G=100H 108H;从;从100H开始执行,到开始执行,到108H停止,停止,一定要有终止地址;一定要有终止地址;L(Load) 装入内存(可装入文件名和扇区)装入内存(可装入文件名和扇区) L F
39、ilename 把文件装入;把文件装入;信息科学与工程系信息科学与工程系99DEBUG命令与指令练习(调试程序命令与指令练习(调试程序DEBUG)N(Name) 定义文件名定义文件名 Nd:pathfilename.ext N M 要写出文件名和扩展名;要写出文件名和扩展名;W(Write) 把文件或数据存盘把文件或数据存盘 W (要存盘的文件长度写入(要存盘的文件长度写入BX,CX中,文件名中,文件名用用N定义过;如果文件很短,定义过;如果文件很短,BX=0,用,用RCX修改修改CX值,值,CX=20););信息科学与工程系信息科学与工程系100DEBUG命令与指令练习(调试程序命令与指令练
40、习(调试程序DEBUG)P(Proceed) 在下条指令前停止在下条指令前停止 P=100,3 ;从从IP=100开始,执行完开始,执行完4条指令后停条指令后停止执行。止执行。Q(Quit) 结束结束DEBUG程序,退回程序,退回DOS。信息科学与工程系信息科学与工程系101本章作业本章作业9, 10,13,14, 15信息科学与工程系信息科学与工程系102第八节第八节 X86指令系统简介、指令系统简介、 信息科学与工程系信息科学与工程系103286指令简介指令简介286的通用的通用REG与段与段REG和和8086一样;一样;FR增加了增加了3个标志位,还增加了机器状态字个标志位,还增加了机器
41、状态字MSW;286有两种工作方式:实地址方式与虚地址方式;有两种工作方式:实地址方式与虚地址方式;286除了兼容除了兼容8086指令外,还增加了一些指令。指令外,还增加了一些指令。信息科学与工程系信息科学与工程系104286新增指令简介新增指令简介一、一、数据传送类指令数据传送类指令 PUSHA: 把通用把通用REG AX,BX,CX,DX,SP,BP, SI,DI顺序压入堆栈;顺序压入堆栈; POPA: 从堆栈顺序将从堆栈顺序将8个字弹出到个字弹出到DI , SI,BP,SP, DX, CX, BX, AX中;中; PUSH data: data为立即数,为立即数,data可为可为8位或位
42、或16位数。位数。信息科学与工程系信息科学与工程系105286新增指令简介新增指令简介二、串操作指令(二、串操作指令(I/O指令)指令) INS(INSB/INSW) 从从DX指定的端口中,输入字节或字串,并传送指定的端口中,输入字节或字串,并传送 到到ES:DI存储单元(读出);存储单元(读出); OUTS(OUTSB/OUTSW) 把字节或字串从把字节或字串从DS:SI指向的存储单元传送到由指向的存储单元传送到由 DX指定的端口输出(写入)。指定的端口输出(写入)。信息科学与工程系信息科学与工程系106286新增指令简介新增指令简介三、带计数的移位循环指令三、带计数的移位循环指令SHL/S
43、AL REG, countSHR/SAR REG, countROL/ROR REG, countRCL/RCR REG, count例如:例如: SHL AX, 06 SHR BX, 12信息科学与工程系信息科学与工程系107286新增指令简介新增指令简介四、插入与退出过程(控制转移指令)四、插入与退出过程(控制转移指令)ENTER dataL dataH, L ENTER 1256, 2 ;插入过程,为调入的子程序分插入过程,为调入的子程序分配堆栈容量和子程序嵌套层次;配堆栈容量和子程序嵌套层次;2.LEAVE 推出程序,释放所有子程序的堆栈空间推出程序,释放所有子程序的堆栈空间;3.检测
44、超出检查数组索引的边界范围的值,检查寄检测超出检查数组索引的边界范围的值,检查寄存器内之值是否在指定范围,如越界则产生中断。存器内之值是否在指定范围,如越界则产生中断。 BOUND AX, DWSI;AX需大于或等于需大于或等于MEM中中的第一个字,而小于或等于的第一个字,而小于或等于MEM中的第二个字。中的第二个字。 大于数大于数1,小于数,小于数2,两个字的存储器块所定义的,两个字的存储器块所定义的界限内。界限内。信息科学与工程系信息科学与工程系108286新增指令简介新增指令简介四、插入与退出过程(控制转移指令)(续)四、插入与退出过程(控制转移指令)(续)CLTS 清除任务切换标志(清
45、除机器状态字清除任务切换标志(清除机器状态字MSW中的任中的任务切换标志,务切换标志,TS=0)。)。信息科学与工程系信息科学与工程系109286新增指令简介新增指令简介五、保护控制类指令五、保护控制类指令LGDT/SGDT LGDT为装入全局描述表为装入全局描述表REG指令。其功能是从指令。其功能是从由源操作数指向的存储器连接由源操作数指向的存储器连接6个单元中取出内容装个单元中取出内容装入全局描述符表入全局描述符表REG中,存全局描述表中,存全局描述表REG。2. LIDT/SIDT 取中断描述表取中断描述表REG,将指令指定地址开始的,将指令指定地址开始的6个字个字节值装入节值装入ID;
46、存中断描述表;存中断描述表REG,将,将IDT内容存到指内容存到指令指定地址开始的令指定地址开始的6个字节中。个字节中。信息科学与工程系信息科学与工程系110286新增指令简介新增指令简介五、保护控制类指令(续)五、保护控制类指令(续)3. LLDT/SLDT 取、存局部描述表取、存局部描述表REG。信息科学与工程系信息科学与工程系111386新增指令简介新增指令简介1、数据传送类、数据传送类(1)扩展传送指令)扩展传送指令 MOVSX/MOVZX OPRD1, OPRD2 reg 16, reg 8 reg 16, mem 8 reg 32, reg 8 reg 32, mem 8 reg
47、32, reg 16 reg 32, mem 16 目的操作数必须是目的操作数必须是16位或位或32位的通用寄存器,源操作数可以是位的通用寄存器,源操作数可以是8位或位或16位位的寄存器操作数,且要求源操作数长度小于目的操作数的长度。的寄存器操作数,且要求源操作数长度小于目的操作数的长度。 MOVSX用于传送符号数,并将符号位扩展到目的操作数的所有位。用于传送符号数,并将符号位扩展到目的操作数的所有位。 MOVZX用于传送无符号数,并将用于传送无符号数,并将0扩展到目的操作数的所有位。扩展到目的操作数的所有位。例如:例如:MOVSX ECX, AL ;将将AL内容带符号扩展为内容带符号扩展为3
48、2位送入位送入ECX信息科学与工程系信息科学与工程系112386新增指令简介新增指令简介(2) 字节交换指令字节交换指令 BSWAP reg32 ;将将32位通用寄存器中的双字以字位通用寄存器中的双字以字节为单位进行高、低字节交换,改变双字存放方节为单位进行高、低字节交换,改变双字存放方式。指令执行时,字节式。指令执行时,字节0 (b0b7)与字节与字节3(b24b31)交交换,字节换,字节1与字节与字节2交换。交换。信息科学与工程系信息科学与工程系113386新增指令简介新增指令简介2、算术运算类、算术运算类(1)交换加法指令)交换加法指令 XADD OPRD1, OPRD2 将将OPRD1
49、(8位、位、16位、或位、或32位寄存器或存储单元)位寄存器或存储单元)中的目的操作数与中的目的操作数与OPRD2(8位、位、16位、或位、或32位寄位寄存器)的值相加,结果送入存器)的值相加,结果送入OPRD1, 并把并把OPRD1的原值存入的原值存入OPRD2。信息科学与工程系信息科学与工程系114386新增指令简介新增指令简介(2)比较并交换指令)比较并交换指令 CMPXCHG OPRD1, OPRD2 将存放在将存放在OPRD1(8、16、或、或32位)中的目的操作位)中的目的操作数与累加器数与累加器AL,AX,EAX的内容进行比较,若的内容进行比较,若相等,则相等,则ZF=1,并将源
50、操作数,并将源操作数OPRD2送入送入OPRD1;否则;否则ZF=0,并将,并将OPRD1送到相应的累送到相应的累加器。加器。信息科学与工程系信息科学与工程系115386新增指令简介新增指令简介3、逻辑运算与移位指令、逻辑运算与移位指令双精度左移双精度左移/右移指令右移指令SHLD/SHRD OPRD1,OPRD2, OPRD3 reg, reg, imm8 mem, reg, imm8 reg, reg, CL mem, reg, CL 该指令将该指令将OPRD1和和OPRD2两个两个16位或位或32位操作数连接成双精度值(位操作数连接成双精度值(32位或位或64位),然后向左或向右移位,移
51、位位数由位),然后向左或向右移位,移位位数由OPRD3决定(决定(CL或立或立即数)。移位时,即数)。移位时,OPRD2的内容移入的内容移入OPRD1, 而而OPRD2本身不变。进位本身不变。进位CF中的值为中的值为OPRD1移出的最后一位。移出的最后一位。 操作示意图如下:操作示意图如下:信息科学与工程系信息科学与工程系116386新增指令简介新增指令简介OPRD1(目的)(目的)OPRD2(源)(源)CF 31 0 31 0OPRD2(源)(源)OPRD1(目的)(目的)CFSHLDSHRD 31 0 31 0信息科学与工程系信息科学与工程系117386新增指令简介新增指令简介4、位操作类、位操作类 (1)测试与置位指令)测试与置位指令 BT/BTC/BTS/BTR OPRD1, OPRD2共性:对由共性:对由OPRD2指定的目的操作数指定的目的操作数OPRD1(16或或32位)中的某一位进行位)中的某一位进行 测试操作并送入测试操作并送入CF, 然后将该位按操作规定置然后将该位按操作规定置1、置、置0或变反。或变反。 BT 指令只完成上述位测试并将该位送入指令只完成上述位测试并将该位送入CF。 如:如:MOV CX,7 BT BX ,CX ;检查由检查由BX指向的数的指向的数的b7位,并将位,并将b7位送入位送入CF。 JC NEXT
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 基于UAHP-TOPSIS法的市政道路工程多项目管理绩效评价研究
- 山西古塔营建规律与特征研究-基于空间、历史和营建者的考察
- 基于多算法融合的TBM掘进参数和围岩等级预测研究
- 客户满意度管理制度
- 薪酬绩效管理制度
- 2026海南琼海市劳动人事争议仲裁院公益性岗位招聘1人笔试备考试题及答案解析
- 2026东营金融街物业管理有限公司招聘工作人员(8名)考试模拟试题及答案解析
- 2026福建福州榕发物业发展有限公司权属企业福州永欣顺物业服务有限公司社会招聘16人考试模拟试题及答案解析
- 铝塑板装饰墙面施工工艺及方法
- 2026浙江舟山市青少年活动中心编外教师招聘1人笔试备考题库及答案解析
- 领导干部离任交接表
- 主题三 我的毕业季(教学设计)辽师大版六年级下册综合实践活动
- 从苦难中开出永不凋谢的花 -《春望》《石壕吏》《茅屋为秋风所破歌》群诗整合教学
- JBT 9229-2024 剪叉式升降工作平台(正式版)
- GJB9001C质量保证大纲
- 陕22N1 供暖工程标准图集
- 车用时间敏感网络通讯芯片功能和性能要求
- 《童年》读书分享PPT
- 【论网络暴力行为的刑法规制7000字】
- 集成电路先进封装材料PPT全套教学课件
- 山西沁水盆地柿庄南区块煤层气资源开发利用与矿区生态保护修复方案
评论
0/150
提交评论