<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>http://wiki.foofun.cn//index.php?action=history&amp;feed=atom&amp;title=Brokenthorn%27s_Known_Bugs</id>
	<title>Brokenthorn's Known Bugs - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.foofun.cn//index.php?action=history&amp;feed=atom&amp;title=Brokenthorn%27s_Known_Bugs"/>
	<link rel="alternate" type="text/html" href="http://wiki.foofun.cn//index.php?title=Brokenthorn%27s_Known_Bugs&amp;action=history"/>
	<updated>2026-04-06T21:20:52Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>http://wiki.foofun.cn//index.php?title=Brokenthorn%27s_Known_Bugs&amp;diff=832&amp;oldid=prev</id>
		<title>Zhang3：创建页面，内容为“Category:FAQBrokenthorn的系列教程是更好的一些OSDev教程。 它们教授更好的编码实践，并且非常深入。 像所有教程一样，其中也有一些错误。 以下是最常见的：  == CR0.PE描述错误 == 在OSDev8中，CR0.PE（位0）被错误地描述为将处理器设置为32位模式。 设置CR0的位0不会将处理器置于32位模式。 对32位代码段执行远跳将使处理器处于32位模式。 跳远本身仍将以…”</title>
		<link rel="alternate" type="text/html" href="http://wiki.foofun.cn//index.php?title=Brokenthorn%27s_Known_Bugs&amp;diff=832&amp;oldid=prev"/>
		<updated>2022-03-12T06:01:48Z</updated>

		<summary type="html">&lt;p&gt;创建页面，内容为“&lt;a href=&quot;/index.php?title=%E5%88%86%E7%B1%BB:FAQ&quot; title=&quot;分类:FAQ&quot;&gt;Category:FAQ&lt;/a&gt;Brokenthorn的系列教程是更好的一些OSDev教程。 它们教授更好的编码实践，并且非常深入。 像所有教程一样，其中也有一些错误。 以下是最常见的：  == CR0.PE描述错误 == 在OSDev8中，CR0.PE（位0）被错误地描述为将处理器设置为32位模式。 设置CR0的位0不会将处理器置于32位模式。 对32位代码段执行远跳将使处理器处于32位模式。 跳远本身仍将以…”&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Category:FAQ]]Brokenthorn的系列教程是更好的一些OSDev教程。 它们教授更好的编码实践，并且非常深入。 像所有教程一样，其中也有一些错误。 以下是最常见的：&lt;br /&gt;
&lt;br /&gt;
== CR0.PE描述错误 ==&lt;br /&gt;
在OSDev8中，CR0.PE（位0）被错误地描述为将处理器设置为32位模式。 设置CR0的位0不会将处理器置于32位模式。 对32位代码段执行远跳将使处理器处于32位模式。 跳远本身仍将以16位模式执行。&lt;br /&gt;
&lt;br /&gt;
==使用内联ASM的IRET==&lt;br /&gt;
在OSDev15中，提供的ISR处理程序使用内联asm从C函数iretd:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
void int_handler_5 () {&lt;br /&gt;
 &lt;br /&gt;
	_asm add esp, 12&lt;br /&gt;
	_asm pushad&lt;br /&gt;
 &lt;br /&gt;
	// do whatever...&lt;br /&gt;
 &lt;br /&gt;
	_asm popad&lt;br /&gt;
	_asm iretd&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
这会对所使用的调用约定进行假设，通常不是一个好主意。  可以[[Interrupt_Service_Routines|在这里]]找到更好的选项。&lt;br /&gt;
&lt;br /&gt;
== 缺少分号 ==&lt;br /&gt;
在OSDevPE中，IMAGE_THUNK_DATA结构体中缺少分号&lt;br /&gt;
&lt;br /&gt;
==分页代码问题==&lt;br /&gt;
在OSDev18中，分页代码存在一些问题。 它直接访问物理内存而不映射它。 你可以使用它作为基础，但实现递归分页。&lt;/div&gt;</summary>
		<author><name>Zhang3</name></author>
	</entry>
</feed>