原文链接:https://www.cnblogs.com/jadeshu/p/10663543.html
觉得写的言简意赅,存一下。如果介意,立马删除。
8086/8088有7种基本的寻址方式:立即寻址,寄存器寻址,直接寻址,寄存器间接寻址,寄存器相对寻址,基址变址寻址,相对基址变址寻址。
1 立即数寻址
操作数就在指令中,作为指令的一部分,跟在操作码后存放在代码段。
eg. MOV AH,01H
MOV AX,1204H ;如果立即数是16位的,则高地址放在高位,低地址放在低位
2 寄存器寻址
操作数在寄存器中,指令中指定寄存器号。
对于8位操作数,寄存器可以是AL,AH,BL,BH,CL,CH,DL,DH。
对于16位操作数,寄存器可以是AX,BX,CX,DX,BP,SP,SI,DI等。
eg. MOV AH,CH
MOV BX,AX
3 直接寻址方式
操作数在内存单元中,指令直接包含操作数的有效地址EA。
eg. MOV AX,[1122H] ;将ds:1122的数据放在ax,默认段为DS
MOV ES:[1234],AL ;采用了段前缀
4 寄存器间接寻址
操作数在内存单元中,操作数的有效地址在SI,DI,BX,BP这4个寄存器之一中。在不采用段前缀的情况下, 对于DI,SI,BX默认段为DS,而BP为SS。
eg. MOV AH,[BX]
MOV AH,CS:[BX] ;使用了段前缀
5 寄存器相对寻址
操作数在内存单元中,操作数的有效地址是一个基址寄存器(BX,BP) 或 变址寄存器(SI,DI) 的内容加上偏移量。
eg. MOV AH,[BX+6];段址默认情况与寄存器间接寻址相同
6 基址加变址寻址
操作数在内存单元中,操作数的有效地址是一个基址寄存器(BX,BP) 加上 变址寄存器(SI,DI) 的内容。如果有BP,则默认段址为SS,否则为DS。
eg. MOV AH,[BX+SI]
7 相对基址加变址寻址
操作数在内存单元中,操作数的有效地址是一个基址寄存器(BX,BP) 和 变址寄存器(SI,DI) 的内容加上偏移量。如果有BP,则默认段址为SS,否则为DS。
eg. MOV AX,[BX+DI-2]
MOV AX,1234H[BX][DI]
上面3~7为存储器寻址方式
本文详细介绍了8086/8088处理器的7种基本寻址方式,包括立即寻址、寄存器寻址、直接寻址、寄存器间接寻址、寄存器相对寻址、基址变址寻址和相对基址变址寻址,为理解8086系列处理器的指令执行提供了关键信息。
2368

被折叠的 条评论
为什么被折叠?



