16位汇编第四讲----8086寻找方式

    xiaoxiao2021-12-14  20

    8086CPU的寻址方式分为立即数寻址方式、寄存器寻址方式和存储器寻址方式

    0x00 立即数寻址方式

    MOV AL,05H ;AL<--05H MOV AX,0102H ;AX<--0102H

    0x01 寄存器寻址方式

    MOV AX,1234H MOV BX,AX

    0x02 存储器寻址方式

    8086设计了多种存储器寻址方式

    直接寻址方式 有效地址在指令中直接给出 默认的段地址在DS段寄存器,可使用段超越前缀改变 MOV AX,[2000H]AXDS:[2000H] ;指令代码:A10020 MOV AX,ES:[2000H]AXES:[2000H] ;指令代码:26A10020 寄存器间接寻址方式 有效地址存放在基址寄存器BX或变址寄存器SI、DI中 默认的段地址在DS段寄存器,可使用段超越前缀改变 MOV AX,[SI]AXDS:[SI] 寄存器相对寻址方式 段地址对应BX/SI/DI**寄存器默认是DS**,对应BP寄存器默认是SS;可用段超越前缀改变 有效地址=BX/BP/SI/DI+8/16位位移量 MOV AX,[DI+06H]AXDS:[DI+06H] MOV AX,[BP+06H]AXSS:[BP+06H] 基址变址寻址方式 段地址对应BX基址寄存器默认是DS,对应BP基址寄存器默认是SS;可用段超越前缀改变 有效地址=BX/BP+SI/DI MOV AX,[BX+SI]AXDS:[BX+SI] MOV AX,[BP+DI]AXSS:[BP+DI] MOV AX,DS:[BP+DI]AXDS:[BP+DI] 相对基址变址寻址方式 段地址对应BX基址寄存器默认是DS,对应BP基址寄存器默认是SS;可用段超越前缀改变 有效地址=BX/BP+SI/DI+8/16位位移量 MOV AX,[BX+SI+06H]AXDS:[BX+SI+06H] ;还可以用符号表示位移量 MOV AX,[SI+COUNT]COUNT是事先定义的变量或常量(就是数值) MOV AX,[BX+SI+WNUM]WNUM也是变量或常量 多种表达形式 同一寻址方式可以写成不同的形式: MOV AX,[BX][SI] ;等同于 MOV AX,[BX+SI] MOV AX,COUNT[SI] ;等同于 MOV AX,[SI+COUNT] MOV AX,WNUM[BX][SI] ;等同于 MOV AX,WNUM[BX+SI] ;等同于 MOV AX,[BX+SI+WNUM]
    转载请注明原文地址: https://ju.6miu.com/read-971898.html

    最新回复(0)