计算机组成原理 第3章 80x86的指系统和寻址方式.ppt
《计算机组成原理 第3章 80x86的指系统和寻址方式.ppt》由会员分享,可在线阅读,更多相关《计算机组成原理 第3章 80x86的指系统和寻址方式.ppt(130页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 指令系统指令系统 一组指令的集合一组指令的集合第第3章章 80 x86的指令系统和寻址方式的指令系统和寻址方式 操作码操作码操作数操作数.操作数操作数指令指令 寻址方式寻址方式 与数据有关的寻址方式与数据有关的寻址方式 与转移地址有关的寻址方式与转移地址有关的寻址方式12023/1/32023/1/322023/1/332023/1/34P4352023/1/35H2023/1/361.8086的寻址方式的寻址方式 与数据有关的寻址方式与数据有关的寻址方式:以以MOV指令为例指令为例 (源操作数源操作数SRCSRC的寻址方式的寻址方式)立即寻址立即寻址MOVAX,3069H寄存器寻址寄存器寻
2、址MOVAL,BH直接寻址直接寻址MOVAX,2000H寄存器间接寻址寄存器间接寻址MOVAX,BX寄存器相对寻址寄存器相对寻址MOVAX,COUNTSI基址变址寻址基址变址寻址MOVAX,BPDI相对基址变址寻址相对基址变址寻址MOVAX,MASKBXSI存储器寻址存储器寻址72023/1/3MOV指令oMOV target,sourcenreg,regnmem,regnreg,memnmem,immednreg,immedo存储器操作数之间不能相互传值o两个操作数的类型须一致o段寄存器和立即数之间不能相互传值oCS不能作为目标寄存器使用(1)立即寻址方式立即寻址方式*操作数在指令中给出操作
3、数在指令中给出 指令格式:MOVAL,5MOVAX,3064HMOVAL,A*只能用于只能用于SRC字段字段MOV40H,AL*SRC和和DST的字长一致的字长一致MOVAH,3064H 92023/1/3(2)寄存器寻址方式寄存器寻址方式*操作数在指定的寄存器中操作数在指定的寄存器中 MOVAX,BXMOVAL,BHMOVAX,3064H*字节寄存器只有字节寄存器只有AHALBHBLCHCLDHDL*SRC和和DST的字长一致的字长一致MOVAH,BX*CS不能用不能用MOV指令改变指令改变MOVCS,AX 102023/1/3(3)直接寻址方式直接寻址方式*由指令直接给出由指令直接给出 例
4、例:MOVAX,2000HEA=2000H,假设假设(DS)=3000H,那么那么PA=32000H*隐含的段为数据段隐含的段为数据段DS*可使用可使用段跨越前缀段跨越前缀MOVAX,ES:2000H*操作数地址可由变量(符号地址)表示操作数地址可由变量(符号地址)表示,但要注意但要注意VALUEDB10变量的属性变量的属性MOVAH,VALUE MOVAX,VALUE MOVAX,WORDPTRVALUE 5030 32000AHAL3050(AX)=3050H112023/1/3(4)寄存器间接寻址寄存器间接寻址*EA在基址寄存器在基址寄存器(BX/BP)或变址寄存器或变址寄存器(SI/D
5、I)中中 MOVAX,BXPA=16d(DS)+(BX)MOVAX,ES:BXPA=16d(ES)+(BX)MOVAX,BPPA=16d(SS)+(BP)*不允许使用不允许使用AX、CX、DX存放存放EAMOVAX,CX*SRC和和DST的字长一致的字长一致MOVDL,BX;BX指示一个字节单元指示一个字节单元MOVDX,BX;BX指示一个字单元指示一个字单元*适于数组、字符串、表格的处理适于数组、字符串、表格的处理122023/1/3 有效地址有效地址=(BX)(BP)8位位(SI)16位位(DI)+位移量位移量(5)寄存器相对寻址方式寄存器相对寻址方式*指令格式指令格式:MOV AX,CO
6、UNTSI MOV AX,COUNTSI 或或 MOV AX,COUNT+SIMOV AX,COUNT+SI假设假设(DS)=3000H,(SI)=2000H,COUNT=3000H(DS)=3000H,(SI)=2000H,COUNT=3000H,则则:PA=35000HPA=35000H假设假设(35000H)=1234H,(35000H)=1234H,那那么么 (AX)=1234H(AX)=1234H*适于数组、字符串、表格的处理适于数组、字符串、表格的处理132023/1/3(6)基址变址寻址方式基址变址寻址方式*指令格式:指令格式:MOV AX,BX DIMOV AX,BX DI M
7、OV AX,BX+DI MOV AX,BX+DI MOV AX,ES:BX SI MOV AX,ES:BX SI*适于数组、字符串、表格的处理适于数组、字符串、表格的处理*必须是一个基址寄存器和一个变址寄存器的组合必须是一个基址寄存器和一个变址寄存器的组合MOVAX,BXBP MOVAX,SIDI 有效地址有效地址=(BX)(SI)(BP)(DI)+142023/1/3(7)相对基址变址寻址方式相对基址变址寻址方式 MOVAX,MASKBXSI或或MOVAX,MASKBX+SI或或MOVAX,MASK+BX+SI 有效地址有效地址=(BX)(SI)8位位(BP)(DI)16位位+位移量位移量1
8、52023/1/32023/1/316访问存储器的方式访问存储器的方式 默认的默认的段寄存器段寄存器可跨越的可跨越的段寄存器段寄存器偏移地址偏移地址取指令取指令 CS 无 IP堆栈操作堆栈操作 SS 无 SP一般数据访问一般数据访问 DS CS ES SS 有效地址EABP作为基址的寻址作为基址的寻址 SS CS DS ES BP串操作的源操作数串操作的源操作数 DS CS ES SS SI串操作的目的操作数串操作的目的操作数 ES 无 DI段段寄寄存存器器的的使使用用规规定定172023/1/3例例:编写一段显示字符串编写一段显示字符串STRING的程序的程序DATA SEGMENTDATA
9、 SEGMENT STRING DB STRING DB HAPPY NEW YEAR!,0DH,0AH,$COUNT DW 17 COUNT DW 17 DATA ENDS DATA ENDS(1)直接寻址直接寻址 mov dl,string mov dl,string mov ah,2 mov ah,2 int 21h int 21h ;显示字符显示字符 HH mov dl,string+1 mov dl,string+1 mov ah,2 mov ah,2 int 21h int 21h ;显示字符显示字符 AA :182023/1/32023/1/319(2)寄存器间接寻址寄存器间接寻
10、址mov cx,count mov cx,count ;mov cx,17;mov cx,17 mov bx,mov bx,offsetoffset string string ;string;string的偏址的偏址 bxbxNext:mov dl,bx Next:mov dl,bx mov ah,2 mov ah,2 int 21h int 21h ;显示一个字符显示一个字符 inc bxinc bx loop next loop next ;循环指令循环指令(3)寄存器相对寻址寄存器相对寻址mov cx,count mov cx,count ;mov cx,17;mov cx,17 mo
11、v si,0 mov si,0 Next:mov dl,stringsi Next:mov dl,stringsi ;mov dl,string+si;mov dl,string+si mov ah,2 mov ah,2 int 21h int 21h ;显示一个字符显示一个字符 inc siinc si loop next loop next ;循环指令循环指令202023/1/32023/1/3212023/1/3222023/1/323把string在段里的偏移地址送给dx,offset是个伪操作符,只能在编译的时候用。用法:offset label 作用是得到label在段内的偏移地址
12、mov dx,offset string(4)基址变址寻址基址变址寻址mov cx,count mov cx,count ;mov cx,17;mov cx,17 mov bx,offset string mov bx,offset string ;string;string的偏址的偏址 bxbx mov si,0 mov si,0Next:mov dl,bx si Next:mov dl,bx si ;mov dl,bx+si;mov dl,bx+si mov ah,2 mov ah,2 int 21h int 21h ;显示一个字符显示一个字符 inc siinc si loop next
13、 loop next ;循环指令循环指令(5)DOS显示字符串功能显示字符串功能mov dx,offset string mov dx,offset string ;string;string的偏址的偏址 dxdx ;lea dx,stringlea dx,string mov ah,mov ah,9 9 int 21h int 21h ;显示一串字符显示一串字符 P471P471242023/1/380 x86新增的寻址方式新增的寻址方式EA=(基址寄存器基址寄存器)+(变址寄存器变址寄存器)比例因子比例因子+位移量位移量(1)比例变址寻址方式比例变址寻址方式-P43例:例:MOVEAX,C
14、OUNTESI 4252023/1/3(2)基址比例变址寻址方式基址比例变址寻址方式-P44-39 例:例:MOVECX,EAXEDI 4 (3)相对相对基址比例变址寻址方式基址比例变址寻址方式例:例:MOVEAX,TABLEEBPEDI 4 16 16位和位和3232位寻址的差异位寻址的差异地址成分地址成分 1616位寻址位寻址 3232位寻址位寻址基址寄存器基址寄存器 BXBX、BP BP 任何任何3232位通用寄存器位通用寄存器变址变址寄存器寄存器 SISI、DI DI 除除ESPESP外外的任何的任何3232位通用寄存器位通用寄存器比例因子比例因子 1 11 1、2 2、4 4、8 8
15、 262023/1/3与与转移转移地址有关的寻址方式:地址有关的寻址方式:段内寻址段内寻址 段内段内直接直接寻址寻址 JMPNEARPTRNEXT 段内段内间接间接寻址寻址 JMPTABLEBX段间寻址段间寻址段间直接寻址段间直接寻址 JMPFARPTRNEXT 段间间接寻址段间间接寻址 JMPDWORDPTRBX用来确定转移指令及转子指令的转向地址用来确定转移指令及转子指令的转向地址。272023/1/3(1)段内直接寻址段内直接寻址-P45转向的有效地址转向的有效地址=当前当前(IP)+位移量位移量(8bit/16bit)282023/1/3例例:JMPNEAR PTRNEXT近转移近转移
16、-32768+32767JMPSHORTNEXT短转移短转移-128+127292023/1/3P872023/1/3302023/1/3312023/1/332(2)段内间接寻址段内间接寻址 转向转向的有效地址是一个的有效地址是一个寄存器寄存器或或存储单元存储单元的的内容内容。(可用除立即数以外的任何一种数据寻址方式得到可用除立即数以外的任何一种数据寻址方式得到)例:例:TABLE=20A2H (BX)=TABLE=20A2H (BX)=1256H1256H (SI)=528EH (SI)=528EH (DS)=2000H (232F8H)=(DS)=2000H (232F8H)=3280H
17、3280H (264E4H)=(264E4H)=2450H2450H JMPBX;(IP)=1256HJMPTABLEBXJMPWORD PTRTABLEBX;(IP)=3280HJMPBXSIJMPWORD PTRBXSI;(IP)=2450H332023/1/3code1 segmentcode1 segment jmp jmp far ptrfar ptr nextnext code1 endscode1 endscode2 segment code2 segment next:next:.code2 endscode2 ends(3)段间直接寻址段间直接寻址 用指令中提供的用指令中提供
18、的转向段地址转向段地址和偏移地址取代和偏移地址取代CS和和IP 例例:342023/1/3(4)段间间接寻址段间间接寻址 用存储器中的两个相继字的内容取代用存储器中的两个相继字的内容取代CS和和IP(存储单元的地址可用存储器寻址方式得到存储单元的地址可用存储器寻址方式得到)例:例:JMPDWORD PTRINTERS+BXPA=(DS)PA=(DS)2 24 4 +(BX)+INTERS+(BX)+INTERS (PA+1,PA)IP (PA+1,PA)IP (PA+3,PA+2)CS (PA+3,PA+2)CS352023/1/3第第3章章练习练习Page 107 3.1 3.3 3.5 3
19、.7 3.11 3.13362023/1/3 数据传送指令数据传送指令 算术指令算术指令 逻辑指令逻辑指令 串处理指令串处理指令 控制转移指令控制转移指令 处理机控制与杂项操作指令处理机控制与杂项操作指令2.8086的指令系统的指令系统372023/1/3重点关注:重点关注:指令的汇编格式指令的汇编格式指令的基本功能指令的基本功能指令支持的寻址方式指令支持的寻址方式指令的执行对标志位的影响指令的执行对标志位的影响指令的特殊要求指令的特殊要求382023/1/3数据传送指令数据传送指令:通用数据通用数据传送指令传送指令MOV、PUSH、POP、XCHG 累加器专用累加器专用传送指令传送指令IN、
20、OUT、XLAT 地址地址传送指令传送指令LEA、LDS、LES 标志寄存器标志寄存器传送指令传送指令LAHF、SAHF、PUSHF、POPF 类型转换类型转换指令指令CBW、CWD392023/1/3传送指令:传送指令:MOVDST,SRC执行操作:执行操作:(DST)(SRC)注意注意:*DST、SRC不能同时为段寄存器不能同时为段寄存器MOVDS,ES*立即数不能直接送段寄存器立即数不能直接送段寄存器MOVDS,2000H*DST不能是立即数和不能是立即数和CS*DST、SRC不能同时为存储器寻址不能同时为存储器寻址*不影响标志位不影响标志位 通用数据传送指令通用数据传送指令MOVAX,
21、DSEGMOVDS,AX402023/1/3 进栈指令:进栈指令:PUSHSRC执行操作:执行操作:(SP)(SP)2(SP)+1,(SP)(SRC)出栈指令:出栈指令:POPDST执行操作:执行操作:(DST)(SP)+1,(SP)(SP)(SP)+2堆栈:堆栈:先进后出先进后出的存储区,段地址存放在的存储区,段地址存放在SSSS中,中,SP在任何时候都在任何时候都指向栈顶指向栈顶,进出栈后,进出栈后自动修改自动修改SPSP。注意注意:*堆栈操作必须以堆栈操作必须以字字为单位。为单位。*不影响标志位不影响标志位*不能用立即寻址方式不能用立即寻址方式PUSH1234H*DST不能是不能是CSP
22、OPCS 412023/1/3例:假设例:假设(AX)=2107H,执行执行PUSHAX*(SP)PUSHAX执行前执行前(SP)*07H07H21H21H低地址低地址高地址高地址PUSHAX执行后执行后进栈方向进栈方向422023/1/3(SP)*07H07H21H21HPOPBX执行执行前前(SP)*07H07H21H21H低地址低地址高地址高地址POPBX执行后执行后(BX)=2107H例:例:POPBX出栈方向出栈方向432023/1/3例:例:PUSH DSPUSH DS SUB AX,AX SUB AX,AX PUSH AX PUSH AX RET RET例:例:PUSH AXPU
23、SH AX PUSH BX PUSH BX PUSH CX PUSH CX ;其间用到其间用到AX、BX、CX POP CX POP CX ;后进先出后进先出 POP BXPOP BX POP AX POP AX442023/1/3 交换指令:交换指令:XCHGOPR1,OPR2执行操作:执行操作:(OPR1)(OPR2)注意注意:*不影响标志位不影响标志位*不允许使用段寄存器不允许使用段寄存器例:例:XCHGBX,BP+SIXCHGAL,BH452023/1/3 累加器专用累加器专用传送指令传送指令(只限使用(只限使用AX或或AL)输入指令输入指令IN(I/OCPU)长格式长格式:INAL,
24、PORT(字节)(字节)INAX,PORT(字)(字)执行操作:执行操作:(AL)(PORT)(字节)(字节)(AX)(PORT+1,PORT)(字)(字)短格式短格式:INAL,DX(字节)(字节)INAX,DX(字)(字)执行操作:执行操作:(AL)(DX)(字节)(字节)(AX)(DX)+1,(DX)(字)(字)462023/1/3输出指令输出指令OUT(CPUI/O)长格式长格式:OUTPORT,AL(字节)(字节)OUTPORT,AX(字)(字)执行操作:执行操作:(PORT)(AL)(字节)(字节)(PORT+1,PORT)(AX)(字)(字)短格式短格式:OUTDX,AL(字节)
25、(字节)OUTDX,AX(字)(字)执行操作:执行操作:(DX)(AL)(字节)(字节)(DX)+1,(DX)(AX)(字)(字)472023/1/3注意注意:*不影响标志位不影响标志位*前前256个端口号个端口号00HFFH可直接可直接在指令中指定(长格式)在指令中指定(长格式)*如果如果端口号端口号 256,端口号端口号DX(短格式)(短格式)例:例:IN AX,28H IN AX,28H MOV DATA_WORD,AX MOV DATA_WORD,AX例:例:MOV DX,3FCHMOV DX,3FCH IN AX,DX IN AX,DX例:例:OUT 5,ALOUT 5,AL例:测试
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机组成原理 第3章 80x86的指系统和寻址方式 计算机 组成 原理 80 x86 系统 寻址 方式
限制150内