折叠 编辑本段 简介
在通常情况下,操作数存放在数据段中,所以,其物理地址将由数据段寄存器DS和指令中给出的有效地址直接形成,但如果使用段超越前缀,那么,操作数可存放在其它段。
直接寻址方式常用于处理内存单元的数据,其操作数是内存变量的值。
指令中直接给出操作数地址(dir360百科)的寻址方式称为直接寻址。
寻址对象为:
1 内部数据存储器,在指令中以直接地址表示;
2特殊功能寄存器SFR,在指令中用寄存器名称表示。
以寄存器中的内容为地址,该地址的内容为操作数的寻址方式称为寄存器间接寻址。能够进行寄存器间接寻址的寄存器免选值企图后凯院有:R0、R1、DPTR,用前面加@表示,如@R0、@R1、@DPTR。寄存器间接寻址的存储空间包括内部数据存储器和外攻代者句部数据存储器。由于内部数据存储器共有128字节,因此用一字节的R0和R1可间接寻址整个空间。而外部数据存储器最大亮钟促可达64K,仅R0或R1无法寻址整个空间,为此需要由P2端口提供外部R权打界功胶连销提黄AM高8位地址,由R0或R1提供低8位地址,由此共同寻址64K字了纸油未纸风概节范围。也可用16位的DPTR寄存器双间接寻址64K字节存储空间。
折叠 编辑本段 注意
立即寻址方式和直乙美费谁小接寻址方式的书写当年普队鲜握食功息翻静格式的不同。在程序中,沿赵扬久冷尔际适源合直接寻址的地址要写在括号"[]"内,立即地址通常用内存变量名来表示,如:MOV BX, VARW,其中,VARW是内存字变量;直接寻址如:MOV AX [2000H]。
在直接寻址中,指令操作数字段中存放的是操作数的16位偏移地址负赶该轮绍范贵振EA,即操作数的偏移地址EA和操作码一起存放在代码段中,而操作数可以存放在数据段,也可以存放在其它段,操作数的物理地址由其变转放所在段的寄存器内容左移4位与指令中给出的偏移地址EA相加形成。物理地址PH=(DS)*10H+EA(Disp)EA千评孙可以用符号或数值表示。如果用数值表示EA则必须用括号括起来,而且是在方括号前应领理压缩装聚图乡抗给出段寄存器名,直接寻址的操作数可以是字或字节。
如果没有特殊说明,直接寻址的操作数一般在内存的数据段中,即隐含的段限块坚始女送非论宪即寄存器是DS。但是8086/8088也允许段超越,即允许使用CS,SS,ES作为段寄存器,此时几告正念矛功之孔需要在指令中特别标明,方法是在有关操作数的前面协商寄存器的名字,再加上冒号。如:MOV AX EX :[2000H].