第三章节-8086寻址方式和指令系统课件.ppt
《第三章节-8086寻址方式和指令系统课件.ppt》由会员分享,可在线阅读,更多相关《第三章节-8086寻址方式和指令系统课件.ppt(268页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第 3 章 8086寻址方式 和指令系统本章要点n寻址方式n常用指令的功能、格式、操作、对标志的影响n计算机是如何实现转移、调用、中断的地址指令地址:指令通常存放在内存中操作数地址:操作数可以存放在多个地方 :MOV BX,123ADD AX,BX MOV AX,2000H IN AX,12H :JMP L1 :CALL SUB1 :INT 21HCSIP3.1 3.1 概概 述述操作数可能的存放方式操作数可能的存放方式:直接包含在指令中直接包含在指令中 立即数立即数 立即寻址立即寻址包含在某个寄存器中包含在某个寄存器中 寄存器操作数寄存器操作数 寄存器寻址寄存器寻址在内存中在内存中 存储器操
2、作数存储器操作数(内存操作数)(内存操作数)存储器寻址存储器寻址u还可以在外设(接口)I/O寻址MOV BX,123MOV AX,2000H MOV AX,BXIN AX,12H 3.2.1 3.2.1 地址地址n段基址n有效地址(EA)/偏移地址/偏置(OFFSET)n位移量(DISP)段寄存器位移量=02H1000段基址10000H11000H物理地址物理地址11002H有效地址EA=1000HEA=1002HMOV AX,1000HMOV AX,2BX(BX)=1000H一、立即寻址方式n操作数直接存放在指令中,紧跟在操作码之后。n这种操作数被称为立即数 imm它可以是8位数值i8(00
3、HFFH)也可以是16位数值i16(0000HFFFFH)n立即寻址方式常用来给寄存器、存储器赋值操作数指令立即寻址指令MOV AX,34EAH ;AX34EAHMOV byte ptr1000H,20;1000H20MOV X,20 ;X20二、寄存器寻址方式 操作数存放在CPU的内部寄存器reg中,可以是:8位寄存器r8:AH、AL、BH、BL、CH、CL、DH、DL16位寄存器r16:AX、BX、CX、DX、SI、DI、BP、SP段寄存器seg:DS、SS、ES寄存器号寄存器号指令操作数操作数寄存器MOV AL,BXMOV AX,BL错误用法错误用法n存储器寻址方式操作数在存储器中。指令
4、中给出操作数在主存中的地址信息(偏移地址,称之为有效地址EA),而段地址在默认的或用段超越前缀指定的段寄存器中。物理地址段地址EA(有效地址)段地址(段寄存器)16 EA=偏移地址/基址变址位移量 表3.1 存储器存取时约定段和可修改段的基数(P50)存储器存取方式约定段可超越使用的段偏移量取指令CS无IP堆栈操作SS无SP源字符串DSCS,ES,SSSI目的字符串ES无DI用BP作基址SSCS,ES,DS有效地址通用数据读写(除BP)DSCS,ES,SS有效地址三、直接寻址方式三、直接寻址方式n有效地址在指令中直接给出有效地址在指令中直接给出n默认的段地址在默认的段地址在DSDS段寄存器,可
5、使用段超越前段寄存器,可使用段超越前缀改变。缀改变。EA指令操作数操作数存储器段基址段基址段寄存器 MOV AX,2000H;AX(DS:2000H);指令代码:A10020 MOV AX,ES:2000H;AX(ES:2000H);指令代码:26A10020直接寻址指令直接寻址指令错误用法DATA1 DB 1,2DATA2 DW 1,2 :MOV AL,DATA2MOV AX,DATA1 MOV 1002H,1000H :10000H :DATA111000H11001HDATA211002H11003H11004H11005H :11006HDS四、寄存器间接寻址方式n有效地址存放在基址寄
6、存器BX、BP或变址寄存器SI、DI中。n默认的段地址在DS段寄存器,可使用段超越前缀改变(如果使用BP,则默认的段地址在SS段寄存器)。EA寄存器操作数操作数存储器段基址段基址段寄存器寄存器号寄存器号指令错误用法:MOV AX,CXMOV BX,AXMOV AX,BLMOV BX,1五、基址/变址(相对)寻址方式有效地址是寄存器内容与有符号8位或16位位移量之和,寄存器可以是BX、BP或SI、DI。有效地址BX/BP/SI/DI8/16位位移量段地址对应BX/SI/DI寄存器默认是DS,对应BP寄存器默认是SS;可用段超越前缀改变。地址地址寄存器操作数操作数存储器段基址段基址段寄存器指令寄存
7、器号寄存器号位移量位移量EA基址/变址寻址指令MOV CX,36HBX ;CX(DS:BX36H)MOV CX,BX+36HMOV AX,8BX;AX(DS:BX8)MOV-20BP,AL;SS:BP-20(AL)功能执行相对基址变址寻址指令相对基址变址寻址指令MOV AX,BX+SI+06H;AX(DS:BX+SI+06H)MOV AX,06HBXSI ;物理地址(实地址、绝对地址)0地址逻辑地址(虚地址、相对地址、EA)0地址物理地址逻辑地址00000H0000:0000H00001H0000:0001H10000H用户区11000:0000H10001H1000:0001H20000H用
8、户区22000:0000H20001H2000:0001H地 址 总 结寻址类型寻址类型 指令指令 源源 地址生成地址生成 目标目标 寄存器寻址寄存器寻址 MOV AX,BX寄存器寄存器BX寄存器寄存器AX数据数据3AH寄存器寄存器CH寄存器寄存器CL存储器地址存储器地址10300H寄存器寄存器间接寻址间接寻址 MOV BX,CL立即寻址立即寻址 MOV CH,3AHDS10HBX10000H0300H设:设:BX=0300H,SI=0200H,ARRAY=1000H,DS=1000H寄存器寄存器CL存储器地址存储器地址11234H直接寻址直接寻址 MOV 1234H,CLDS10HDISP1
9、0000H1234H 寻址类型寻址类型 指令指令 源源 地址生成地址生成 目标目标基址加变址寻址基址加变址寻址 MOV BX+SI,BP寄存器寄存器BP存储器地存储器地址址10500H寄存器寄存器DX存储器地存储器地址址11500H(相对相对)基址加变址寻址基址加变址寻址 MOV ARRAYBX+SI,DX DS10HBXSI10000H0300H0200H DS10HARRAYBX+SI10000H1000H0300H+0200H设:设:BX=0300H,SI=0200H,ARRAY=1000H,DS=1000H存储器地存储器地址址10304H寄存器寄存器CL基址基址/变址寻址变址寻址 MO
10、V CL,BX+4(寄存器相对寻址寄存器相对寻址)DS10HBX4 10000H0300H4n串操作指令的操作数是主存中连续存放的数据串(String)即在连续的主存区域中,字节或字的序列n串操作指令的操作对象是以字(W)为单位的字串,或是以字节(B)为单位的字节串六、串寻址串寻址方式源操作数用寄存器SI寻址,默认在数据段DS中,但允许段超越:DS:SI目的操作数用寄存器DI寻址,默认在附加段ES中,不允许段超越:ES:DI每执行一次串操作指令,SI和DI将自动修改:1(对于字节串)或2(对于字串)执行指令CLD指令后,DF=0,地址指针增1或2执行指令STD指令后,DF=1,地址指针减1或2
11、串操作的准备源操作数用寄存器SI寻址,默认在数据段DS中,但允许段超越:DS:SI目的操作数用寄存器DI寻址,默认在附加段ES中,不允许段超越:ES:DI置方向标志,DF=0,增地址方向;DF=1,减地址方向执行STD指令后,DF=1执行CLD指令,DF=0字符串长度(数据个数)置CX8086通过输入输出指令与外设进行数据交换;呈现给程序员的外设是端口(Port)即I/O地址8086用于寻址外设端口的地址线为16条,端口最多为21665536(64K)个,端口号为0000HFFFFH每个端口用于传送一个字节的外设数据端口七、I/O端口寻址输入输出寻址方式8086的端口有64K个,不分段,有两种
12、寻址方式v直接寻址直接寻址:只用于寻址00HFFH前256个端口,操作数i8表示端口号(长指令格式)(长指令格式)v间接寻址:间接寻址:可用于寻址全部64K个端口,DX寄存器的内容是端口号(短指令格式)(短指令格式)对大于FFH的端口只能采用间接寻址方式长指令格式:IN 累加器,端口号 (直接寻址)短指令格式:IN 累加器,DX (间接寻址)n输入指令输入指令(INPUT)长指令格式:OUT 端口号,累加器 (直接寻址)短指令格式:OUT DX,累加器 (间接寻址)n输出指令输出指令(OUTPUT)3.3 80863.3 8086的指令格式及数据类型的指令格式及数据类型指令的机器码表示方法机器
13、语言:计算机唯一能识别的语言 10111111 00111010 11110000n汇编语言汇编语言面向机器的程序设计语言。是一种用符号表示的低级程序语言,通常为特定计算机或计算机系列设计的,与机器语言很接近。MOV DI,0F03AH 助记符 目 源操作码操作数1000101 11 1100011 操作码 D WMODREGR/M 送至SP寄存器 字寄存器SP BX MOV SP,BX 表3.2 8086的编码方式(52页)指令中的操作数n无操作数n单操作数n双操作数指令中的数据类型n无符号数n带符号数nASCII码nBCD数(压缩、非压缩)3.4 80863.4 8086指令系统指令系统1
14、、数据传送指令2、算术运算指令3、逻辑运算和移位指令4、字符串指令5、程序控制指令6、处理器控制指令一、数据传送指令数据传送是计算机中最基本、最重要的一种操作传送指令也是最常使用的一类指令传送指令把数据从一个位置传送到另一个位置除标志寄存器传送指令外,均不影响标志位1、通用数据传送指令 (1)MOV传送指令 指令格式:MOV 目标,源 指令功能:目标 (源)立即数立即数段寄存器段寄存器CS DS ES SSCS DS ES SS通用寄存器通用寄存器AX BX CX DXAX BX CX DXBP SP SI DIBP SP SI DI存存储储器器注注 意意1)源操作数可以是源操作数可以是8/1
15、6位的立即数、寄存器操作数、位的立即数、寄存器操作数、内存操作数。目标操作数不允许为立即数,其余同源内存操作数。目标操作数不允许为立即数,其余同源操作数。源、目不能同时为内存操作数。操作数。源、目不能同时为内存操作数。2)源、目操作数类型必须匹配源、目操作数类型必须匹配3)不能向段寄存器写立即数不能向段寄存器写立即数4)以以CS、IP为目标的一切传送指令都是非法的为目标的一切传送指令都是非法的立即数传送立即数传送mov al,4;al4,字节传送mov cx,0ffh;cx00ffh,字传送mov si,200h;si0200h,字传送mov byte ptr si,0ah;byte ptr
16、说明是字节操作mov word ptr si+2,0bh;word ptr 说明是字操作寄存器传送寄存器传送mov ax,bxmov ax,bx;axbxaxbx,字传送,字传送mov ah,almov ah,al;ahalahal,字节传送,字节传送mov ds,axmov ds,ax;dsaxdsax,字传送,字传送mov si,almov si,al;sialsial,字节传送,字节传送存储器传送存储器传送mov al,bxmov al,bxmov dx,bpmov dx,bp;dxss:bpdxss:bpmov es,simov es,si;esds:siesds:si段寄存器传送段寄
17、存器传送mov si,dsmov si,dsmov ax,esmov ax,es;axesaxesmov ds,axmov ds,ax;dsaxesdsaxes注 意两个操作数的类型不一致例如源操作数是字节,而目的操作数是字;或相反两个操作数不能都是存储器传送指令很灵活,但主存之间的直接传送却不允许段寄存器的操作有一些限制段寄存器属专用寄存器,对他们的操作有限制两个操作数的类型要一致绝大多数双操作数指令,除非特别说明,目的操作数与源操作数必须类型一致,否则为非法指令MOV AL,050AH;非法指令:050Ah为字,而AL为字节寄存器有明确的字节或字类型,有寄存器参与的指令其操作数类型就是寄存
18、器的类型对于存储器单元与立即数同时作为操作数的情况,必须显式指明;byte ptr指示字节类型,word ptr指示字类型两个操作数不能都是存储器8086指令系统不允许两个操作数都是存储单元(除串操作指令),要实现这种传送,可通过寄存器间接实现Mov buffer1,buffer2mov ax,buffer1mov ax,buffer1;axbuffer1(将buffer1内容送ax)mov buffer2,axmov buffer2,ax;buffer2ax;这里buffer1和buffer2是两个字变量;实际表示直接寻址方式要小心段寄存器的操作不允许立即数传送给段寄存器MOV DS,100
19、H MOV AX,100H MOV DS,AX;非法指令:立即数不能传送段寄存器不允许直接改变CS值MOV CS,AX;不允许使用的指令不允许段寄存器之间的直接数据传送MOV DS,ES MOV AX,ES MOV DS,AX;非法指令:不允许段寄存器间传送(2)PUSH 进栈操作指令进栈操作指令指令格式指令格式:PUSH 源操作数源操作数指令功能指令功能:SP(SP)2 (SP)+1,(SP)(源操作数源操作数)堆栈(Stack)SP栈底栈顶12H34H56H78HSSMOV AX,1234HMOV BX,5678HPUSH AXPUSH BXAXBX12 3456 78汇编语句汇编语句 例
20、子例子 说明说明PUSH reg16 PUSH BX 16位寄存器位寄存器PUSH mem16 PUSH WORD PTRBX 16位寻址方式位寻址方式PUSH seg PUSH DS 任何段寄存器任何段寄存器例:现场保护恢复例:现场保护恢复push ax;进入子程序后push bxpush ds.pop ds;返回主程序前pop bxpop ax 指令格式:指令格式:POP 目标目标指令功能:目标指令功能:目标 (SP)+1,SP)SP (SP)+2(3)POP 出栈操作指令出栈操作指令堆栈(Stack)SP栈底栈顶12H34H56H78HSSPOP BXPOP AX56H78H12H34H
21、 POP指令指令汇编语句汇编语句 例子例子 说明说明POP reg16 POP CX 16位寄存器位寄存器POP mem16 POP WORD PTRBX+1 16位存储器地址位存储器地址POP seg POP DS 任何段寄存器任何段寄存器(4)XCHG 交换指令指令格式:指令格式:XCHG 目标目标,源源 指令功能:(目标)指令功能:(目标)(源源)将寄存器的内容与任何其他寄存器或存储单元将寄存器的内容与任何其他寄存器或存储单元的内容交换。的内容交换。例:寄存器间交换例:寄存器间交换mov ax,1234h ;ax=1234hmov bx,5678h ;bx=5678hxchg ax,bx
22、 ;ax=5678h,bx=1234hxchg ah,al ;ax=7856h例:寄存器与存储器交换例:寄存器与存储器交换xchg ax,2000hxchg ax,2000h ;字交换;字交换;等同于;等同于 xchg 2000h,axxchg 2000h,axxchg al,2000h xchg al,2000h ;字节交换;字节交换;等同于;等同于 xchg 2000h,alxchg 2000h,al 注意:注意:xchg al,10(5)XLAT 表转换指令表转换指令指令格式:指令格式:XLAT 转换表转换表 或:或:XLAT指令功能指令功能:AL (BX)+(AL)指令把指令把AL寄存
23、器中的内容转换成存储在存寄存器中的内容转换成存储在存储器中的数字。通常采用直接查表技术,储器中的数字。通常采用直接查表技术,实现将一个代码转换为另一个代码。实现将一个代码转换为另一个代码。TABLE DB 30H,31H,32H,33H,34H,35H.36H,37H,38H DB 39H,A,B,C,D,E,F MOV AL,15 ;AL 15 MOV BX,OFFSET TABLE ;BX 表格首地址表格首地址 XLAT TABLE ;得到得到(AL)F AL(BX)+(AL)AL(TABLE+15)ALF 2、输入输出指令8086通过输入输出指令与外设进行数据交换;呈现给程序员的外设是端
24、口(Port)即I/O地址8086用于寻址外设端口的地址线为16条,端口最多为21665536(64K)个,端口号为0000HFFFFH每个端口用于传送一个字节的外设数据输入输出寻址方式8086的端口有64K个,不分段,有两种寻址方式v直接寻址直接寻址:只用于寻址00HFFH前256个端口,操作数i8表示端口号(长指令格式)(长指令格式)v间接寻址:间接寻址:可用于寻址全部64K个端口,DX寄存器的内容是端口号(短指令格式)(短指令格式)对大于FFH的端口只能采用间接寻址方式长指令格式:IN 累加器,端口号 指令功能:AL(端口号)字节 AX(端口号)字短指令格式:IN 累加器,DX 指令功能
25、:AL(DX)字节 AX(DX)字(1)输入指令输入指令(INPUT)例:输入字量例:输入字量;直接寻址,字节量输入in al,21hmov ah,alin al,20h;直接寻址,字量输入in ax,20h;间接寻址,字量输入mov dx,20hin ax,dx长指令格式:OUT 端口号,累加器 指令功能:端口号 (AL);字节 端口号 (AX);字短指令格式:OUT DX,累加器 指令功能:(DX)(AL);字节 (DX)(AX);字(2)输出指令输出指令(OUTPUT)例:输出字节量例:输出字节量;间接寻址,字节量输出mov dx,3fchmov al,80hout dx,al注意:注意
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第三 章节 8086 寻址 方式 指令系统 课件
限制150内