自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(6)
  • 收藏
  • 关注

转载 两张图看懂GDT、GDTR、LDT、LDTR的关系

根据描述符描述符所描述的对象不同,描述符可分为三类:储存段描述符,系统段描述符,门描述符(控制描述符)。32位汇编中16位段寄存器(CS、DS、ES、SS、FS、GS)中不再存放段基址,而 是段描述符在段描述符表中的索引值,D3-D15位是索引值,D0-D1位是优先级(RPL)用于特权检查,D2位是描述符表引用指示位TI,TI=0指 示从全局描述表GDT中读取描述符,TI=1指示从局部描述符表LDT中读取描述符。这些信息总称段选择符(段选择子)。④ 用段选择符高13位的位置索引值从LDT段中得到段描述符。

2024-10-29 18:02:56 13

原创 ld: i386 architecture of input file `kernel.o‘ is incompatible with i386:x86-64 output

学习操作系统时,链接几个用nasm汇编器生成的elf文件时,出现如题所示的错误提示。操作如下:nasm -f elf kernel.asm -o kernel.onasm -f elf string.asm -o string.onasm -f elf kliba.asm -o kliba.ogcc -c start.c -o start.o -fno-builtin-memcpyld -s -Ttext 0x30400 -o kernel.bin kernel.o kliba.o string

2021-07-05 15:18:17 2576 7

转载 内核中的内存都不分页

原文链接:https://www.cnblogs.com/james1207/p/3278424.html《linux内核设计与实现》,2.4.3节中有这么一句话:“内核中的内存都不分页”。内存分页机制是为普通进程设计的,每一个普通进程的内存空间都被划分为特定大小的页,如此一来,在某一个特定的时刻,该进程按需可以调进另一个内存页,而把长时间没有使用的页换出。内核与其它普通进程一样,也是一个进程,但却与其它普通进程不同,它可以直接操作硬件,并且它也控制着分页机制以及内存页换入换出的替换算法。因此,对内核占

2020-10-21 11:55:20 590

转载 [转载] 利用pushfd/popfd检测虚拟机(cpu模拟器)

执行popfd前:EFLAGS = 00200202[ESP] = FFFFFAFF执行popfd后:EFLAGS = 00244AD7不等于[ESP]中的FFFFFAFF,什么原因导致的呢?POPFD不是简单把[ESP]赋值给EFLAGS某些虚拟机(CPU模拟器)简单的把[ESP]值pop给了ELF,导致popfd后-》再pushfd-》再pop出来的值是相同的,实际如上,应该是不同的,popfd只对某些位有影响。这应该算是某些CPU模拟器的BUG....

2020-09-25 10:26:17 291

原创 描述符表、段描述符选择子、段描述符与段之间的关系

X86汇编中的那些表把我搞得晕头转向,这两天理了一下几个表之间的关系,记录下来。

2020-06-21 23:16:02 1456

原创 研究X86汇编中的栈段初始化问题时候得到的一些经验

学了一段时间汇编,发现李忠老师的《X86汇编语言:从实模式到保护模式》十分不错,读下来的过程中能有一些自己的理解。栈段是个一直困扰我的问题,主要原因就是栈段不同于代码段和数据段,栈段的扩展方式是向下扩展的(向低地址扩展),所以栈段的段界限是其下限,而上限是无限制的(其实是有的,就是可用的最大的内存地址)。看过一个论坛里边,对向上同向下扩展的段的偏移地址的描述十分到位:“当段最大为1M时,在自然的...

2020-02-28 10:53:11 2405

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除