首页 热点资讯 义务教育 高等教育 出国留学 考研考公

linux0.00 head.s 堆栈段在哪

发布网友 发布时间:2022-04-24 18:56

我来回答

1个回答

热心网友 时间:2023-11-04 06:25

装入全指针指令LDS,LES,LFS,LGS,LSS
这些指令有两个操作数。第一个操作数是一个有效地址,第二个是一个通用寄存器。指令从该地址
取得48位全指针,将选择符装入相应的段寄存器,而将32位偏移量装入指定的通用寄存器。注意在
内存中,指针的存放形式总是32位偏移量在前面,16位选择符在后面。LDS/LSS等装入指针以后,
就可以用DS:[ESI]/SS:[ESP]等这样的形式来访问指针指向的数据了。
比如这里:
lss init_stack,%esp
而:
init_stack:
.long init_stack ;四字节地址
.word 0x10 ;段选择符,同数据段选择符
这样执行后SS中装入段选择符0x10,ESP中装入init_stack的地址,栈顶在init_stack标号处。
*/

// 在新的位置重新设置IDT和GDT表。

热心网友 时间:2023-11-04 06:25

装入全指针指令LDS,LES,LFS,LGS,LSS
这些指令有两个操作数。第一个操作数是一个有效地址,第二个是一个通用寄存器。指令从该地址
取得48位全指针,将选择符装入相应的段寄存器,而将32位偏移量装入指定的通用寄存器。注意在
内存中,指针的存放形式总是32位偏移量在前面,16位选择符在后面。LDS/LSS等装入指针以后,
就可以用DS:[ESI]/SS:[ESP]等这样的形式来访问指针指向的数据了。
比如这里:
lss init_stack,%esp
而:
init_stack:
.long init_stack ;四字节地址
.word 0x10 ;段选择符,同数据段选择符
这样执行后SS中装入段选择符0x10,ESP中装入init_stack的地址,栈顶在init_stack标号处。
*/

// 在新的位置重新设置IDT和GDT表。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com