Python
Java
PHP
IOS
Android
Nodejs
JavaScript
Html5
Windows
Ubuntu
Linux
识别一般保护故障 (x86) 上的故障地址
我正在尝试为 x86 上的一般保护错误 GP 13 编写 ISR 我无法从 INTEL 文档中找出如何找出导致异常的错误地址 我知道对于页面错误异常 GP 14 cr2 寄存器保存错误地址 任何帮助表示赞赏 我在这里所做的所有参考资料均来自
operatingsystem
x86
osdev
interrupthandling
与 CMPSB 指令混淆
我一直在看这段代码 我对代表 cmpsb line LOOP push cx mov cx 0x000B eleven character name mov si ImageName image name to find push di r
Assembly
nasm
BootLoader
16bit
osdev
C 函数的返回值到 ASM
我正在尝试从 ASM 中调用一个函数 我知道如何调用它 但我无法找到如何获取该函数的返回值 示例如下 C code int dummy return 5 N ASM代码 dummyFunction call dummy grab retur
c
Assembly
nasm
osdev
自己内核的键盘中断处理程序 (C)
我正在编写一个小型操作系统作为学校作业的一部分 但在获取键盘输入 按一个键 gt 将其显示在屏幕上 时我遇到了困难 我正在使用 osdev org 的 Bare Bones 教程 gcc 交叉编译器 GRUB 引导加载程序 ld 链接器 并
gcc
x86
Kernel
inlineassembly
osdev
x86 内核中的键盘 IRQ
我正在尝试编写一个非常简单的内核以用于学习目的 在阅读了一堆有关 x86 架构中的 PIC 和 IRQ 的文章后 我已经明白了IRQ1是键盘处理程序 我使用以下代码来打印按下的键 include port io h define IDT S
c
x86
Kernel
osdev
irq
了解IDTR寄存器吗?
我无法理解这张解释 intel X86 64 处理器中 IDTR 的图像 IDT 基地址大小是 64 我完全明白 因为它可以nearly记忆中的任何地方 但是 为什么 IDT 限制为 16 位呢 为什么我们需要所有这些位 每个向量的大小为
operatingsystem
x8664
osdev
interrupthandling
x86处理器如何在引导加载程序加载GDT后立即获取指令?
在为 x86 编写的典型简单引导加载程序中 我们有以下代码来加载 GDT 并执行远跳转 请注意 在执行以下代码之前 CS 为 0x0 lgdt gdtdesc movl cr0 eax orl 1 eax movl eax cr0 Jump
Assembly
x86
operatingsystem
osdev
gdt
在 x86 程序集中制作鼠标处理程序
我正在 NASM 程序集中编写操作系统 但在制作鼠标处理程序 指向设备 BIOS 接口处理程序 时遇到问题 我尝试在互联网上搜索如何做到这一点 但没有成功 这是设置的代码 call checkPS2 PS2 routines jc NOMO
Assembly
x86
nasm
BootLoader
osdev
使用 GRUB2 引导非多重引导内核 [关闭]
Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我想使用 GRUB2 启动自定义内核 非多重启动 我已经读到我需要grub cfg像这样 menuentry custom kernel set root hd0 0 chainlo
x86
osdev
grub
移动文本模式光标不起作用
我一直致力于在我目前正在开发的操作系统中移动文本模式光标 我根本无法让它显示出来 这是我用来更新光标的代码 void update cursor unsigned char cursor loc y pos Cols x pos curso
c
Assembly
osdev
NASM:发出非标量(链接时间)值的 MSW [重复]
这个问题在这里已经有答案了 我正在尝试定义一个常量IDT 中断描述符表 进入NASM 为此 我需要将双字地址的高位字发送到数据表中直到链接时间才解决 有办法做到吗 这是中断处理程序 Interrupt 3 breakpoint handle
Assembly
x86
nasm
ld
osdev
“times 510-($-$$) db 0”不起作用
我正在学习引导扇区 我从以下位置下载了 nasm installer x64 exeNASM网站 我的操作系统是win7 64位 当我运行以下代码时 它无法正常工作 mov ah 0x0e mov al the secret int 0x1
Assembly
nasm
BootLoader
osdev
x8616
像 PTLsim 这样的 CAS 模拟器如何实现 x86 硬件的周期精确模拟?
谁能告诉我 CAS 软件怎么样http www ptlsim org 工作 如果不知道每条指令使用了多少个周期 也不知道 CPU 分支预测逻辑 那么它们如何实现周期精度 或者一切都可以通过保密协议获得吗 我想它们可能可以非常准确地命中或错过
x86
Simulation
RTOS
osdev
Rustc/LLVM 为 aarch64 生成错误代码,opt-level=0
我有两个文件被组装 编译 链接到简约内核中 start s set CPACR EL1 FPEN 0b11 lt lt 20 set BOOT STACK SIZE 8 1024 global boot stack global start
Rust
qemu
ARM64
osdev
当处理器尝试访问不存在的物理地址时会发生什么?
想象一台内存小于 3 GB 的 32 位 x86 计算机 其 CPU 设置为禁用分页和平段描述符 0x0作为基础 0xffffffff作为数据和代码的有效限制 当ring0中的指令尝试使用a时会发生什么mov指令引用不受任何内存地址支持的物
Assembly
x86
RAM
osdev
addressspace
«
1
2