寻址方式
确定本条指令操作数的地址或者下一条要执行指令的地址
数据寻址
立即寻址
操作数在形式地址中
直接寻址
形式地址就是真实地址
地址码
隐含寻址
另一个操作数隐藏在ACC加法器里面
如8086指令中的MUL和MOVS这两个指令
间接寻址
形式地址储存存储的是真实地址的内存
寻址范围更大,同时方便子程序的执行
寄存器寻址
操作数在寄存器中,寄存器寻址速度很快
寄存器间接寻址
寄存器编号寻找存储在寄存器的有效地址,有利于循环程序的编写
基址寻址
(1)BR基址+A=EA
可扩大寻址范围,有利于多道程序
程序的动态定位,基地址用户不能修改,它由操作系统或管理程序确定,BR不可变
(2)采用通用寄存器作为基址寄存器
可以由用户指定通用寄存器,但不能修改内容
变址寻址
有专用变址寄存器IX和通用寄存器作为编制寄存器
在这个里面,变址寄存器值可以修改,但是A是确定的
对数组操作很有用,A表示数组起始地址,IX表示数组下标(偏移量)。
相对寻址
堆栈寻址
地址由上往下递增
(1)软堆栈:先进后出由SP寄存器指出,入栈,sp=sp-1;
(2)硬堆栈:
(3)sp的修改与按“”编址有关,如果是按字编址,就是减一。
如果是按字节编址,储存字长是几个字节构成就减几;
此处涉及的按字和按字节分别指不同的尺量方式,按字节编址就是存储容量/8b
按字编址就是存储容量/字长