当前位置:文档之家› 《微机原理与应用教学资料》第三章(课件).ppt

《微机原理与应用教学资料》第三章(课件).ppt


寻址方式:说明操作数所在地址的方法。
操作数来源: 指令
CPU内部寄存器
内存单元电气学院学习部资料库
2
❖ 一、立即寻址方式
指令中包含操作数,不必执行总线周期,指令执 行速度快 例1: MOV AL,80H;80H→AL,(AL) =80H 例2: MOV AX,1234H;1234H→AX,(AH) =12H,(AL)=34H *加上( ),表示取寄存器或内存单元的内容 ① 一般用于赋值。源操作数和目的操作数字长应 相同 ② 立即数只能做源操作数,不能做目的操作数 ③ 若是以字母打头的数,例:A0H在编程中必须 表示为0A0H
电气学院学习部资料库
3
❖ 二、寄存器寻址
操作数在寄存器中,不必执行总线周期,执行速度快
例1:INC AL ;(AL)+1→AL ,若(AL)=86H,指令执 行完(AL)=87H
例2:MOV AX,CX;(CX)→AX,若指令执行前 CX=3A68H,指令执行后AX= 3A68H
①目的与源操作数都可用寄存器寻址
电气学院学习部资料库
11
❖ 八、其它
①隐含寻址 例:DAA、AAA、AAS、DAS、AAM、 AAD
② I/O端口寻址 例:IN AL,63ห้องสมุดไป่ตู้; OUT 85H,AL; MOV DX,0FF4H; OUT DX,AL;
8
❖ 五、寄存器相对寻址
通过基址或变址寄存器的内容与指令中指定的8位或16位 位移量(Displacement)给出EA,操作数在内存中,需 执行总线周期

(SI)
8位
EA= (DI) DS +
disp
(BX)
16位
(BP):SS
物理地址=段地址*16 +EA
例:MOV AX,[BX+1000H];(DS:[BX+1000H])→ AL,
物理地址=段地址*16 +EA
默认的段地址:只需出现BP,即为SS,其余为DS
例:MOV AX, [BX+SI];(DS:[BX+SI])→AL,(DS:[BX+SI+1]) →AH
MOV AX, [BX][SI]
MOV AX, [SI+BP];(SS:[SI+BP])→AL,(SS:[SI+BP+1]) →AH
第三章 8086的寻址方式和指令系统
电气学院学习部资料库
1

3-1 8086寻址方式
指令:操作码:给出此指令应完成何种操作。告诉计算机 做什么
操作数:该指令的操作对象。告诉计算机对谁做
指令格式:操作码 目的操作数,源操作数 源操作数:数据从何而来。操作过程中原值不变。 目的操作数:送到哪里去。操作数原值不保留。
例:MOV AX, [BX+SI+1000H] ;(DS:EA) AL,(DS:[EA+1]) AH
MOV AX, 1000H [BX][SI]
若 DS=2000H,BX=1500H,SI=0300H,disp=1000H, (22800H)=26BFH
则 EA=1500H+0300H+1000H =2800H, 物理地址=20000H+2800H=22800H, AX=26BFH
(DS:[BX+1001H])→ AH
MOV AX,1000H[BX]
②也可以通过指定超越前缀,改变段基地址
例:MOV AX,ES:10电0气0学院H学[习B部X资]料库
9
❖ 六、基址加变址寻址
由一个基址寄存器(BX或BP)和一个变址寄存器(SI或DI) 之和给出EA

[BX] [SI]
EA=
+
[BP] [DI]
物理地址,来获得操作电数气。学院学习部资料库
4
❖三、直接寻址
指令中直接给出操作数的有效地址EA,操作数在内存中, 需执行总线周期
有效地址EA:操作数的偏移地址
物理地址=段地址*16+EA ①默认段地址为DS,指令中有效地址EA加[ ],以区别于立 即数。
*加上[ ],表示里面的内容是内存中偏移地址 例1: MOV AL,[1064H] ;若(DS)=1000H,则 (11064H)→AL 例2: MOV AX,[1064H] ;(11064H)→AL,
(11065H)→AH 若(11064H)=00H,(11065H)=12H,(AX) =1200H
电气学院学习部资料库
5
一个字在存储体中相邻的两个字节存放,字单元的地址以低 位地址表示,存入时以低位字节在低地址,高位字节在高 地址
②段超越前缀:若段地址为CS、SS、ES,应在指令中指定段超 越前缀
MOV AX, [BP+SI]
例: MOV AX, [BX+BP] ;电错气误学院,学习B部X资、料库BP均为基址寄存器
10
❖ 七、相对基址加变址寻址
由一个基址寄存器和一个变址寄存器的内容,再加上一个位 移量,三者之和确定EA
[BX] [SI] 8位 EA= + + disp
[BP] [DI] 16位
②注意数据匹配,源与目的操作数的长度必须一致
例:MOV AX,BL; 错误。
③可用于寄存器寻址的寄存器包括:4个通用寄存器,4个专用 寄存器
16位操作数:AX,BX,CX,DX,SI,DI,SP,BP
8位操作数: AH,AL,BH,BL,CH,CL,DH,DL
从第三种开始,指令的操作数都在内存中,须用不同的方法求出操作数的
指令中通过寄存器给出有效地址EA ,寄存器中为地址,操作 数在内存中,需执行总线周期
①可以用于寄存器间接寻址的寄存器有:SI、DI,BX、BP 变址寄存器 基址寄存器
寄存器名称外面必须加[ ]
② (SI) EA= (DI) DS(默认) (BX) (BP):SS
物理地址=段地址*16+EA
电气学院学习部资料库
例: MOV AX,ES:[1064H];将ES段中[1064H]的内容 →AX ES:MOV AX,[1064H]
③符号地址(给存储单元起一名字,变量名) 例:MOV AX,AREA1; 从符号地址为AREA1的存储单元 中取一个字 → AX 符号地址也允许段超越
电气学院学习部资料库
6
❖ 四、寄存器间接寻址
7
例:MOV BX, [SI];若(DS)=1000H,(SI) =2000H,(12000H)=318BH。则(BH)=31H, (BL)=8BH
③ 也可以通过指定超越前缀,改变段基地址 例:MOV BX,DS:[BP] ;(DS:[BP])→BL ,(DS:[BP+1])→BH
电气学院学习部资料库
相关主题