CPU访问存储器的过程是把逻辑地址转换成物理地 址的过程。(通过BIU完成) 将段寄存器中的段基址左移四位形成20位的段基址, 再加上16位的偏移量,形成20位的物理地址 有效地址EA:根据寻址方式计算出来的偏移量。 ●24、8086/8088堆栈的组织 堆栈是由SS指定的一段存储区 栈顶由SP指向(SP始终包含栈顶与段基址的距离) SP初始化时,其值为堆栈长度(栈底+2单元) 堆栈最大深度为64KB(一个段的长度),至多可存 放32K字数据 堆栈按字组织(存取数据) 存放数据格式:低放低,高放高
CPU访问存储器的过程是把逻辑地址转换成物理地 址的过程。(通过BIU完成) 将段寄存器中的段基址左移四位形成20位的段基址, 再加上16位的偏移量,形成20位的物理地址。 有效地址EA:根据寻址方式计算出来的偏移量。 2.4、8086/8088堆栈的组织 堆栈是由SS指定的一段存储区。 栈顶由SP指向(SP始终包含栈顶与段基址的距离) SP初始化时,其值为堆栈长度(栈底+2单元) 堆栈最大深度为64KB(一个段的长度),至多可存 放32K字数据。 堆栈按字组织(存取数据) 存放数据格式:低放低,高放高
堆栈操作 ●1、设置堆栈:对SS、SP赋值 2、进栈:PUSH 过程:1、SP∈SP-2 2、SP<数据 3、出栈:POP ◆过程:1、寄存器/储单元←SP 2、SP<SP+2 第三章:寻址方式与指令系统 3.1寻址方式 指令:操作码十操作数
堆栈操作: 1、设置堆栈:对SS、SP赋值 2、进栈: PUSH 过程:1、SPSP-2 2、SP 数据 3、出栈:POP 过程:1、寄存器/存储单元 SP 2、 SP SP+2 第三章:寻址方式与指令系统 3.1 寻址方式 指令:操作码+操作数
三操作码:表指令应完成的操作 ●操作数:表指令的操作对象(操作数地址或操作数本身) 定义:寻找指令中操作数的方法叫寻址方式 CPU有8种寻址方式 3.1.1、寄存器寻址 操作数在某寄存器中(通用寄存器或段寄存器) ●特点:执行速度快 格式: MOV CL, AL MOV DX,CL MOV DH, BL MOV DS, AX 3.12、立即数寻址 操作数包含在指令代码中(立即数为指令的一部分)
操作码:表指令应完成的操作 操作数:表指令的操作对象(操作数地址或操作数本身) 定义:寻找指令中操作数的方法叫寻址方式 CPU有8种寻址方式 3.1.1、寄存器寻址 操作数在某寄存器中(通用寄存器或段寄存器) 特点:执行速度快 格式: MOV CL,AL MOV DX,CL MOV DH,BL MOV DS,AX 3.1.2、立即数寻址 操作数包含在指令代码中(立即数为指令的一部分)
三特点:执行速度快 ·注(1)立即数不能出现在目的操作数位置 (2)如源操作数是立即数,则目的操作数必须是RM (3)主要用于给寄存器赋值 (4)立即数若以A~F开头,前面必须加0(区别于符号) 3.1.3、存储器寻址 ◆以下6种寻址方式,讨论如何确定存储器的操作数地址 某单元逻辑地址表示:段基值(16位):偏移量 段基址在DS,CD,ES,Ss中 偏移量为某单元与段基值的距离(16位) ●某单元物理地址:段基值(左移四位)+EA
特点:执行速度快 注(1)立即数不能出现在目的操作数位置 (2)如源操作数是立即数,则目的操作数必须是R/M (3)主要用于给寄存器赋值 (4)立即数若以A~F开头,前面必须加0(区别于符号) 3.1.3、存储器寻址 以下6种寻址方式,讨论如何确定存储器的操作数地址 某单元逻辑地址表示:段基值(16位):偏移量 段基址在DS,CD,ES,SS中 偏移量为某单元与段基值的距离(16位) 某单元物理地址:段基值(左移四位)+EA
EA:有效地址,是如下三个分量的某种组合 (1)位移量 指令中的8/16位数 通常在源程序中以操作数名字(变量名或标号)形 式出现,汇编后会自动把操作数名字的偏移量转换为指 令代码中的位移量 修改位移量:加减一个常数或用一个常数指定 2)基地址:由BX,BP提供 (3)变地址:由SⅠ,D提供 对上面3个分量的不同组合,形成了以下6种不同的 存储器操作数的寻址方式 1、直接寻址 EA直接由位移量给出,只涉及段寄存
EA:有效地址,是如下三个分量的某种组合。 (1)位移量 指令中的8/16位数 通常在源程序中以操作数名字(变量名或标号)形 式出现,汇编后会自动把操作数名字的偏移量转换为指 令代码中的位移量。 修改位移量:加减一个常数或用一个常数指定 (2)基地址:由BX,BP提供 (3)变地址:由SI,DI提供 对上面3个分量的不同组合,形成了以下6种不同的 存储器操作数的寻址方式。 1、直接寻址 EA直接由位移量给出,只涉及段寄存器