中易网

80×86系列计算机有几种基本的操作数寻址方式

答案:3  悬赏:40  
解决时间 2021-10-18 07:22
  • 提问者网友:做自己de王妃
  • 2021-10-17 10:43
80×86系列计算机有几种基本的操作数寻址方式
最佳答案
  • 二级知识专家网友:怀裏藏嬌
  • 2021-10-17 11:39
寻址方式太多了。。立即数寻址,操作数就是指令里的数。直接寻址,指令里的数是操作数所在的内存地址。一次间接寻址,指令里的数是操作数的地址的地址。相对寻址,PC的值+指令里的数,一般用在转移指令里。基址寻址,基址寄存器的值+指令里的数,一般基址寄存器的值是固定的,指令给出的数是可变的变址寻址,变址寄存器的值+指令里的数,变址寄存器的值是可变的。堆栈寻址,是栈顶和次栈顶。隐含寻址,是累加器ACC的值直接作为操作数。寄存器寻址,是寄存器的值作为操作数寄存器一次间接寻址,是寄存器的值作为操作数的地址。多次间接寻址,略了。还有很多其他的寻址方式。这些算是常用的
全部回答
  • 1楼网友:举杯邀酒敬孤独
  • 2021-10-17 12:02
8086设计了多种内存寻址方式,在内存寻址方式中操作数是某个内存单元的内容(值),而指令中给出的是内存单元的有效地址EA(有时需要计算得到)段地址通常在隐含的某个段寄存器中。内存寻址又包括:直接寻址,寄存器间接寻址,变址寻址,基址变址寻址,相对基址变址寻址。存储器寻址——直接寻址:操作数的有效地址就是指令代码中的位移量,用Disp表示,而操作数在存储单元中。直接寻址操作数地址的段基址通常存放在DS段寄存器中,有效地址EA=Disp。则PA=(DS)*10H+Disp,直接寻址的操作数主要有常数,常量或常数表达式加[]以及变量名或变量名加减常量形成的表达式。以下第二操作数为直接寻址方式MOVAX,[1234H]MOVBX,[N]MOVCX,ES:[2+5]MOVDX,A;A为变量名MOVSI,A+1存储器寻址——寄存器间接寻址:在这种寻址方式中,操作数是在存储器中,而不是在寄存器中。操作数地址的16位偏移量存放在通用地址寄存器中。如果指令中指定的寄存器是BX,SI或DI,则操作数在数据段,段其值在DS中,如果指令中指定的寄存器是BP,则操作数在堆栈段,段基值在SS中。在寄存器间接寻址中,寄存器作为地址指示器,寄存器的内容为地址指针,它适用于表处理。寄存器间接寻址操作示意图:执行指令:MOVAX,[SI]指令执行前:(DS)=2000H,[SI]=1000H,(21000H)=1234H,则PA=2000H*10H+1000H=21000H,指令的操作是把21000H字存储单元中的内容送入AX寄存器。数据段34H12HMDS20000H+1000H21000H21000H21001HAX12H34H存储器寻址——寄存器相对寻址(变址寻址):变址寻址中,操作数的有效地址是基址或变址寄存器的内容与指令中8位16位的位移量之和。对于BX、SI、DI寄存器。段寄存器用DS,对于BP寄存器,段寄存器用SS。变址寻址同样可用于表处理。PA=(DS)*10H+(BX)(SI)(DI)+Disp8Disp16PA=(SS)*10H++Disp8Disp16(BP)操作数的有效地址含有两个或两个以上分量,称为操作数复合寻址,在操作数复合寻址中,用[]或+表示是等效的,如:MOVAL,12H[BX],和MOVAL,[BX+12H]是等效的。执行指令:MOVAX,3000H[SI]指令执行前:(DS)=3000H,(SI)=2000H,(35000H)=34H,(35001H)=12H。。
  • 2楼网友:廢物販賣機
  • 2021-10-17 11:54
  楼主你好,它的寻址方式还是有很多的,楼主可以看一下这里。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息