Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
锟斤拷有点烫
cunix
提交
df0774c3
C
cunix
项目概览
锟斤拷有点烫
/
cunix
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
cunix
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
df0774c3
编写于
2月 23, 2021
作者:
R
rain
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
0.556s-int: init IDT and set handler
上级
9d2c5f2c
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
53 addition
and
1 deletion
+53
-1
LINES
LINES
+2
-0
README.md
README.md
+3
-0
kernel/kernel.asm
kernel/kernel.asm
+48
-1
未找到文件。
LINES
浏览文件 @
df0774c3
...
...
@@ -16,3 +16,5 @@
2021-2-23 0.509: 509 lines, 6 files, rain
2021-2-23 0.556: 556 lines, 6 files, rain
README.md
浏览文件 @
df0774c3
...
...
@@ -45,6 +45,9 @@ Cunix kernel
`
0.509s-kernel
`:
	load kernel to 0x8200-0x9200 for 4KB, kernel.asm display 'K' to screen.
`
0.556s-int
`
:
	init IDT at 0x0000-0x1000, and set all handler at ignore_int, but it do nothing.
</pre>
kernel/kernel.asm
浏览文件 @
df0774c3
...
...
@@ -17,10 +17,57 @@
org
0x8200
bits
64
_start:
mov
byte
[
0xb8000
],
'K'
hlt
call
setup_idt
lidt
[
idt64_descriptor
]
sti
jmp
$
setup_idt:
lea
rdx
,
ignore_int
mov
rax
,
(
0x08
<<
16
)
mov
ax
,
dx
mov
rcx
,
(
0x8e00
<<
32
)
add
rax
,
rcx
mov
ecx
,
edx
shr
ecx
,
16
shl
rcx
,
48
add
rax
,
rcx
shr
rdx
,
32
; we save IDT at 0x0000000000000000 like BIOS
lea
rdi
,
0x0000000000000000
mov
rcx
,
256
.setup_loop:
mov
[
rdi
],
rax
mov
[
rdi
+
8
],
rdx
add
rdi
,
0x10
dec
rcx
jne
.setup_loop
ret
ignore_int:
add
byte
[
0xb8000
],
1
; CPU will cli when it call ignore_int
hlt
idt64_length
equ
0xff
*
16
idt64_descriptor:
dw
idt64_length
dd
0x0000000000000000
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录