Python
Java
PHP
IOS
Android
Nodejs
JavaScript
Html5
Windows
Ubuntu
Linux
为什么当设置为 TLS 选择器时,ES 和 DS 在 64 位内核上最终会归零?
下面的 32 位程序调用set thread area 2 http linux die net man 2 set thread area在 GDT 中创建一个条目 该条目旨在用于 TLS 通常将结果选择器放入FS or GS并成功使用
Linux
x86
x8664
gdt
在长模式下更改 GDT 并更新 CS
我正在编写一个简单的自制 64 位操作系统 通过 UEFI 启动它 这意味着当我的代码开始执行时 它已经处于长模式 并且启用了分页 现在 退出 UEFI 引导服务后 我想用我自己的控制结构替换 UEFI 构建的所有控制结构 成功更改 CR3
Assembly
64bit
x8664
osdev
gdt
x86处理器如何在引导加载程序加载GDT后立即获取指令?
在为 x86 编写的典型简单引导加载程序中 我们有以下代码来加载 GDT 并执行远跳转 请注意 在执行以下代码之前 CS 为 0x0 lgdt gdtdesc movl cr0 eax orl 1 eax movl eax cr0 Jump
Assembly
x86
operatingsystem
osdev
gdt
386的“D位”中的“D”代表什么?
In 关于 GDT 的文章OSDev wiki 描述了用作 CS 描述符的 D 位的标志 如下所示 Sz 尺寸位 如果0选择器定义16位保护模式 如果1它定义了32位保护模式 您可以同时拥有 16 位和 32 位选择器 另一个问题引用了英特
Assembly
x86
terminology
memorysegmentation
gdt
我可以在gdb下打印gdtr和gdt描述符吗?
I want to use gdb to see my GDTR LDTR TTR and segment register 不可见部分 x86 所以在 gdb 中我输入 p x gdtr 等 但结果是 6 值无法转换为整数 在 gdb 中
Assembly
Linuxkernel
x86
GDB
gdt
如何在 NASM 汇编中进入 32 位保护模式?
我正在学习 x86 汇编 并且正在尝试在 NASM 中制作一个玩具操作系统 但我不明白一些东西 我制作了一个成功启动内核的引导加载程序 从包含内核文件的软盘中加载 14 个扇区 在这些标记为的扇区中搜索文件kernel feo 将该文件加载
Assembly
x86
nasm
gdt