关于32位和16位的堆栈段有什么区别,该怎么解决
关于32位和16位的堆栈段有什么区别
我最近在看操作系统的书
其中有段代码是从实模式和保护模式之间的切换,里面牵扯到在段的开始定义段是16位还是32位([bits 16][bits 32]),代码段定义这个我可以理解,毕竟要确定操作数的位数,但堆栈段为什么也要刻意定义为32位呢?我觉得堆栈段和数据段无所谓16位还是32位,反正操作数的长度都是由代码段本身决定的。
总之,16位数据段/堆栈段和32位的数据段/堆栈段有什么区别呢?
------解决方案--------------------
段是位数区别在于使用它时用的是 ip还是eip,或 sp或esp
------解决方案--------------------
段是位数区别在于使用它时用的是 ip还是eip,或 sp或esp
------解决方案--------------------
位数不一样应该会导致每次压栈和出栈时指针的移动的字节数不一样吧。。。
我最近在看操作系统的书
其中有段代码是从实模式和保护模式之间的切换,里面牵扯到在段的开始定义段是16位还是32位([bits 16][bits 32]),代码段定义这个我可以理解,毕竟要确定操作数的位数,但堆栈段为什么也要刻意定义为32位呢?我觉得堆栈段和数据段无所谓16位还是32位,反正操作数的长度都是由代码段本身决定的。
总之,16位数据段/堆栈段和32位的数据段/堆栈段有什么区别呢?
------解决方案--------------------
段是位数区别在于使用它时用的是 ip还是eip,或 sp或esp
------解决方案--------------------
段是位数区别在于使用它时用的是 ip还是eip,或 sp或esp
------解决方案--------------------
位数不一样应该会导致每次压栈和出栈时指针的移动的字节数不一样吧。。。