003第三章8086指系统.ppt





《003第三章8086指系统.ppt》由会员分享,可在线阅读,更多相关《003第三章8086指系统.ppt(196页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第章8086指令系统 本章内容本章内容8088/8086的指令格式的指令格式8088/8086的寻址方式的寻址方式8088/8086的基本指令的基本指令3.1 概述概述从从8088/8086的指令格式入手,学习的指令格式入手,学习:立即数寻址方式立即数寻址方式寄存器寻址方式寄存器寻址方式存储器寻址方式存储器寻址方式进而熟悉进而熟悉8088/8086汇编语言指令格式,尤其汇编语言指令格式,尤其是其中操作数的表达方法是其中操作数的表达方法为展开为展开8088/8086指令系统做好准备指令系统做好准备3.1.1 指令的组成指令的组成操作码操作码说明计算机要执行哪种操作,如传送、运算、说明计算机要执行
2、哪种操作,如传送、运算、移位、跳转等操作,它是指令中不可缺少的组成部移位、跳转等操作,它是指令中不可缺少的组成部分分操作数操作数是指令执行的参与者,即各种操作的对象是指令执行的参与者,即各种操作的对象有些指令不需要操作数,通常的指令都有一个或两有些指令不需要操作数,通常的指令都有一个或两个操作数,也有个别指令有个操作数,也有个别指令有3个甚至个甚至4个操作数个操作数操作码操作码操作数操作数指令由操作码和操作数两部分组成指令由操作码和操作数两部分组成3.1.2 指令的助记符格式指令的助记符格式操作数操作数2 2,常被称为源操作数,常被称为源操作数srcsrc,它表示参与指它表示参与指令操作的一个
3、对象令操作的一个对象操作数操作数1 1,常被称为目的操作数,常被称为目的操作数destdest,它不仅可以它不仅可以作为指令操作的一个对象,还可以用来存放指令作为指令操作的一个对象,还可以用来存放指令操作的结果操作的结果分号后的内容是对指令的解释分号后的内容是对指令的解释 操作码操作码 操作数操作数1,操作数操作数2 ;注释注释汇编语句格式汇编语句格式3.1.3 指令的操作码和操作数指令的操作码和操作数每种指令的每种指令的操作码操作码:用一个助记符表示(指令功能的英文缩写)用一个助记符表示(指令功能的英文缩写)对应着机器指令的一个或多个二进制编码对应着机器指令的一个或多个二进制编码指令中的指令
4、中的操作数操作数:可以是一个具体的数值可以是一个具体的数值可以是存放数据的寄存器可以是存放数据的寄存器或指明数据在主存位置的存储器地址或指明数据在主存位置的存储器地址3.2 操作数的寻址方式操作数的寻址方式指令系统设计了多种操作数的来源指令系统设计了多种操作数的来源寻找操作数的过程就是操作数的寻址寻找操作数的过程就是操作数的寻址寻找操作数的方式叫做(操作数)寻址方式寻找操作数的方式叫做(操作数)寻址方式理解操作数的寻址方式是理解指令功能的前提理解操作数的寻址方式是理解指令功能的前提操作数采取哪一种寻址方式操作数采取哪一种寻址方式一方面,会影响处理器执行指令的速度和效率一方面,会影响处理器执行指
5、令的速度和效率另一方面,另一方面,对程序设计也很重要对程序设计也很重要MOV指令指令3.2.1 立即数寻址方式立即数寻址方式指令中的操作数直接存放在机器代码中,紧跟在操作指令中的操作数直接存放在机器代码中,紧跟在操作码之后(操作数作为指令的一部分存放在操作码之后码之后(操作数作为指令的一部分存放在操作码之后的主存单元中)的主存单元中)这种操作数被称为这种操作数被称为立即数立即数imm可以是可以是8位数值位数值i8(00HFFH)也可以是也可以是16位数值位数值i16(0000HFFFFH)立即数寻址方式常用来给寄存器和存储单元赋值,多立即数寻址方式常用来给寄存器和存储单元赋值,多以常量形式出现
6、以常量形式出现演示演示演示演示MOV AX,0102H;AX0102H3.2.2 寄存器寻址方式寄存器寻址方式操作数存放在操作数存放在CPU的内部寄存器的内部寄存器reg中:中:8位寄存器位寄存器r8:AH、AL、BH、BL、CH、CL、DH、DL16位寄存器位寄存器r16:AX、BX、CX、DX、SI、DI、BP、SP4个段寄存器个段寄存器seg:CS、DS、SS、ES寄存器名表示其内容(操作数)寄存器名表示其内容(操作数)演示演示演示演示MOV AX,BX;AXBX3.2.3 存储器寻址方式存储器寻址方式操作数在主存储器中,用主存地址表示操作数在主存储器中,用主存地址表示程序设计时,程序设
7、计时,8088采用逻辑地址表示主存地址采用逻辑地址表示主存地址段地址在默认的或用段超越前缀指定的段寄存器中段地址在默认的或用段超越前缀指定的段寄存器中指令中只需给出操作数的偏移地址(指令中只需给出操作数的偏移地址(有效地址有效地址EA)8086设计了多种设计了多种存储器寻址方式存储器寻址方式1、直接寻址方式、直接寻址方式2、寄存器间接寻址方式、寄存器间接寻址方式3、寄存器相对寻址方式、寄存器相对寻址方式4、基址变址寻址方式、基址变址寻址方式5、相对基址变址寻址方式、相对基址变址寻址方式3.2.3 1.直接寻址方式直接寻址方式直接寻址方式的有效地址在指令中直接给出直接寻址方式的有效地址在指令中直
8、接给出默认的默认的段地址在段地址在DS段寄存器,可使用段寄存器,可使用段超越前缀段超越前缀改改变变用中括号包含有效地址,表达存储单元的内容用中括号包含有效地址,表达存储单元的内容演示演示演示演示MOV AX,2000H;AXDS:2000HMOV AX,ES:2000H;AXES:2000H3.2.3 2.寄存器间接寻址方式寄存器间接寻址方式有效地址存放在基址寄存器有效地址存放在基址寄存器BX、BP或变址或变址寄存器寄存器SI、DI中中默认的默认的段地址在段地址在DS段寄存器,可使用段超越段寄存器,可使用段超越前缀改变前缀改变演示演示演示演示MOV AX,BX;AXDS:BX3.2.3 3.寄
9、存器相对寻址方式寄存器相对寻址方式有效地址有效地址是寄存器内容与有符号是寄存器内容与有符号8位或位或16位位移量之位位移量之和,寄存器可以是和,寄存器可以是BX、BP或或SI、DI有效地址有效地址BX/BP/SI/DIBX/BP/SI/DI8/168/16位位移量位位移量段地址对应段地址对应BX/SI/DI寄存器寄存器默认是默认是DS,对应对应BP寄存寄存器器默认是默认是SS;可用段超越前缀改变可用段超越前缀改变演示演示演示演示MOV AX,SI+06H;AXDS:SI+06HMOV AX,06HSI;AXDS:SI+06H3.2.3 4.基址变址寻址方式基址变址寻址方式有效地址有效地址由基址
10、寄存器(由基址寄存器(BX或或BP)的内容加上变址的内容加上变址寄存器(寄存器(SI或或DI)的内容构成:的内容构成:有效地址有效地址BX/BPSI/DI段地址对应段地址对应BX基址寄存器基址寄存器默认是默认是DS,对应对应BP基址寄基址寄存器存器默认是默认是SS;可用段超越前缀改变可用段超越前缀改变演示演示演示演示MOV AX,BX+SI;AXDS:BX+SIMOV AX,BXSI;AXDS:BX+SI3.2.3 5.相对基址变址寻址方式相对基址变址寻址方式有效地址有效地址是基址寄存器(是基址寄存器(BX/BP)、)、变址寄存器变址寄存器(SI/DI)与一个与一个8位或位或16位位移量之和:
11、位位移量之和:有效地址有效地址BX/BPSI/DI8/16位位移量位位移量段地址对应段地址对应BX基址寄存器基址寄存器默认是默认是DS,对应对应BP基址寄基址寄存器存器默认是默认是SS;可用段超越前缀改变可用段超越前缀改变演示演示演示演示MOV AX,BX+DI+6;AXDS:BX+DI+6MOV AX,6BX+DIMOV AX,6BXDI3.2.4 操作数的表达符号(操作数的表达符号(1)操作数符号操作数符号含含义义(寻寻址方式址方式)i8一个一个8位立即数位立即数i16一个一个16位立即数位立即数imm代表代表i8或或i16r8任意一个任意一个8位通用寄存器位通用寄存器AH,AL,BH,B
12、L,CH,CL,DH,DLr16任意一个任意一个16位通用寄存器位通用寄存器AX,BX,CX,DX,SI,DI,BP,SPreg代表代表r8或或r16seg段寄存器段寄存器CS、DS、ES、SS3.2.4 操作数的表达符号(操作数的表达符号(2)操作数符号操作数符号含含义义(寻寻址方式)址方式)m8一个一个8位存位存储储器操作数器操作数单单元(包括所有主存元(包括所有主存寻寻址方式)址方式)m16一个一个16位存位存储储器操作数器操作数单单元(包括所有主存元(包括所有主存寻寻址方式)址方式)mem代表代表m8或或m16dest目的操作数目的操作数src源操作数源操作数作业作业教材教材99页页第
13、第3.1题题 第第3.2题题 第第3.3题题 3.3 8086/8088指令系统指令系统数据传送是计算机中最基本、最重要的一种操数据传送是计算机中最基本、最重要的一种操作作,传送指令也是最常使用的一类指令传送指令也是最常使用的一类指令传送指令把数据从一个位置传送到另一个位置传送指令把数据从一个位置传送到另一个位置除标志寄存器传送指令外,均不影响标志位除标志寄存器传送指令外,均不影响标志位重点掌握重点掌握MOV XCHG XLAT PUSH POP LEA3.3.1 数据传送类指令数据传送类指令提供方便灵活的通用传送操作提供方便灵活的通用传送操作有有3条指令条指令MOVXCHGXLAT3.3.1
14、.1 通用数据传送指令通用数据传送指令MOVMOVXCHGXCHGXLATXLAT1.传送指令传送指令MOV(move)把一个字节或字的操作数从源地址传送至目的把一个字节或字的操作数从源地址传送至目的地址地址MOV MOV reg/mem,immreg/mem,imm;立即数送寄存器或主存立即数送寄存器或主存MOV MOV reg/mem/seg,regreg/mem/seg,reg;寄存器送(段)寄存器或主存寄存器送(段)寄存器或主存MOV MOV reg/seg,memreg/seg,mem;主存送(段)寄存器主存送(段)寄存器MOV MOV reg/mem,segreg/mem,seg;
15、段寄存器送寄存器或主存段寄存器送寄存器或主存演示演示(1)、)、MOV指令指令立即数传送立即数传送mov cl,4;cl4cl4,字节传送字节传送mov dx,0ffh;dx00ffhdx00ffh,字传送字传送mov si,200h;si0200hsi0200h,字传送字传送mov bvar,0ah;字节传送字节传送;假设;假设bvarbvar是一个字节变量,定义如下:是一个字节变量,定义如下:bvarbvar dbdb 0 0mov wvar,0bh;字传送字传送;假设;假设wvarwvar是一个字变量,定义如下:是一个字变量,定义如下:wvarwvar dwdw 0 0明确指令是字节操作
16、还是字操作明确指令是字节操作还是字操作以字母开头的常数要有前导以字母开头的常数要有前导以字母开头的常数要有前导以字母开头的常数要有前导0 0 0 0(2)、)、MOV指令指令寄存器传送寄存器传送mov ah,al;ahal,字节传送字节传送mov bvar,ch;bvarch,字节传送字节传送mov ax,bx;axbx,字传送字传送mov ds,ax;dsax,字传送字传送 寄存器具有明确的字节和字类型寄存器具有明确的字节和字类型(3)、)、MOV指令存储器传送指令存储器传送mov al,bx;alds:bxmov dx,bp;dxss:bp+0mov dx,bp+4;dxss:bp+4mo
17、v es,si;esds:si 不存在存储器向存储器的传送指令不存在存储器向存储器的传送指令(4)、)、MOV指令段寄存器传送指令段寄存器传送mov ax,ds;axdsmov es,ax;esaxds 对段寄存器的操作不灵活对段寄存器的操作不灵活(5)、)、MOV指令传送功能图解指令传送功能图解立即数立即数段寄存器段寄存器CSCS DS ES SS DS ES SS通用寄存器通用寄存器AX BX CX DXAX BX CX DXBP SP SI DIBP SP SI DI存存储储器器MOVMOV指令并非任意传送指令并非任意传送指令并非任意传送指令并非任意传送!非法指令的主要现象:非法指令的主
18、要现象:两个操作数的类型不一致两个操作数的类型不一致无法确定是字节量还是字量操作无法确定是字节量还是字量操作两个操作数都是存储器两个操作数都是存储器段寄存器段寄存器CS作为目标操作数作为目标操作数*非法指令非法指令两个操作数类型不一致两个操作数类型不一致在绝大多数双操作数指令中,目的操作数和源操作数在绝大多数双操作数指令中,目的操作数和源操作数必须具有一致的数据类型,或者同为字量,或者同为必须具有一致的数据类型,或者同为字量,或者同为字节量,否则为非法指令字节量,否则为非法指令MOV AL,050AH;非法指令,非法指令,修正:修正:;mov ax,050ahMOV SI,DL;非法指令,非法
19、指令,修正:修正:;mov dh,0;mov si,dx*非法指令非法指令无法确定是字节量还是字量操作无法确定是字节量还是字量操作当无法通过任一个操作数确定是操作类型时,需要利当无法通过任一个操作数确定是操作类型时,需要利用汇编语言的操作符显式指明用汇编语言的操作符显式指明MOV BX+SI,255;非法指令,非法指令,修正:修正:;mov byte byte ptrptr bx+si bx+si,255;byte byte ptrptr 说明是字节操作说明是字节操作;mov word word ptrptr bx+si bx+si,255;word word ptrptr 说明是字操作说明是
20、字操作*非法指令非法指令两个操作数都是存储器两个操作数都是存储器8088指令系统除串操作指令外,不允许两个操作数指令系统除串操作指令外,不允许两个操作数都是存储单元(存储器操作数)都是存储单元(存储器操作数)MOV buf2,buf1;非法指令,非法指令,修正:修正:;假设;假设buf2和和buf1是两个字变量是两个字变量;mov ax,buf1;mov buf2,ax;假设假设buf2和和buf1是两个字节变量是两个字节变量;mov al,buf1;mov buf2,al*非法指令非法指令段寄存器的操作有一些限制段寄存器的操作有一些限制8088指令系统中,能直接对段寄存器操作的指令只指令系统
21、中,能直接对段寄存器操作的指令只有有MOV等个别传送指令,并且不灵活等个别传送指令,并且不灵活MOV DS,ES;非法指令,非法指令,修正:修正:;mov ax,es;mov ds,axMOV DS,100H;非法指令,非法指令,修正:修正:;mov ax,100h;mov ds,ax MOV CS,SI;非法指令非法指令;以;以CS为目标操作数为目标操作数2.交换指令交换指令XCHG(exchange)XCHG XCHG reg,reg/memreg,reg/mem;regreg reg/memreg/mem把两个地方的数据进行互换把两个地方的数据进行互换寄存器与寄存器之间对换数据寄存器与寄
22、存器之间对换数据寄存器与存储器之间对换数据寄存器与存储器之间对换数据不能在存储器与存储器之间对换数据不能在存储器与存储器之间对换数据演示演示例例 数据交换数据交换movmov ax,1199h ax,1199h;ax=1199hax=1199hxchgxchg ah,al ah,al;ax=9911hax=9911h;等同于等同于 xchgxchg al,ah al,ahmovmov wvar,5566h wvar,5566h;wvarwvar是一个字型变量是一个字型变量xchgxchg ax,wvarax,wvar ;ax=5566hax=5566h,wvarwvar=9911h=9911h
23、;等同于等同于 xchgxchg wvar,axwvar,ax xchgxchg al,byte al,byte ptrptr wvar+1 wvar+1;ax=5599hax=5599h,wvarwvar=6611h=6611h;“byte byte ptrptr wvar+1”wvar+1”强制为字节量,只取高字节强制为字节量,只取高字节与与ALAL类型交换,否则数据类型不匹配类型交换,否则数据类型不匹配3.换码指令换码指令XLAT(translate)将将BX指定的缓冲区中、指定的缓冲区中、AL指定的位移处的一个字节指定的位移处的一个字节数据取出赋给数据取出赋给ALXLATXLAT;al
24、ds:bx+alalds:bx+al 换码指令执行前:换码指令执行前:在主存建立一个在主存建立一个字节量表格字节量表格,内含要转换成的目的代码,内含要转换成的目的代码表格首地址表格首地址存放于存放于BXBX,ALAL存放相对表格首地址的存放相对表格首地址的位移量位移量换码指令执行后:换码指令执行后:将将ALAL寄存器的内容转换为寄存器的内容转换为目标代码目标代码演示演示3.3.1.2 堆栈操作指令堆栈操作指令堆栈是一个堆栈是一个“先进后出先进后出”(或说(或说“后进先后进先出出”)的主存区域,位于堆栈段中;)的主存区域,位于堆栈段中;SSSS段段寄存器寄存器记录其段地址记录其段地址堆栈只有一个
25、出口,即当前栈顶;用堆栈只有一个出口,即当前栈顶;用堆栈堆栈指针寄存器指针寄存器SPSP指定指定堆栈只有两种基本操作:进栈和出栈,对堆栈只有两种基本操作:进栈和出栈,对应两条指令应两条指令PUSH和和POP图示图示1.进栈指令进栈指令PUSH进栈指令先使堆栈指针进栈指令先使堆栈指针SP减减2,然后把一个字,然后把一个字操作数存入堆栈顶部操作数存入堆栈顶部PUSH r16/m16/segPUSH r16/m16/seg;SPSPSPSP2 2;SS:SPr16/m16/segSS:SPr16/m16/seg演示演示push axpush 2000h2000h2.出栈指令出栈指令POP出栈指令把栈
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 003 第三 8086 系统

限制150内