什么是段内转移

IP的内栈是什么

第1个回答  2007-11-10
你为啥不自己“百度”一下捏?
随便找了个,整理下贴给你
-------------------

一、段内直接转移
具体格式:CALL 过程名

此时CS不入栈,IP的内栈入栈,入栈后再将加上目的地址与CALL指令的下一条指令的偏移地址之差值就可以转移到目的地址,详细过程:
SP-2=>SP;将堆栈指针SP减2
(SP)<=IP;将IP进栈
IP+偏移地址之差;转到目的地址
二、段内间接转移
具体格式:CALL OPRD

那么在这里OPRD可以寄存器或内存单元,它的具体实现过程:
SP-2=>SP;将堆栈指针SP减2
(SP)<=IP;将IP进栈
IP<=(OPRD);转到目的地址
同a一样,CS不入栈
三、段间直接转移
具体格式:CALL 过程名 [FAR]

此时CS,IP均要入栈,详细的实现过程:
SP-2=>SP;将堆栈指针减2
(SP)<=CS;将CS入栈
SP-2=>SP;将堆栈指针再减2
(SP)<=IP;将IP入栈
;装入新的CS,IP
IP<=过程入口的偏移地址
CS<=过程入口的段地址
四、段间间接转移
具体格式:CALL OPRD [FAR]

此时CS,IP均要入栈,OPRD是32位,你知道在8086中没有32位寄存器。因此,这里的OPRD一定是存储单元,高16位是CS的值,低16位是IP值,详细的实现过程:
SP-2=>SP;将堆栈指针减2
(SP)<=CS;将CS入栈
SP-2=>SP;将堆栈指针再减2
(SP)<=IP;将IP入栈
;装入新的CS,IP
IP<=(OPRD+2,OPRD+3)
CS<=(OPRD,OPRD1)
五、段内返回
格式:RET。
实际上它的实现过程:
(SP)=>IP;从当前栈顶弹出一个字,将它送给IP指令计数器
SP+2=>SP;SP
六、段间返回
格式:RET
实际上它的实现过程:
(SP)=>IP;IP出栈
SP+2=>SP;
(SP)=>CS;CS出栈

参考资料:http://topic.csdn.net/t/20040707/10/3152236.html

什么是段内转移
一、段内直接转移 具体格式:CALL 过程名 此时CS不入栈,IP的内栈入栈,入栈后再将加上目的地址与CALL指令的下一条指令的偏移地址之差值就可以转移到目的地址,详细过程:SP-2=>SP;将堆栈指针SP减2 (SP)<=IP;将IP进栈 IP+偏移地址之差;转到目的地址 二、段内间接转移 具体格式:CALL O...

汇编语言段内,段间是什么意思
汇编语言的程序设计是分4个段来设计的,即用来放数据的数据段DS,临时存放数据的堆栈段SS、存放程序代码的代码段、存放附加数据的附加段,每一段的最大存储空间为64KB,跳转指令、程序调用指令在转移到地址没有超过64KB地址空间范围的叫段内转移,超出64KB地址空间范围的叫段间转移。这就是段内和段间的...

关于短转移和近转移 ,求更详细的解读。
段内转移——短转移(short)转移范围可以用一个字节表达,在段内-128~+127范围的转移 老师的ppt上这么说的,具体没解读明白,同求高人指点。

JMP是什么指令??
JMP指令将无条件地控制程序转移到目的地址去执行.当目的地址仍在同一个代码段 --- 内,称为段内转移;当目标地址不在同一个代码段内,则称为段间转移.这两种情况都 将产生不同的指令代码,以便能正确地生成目的地址,在段内转移时,指令只要能提 供目的地址的段内偏移量即够了;而在段间转移时,指令...

jmp指令的功能是使程序跳转到另一个程序具体标号处对吗
JMP指令将无条件地控制程序转移到目的地址去执行.当目的地址仍在同一个代码段内,称为段内转移;当目标地址不在同一个代码段内,则称为段间转移.这两种情况都将产生不同的指令代码,以便能正确地生成目的地址,在 段内转移时,指令只要能提供目的地址的段 内偏移量即够了;而在段间转移时,指令应能提...

JMP SHORT NEXT在汇编中是什么意思?
JMP是转移指令,转去指令其他的指令语句,JMP NEXT 是指转向标号NEXT的指令。前边加SHORT是段内转移,和其相区别的是 JMP FAR NEXT ,举例可以说在DS段执行转移到ES段的NEXT。另外转移指令还可分为绝对转移和相对转移,绝对转移指NEXT代表的是实际的物理地址,而相对转移指相对程序的偏移量,区别不是很细。在编译的时候...

在保护虚地址方式下,控制转移有哪些情形?通过转移指令JMP的转移与通 ...
【答案】:控制转移基本上可分为两大类:同一任务内的控制转移和任务间的控制转移(任务切换)。同一任务的控制转移义可分为:段内转移、特权级不变的段间转移和特权级变换的段间转移。段内转移与实地址方式下相似,不涉及特权级变换和任务切换。只有段间转移才涉及特权变换和任务切换。与实地址方式一样...

段间转移和段内转移的区别是什么
段间转移修改cs值,段内转移不修改cs值。段间转移需要的操作数是32位,段内转移需要的操作数是16位。(还有个段内短转移需要的操作数是8位)

移段是什么意思?
移段是指文章或文章的某一部分从原位置转移到其他位置的过程。在写作过程中,有时为了更好地表达思想或更好地组织文章结构,需要移动某一段内容的位置。移动后,作者应该重新审视文章的逻辑性以确保移动后的文章结构更加合理完整。移段的操作可以使文章更加流畅,但同时也需要注意不要改变文章原本的意思和...

读《汇编语言》第三版 第九章 转移指令的原理
jmp指令的无条件转移包含两个关键信息:转移的目的地址和转移距离,分为段间转移、段内短转移和段内近转移。例如,jmp short 标号执行的是段内短转移,通过偏移地址控制IP跳转范围。在汇编指令如mov ax,offset start和mov ax,offset s中,offset操作符获取标号的偏移地址,使得CPU能定位到正确的内存位置...

相似回答