Nasm是Netwide Assembler,一个开源的x86 / x64汇编程序。它旨在实现可移植,模块化和简单的语法。
我正在关注github教程(链接:https://github.com/gmarino2048/64bit-os-tutorial/),当我在第1.3章的“load.asm”上遇到这行代码时: ;接下来是气缸和
可能的重复: LEA 指令的目的是什么? 当我需要某个地址的值时,我可以使用有效地址,例如压入双字 [str+4]。但是当我需要引用地址时...
可能的重复: LEA 指令的目的是什么? 当我需要某个地址的值时,我可以使用有效地址,例如压入双字 [str+4]。但是当我需要引用地址时...
可能的重复: LEA 指令的目的是什么? 当我需要某个地址的值时,我可以使用有效地址,例如压入双字 [str+4]。但是当我需要引用
我是汇编初学者,我在代码中遇到了意外行为。代码按预期工作,将数字从 contador 变量打印到 1,但是当我删除未使用的变量循环时(
我的 x86_64 操作系统中由于 GDT 选择器 1113 导致一般保护故障的原因是什么?
我正在开发一个基于x86架构的64位操作系统,它使用limine-8.6.0引导加载程序。我已启用 GDT 全局 gdt_flush gdt_flush: LGDT [RDI] jmp reloadSegments 视网膜色素变性
将 asm 文件链接到 kernel.c 代码。 在 bootloader.asm 中,我添加了屏幕的视频模式。 这需要 1024*800,但接下来需要在视频内存中添加位图 到字体或像素绘图...
我是汇编初学者,我在代码中遇到了意外行为。代码按预期工作,将数字从 contador 变量打印到 1,但是当我删除未使用的变量循环时(
使用 JNI 时如何使用 sigaction() 捕获 SIGSEGV、SIGALRM 和 SIGFPE?
我的目标是从本机代码中捕获 SIGSEGV(无限递归)、SIGALRM(无限循环,由计时器引发)和 SIGFPE(除以 0),因为我想防止 Minecraft(Java)崩溃或
为什么我的汇编程序在达到值 10 后仍继续执行,即使比较正确?
我正在汇编 x86-64 中编写一个程序,其目标是增加一个值 (num) 直到达到 10。但是,尽管使用正确的比较来检查 num 是否小于 10,该程序
我正在尝试使用 NASM 和 gcc 来学习 Linux 上的 x86-64 汇编。我已经制作了最简单的可以想象的汇编函数,它除了返回 0 之外什么也不做。这是 corr.asm: 格洛...
为什么这个程序会在 SYSCALL 周围使用 LOOP 产生无限循环?
节.data 哈哈:db“哈哈”,10 全局_start 节.文本 _开始: 移动接收,5 主循环: 移动 rax,1 莫夫rdi,1 mov rsi,哈哈 移动rdx,4 系统调用 循环主循环...
节.data 哈哈:db“哈哈”,10 全局_start 节.文本 _开始: 移动接收,5 主循环: 移动 rax,1 莫夫rdi,1 mov rsi,哈哈 移动rdx,4 系统调用 循环主循环...
如我的标题中所述,我使用以下代码来获取输入并将其转换为整数,以非数字字符终止。它编译得很好,但不想运行。相反,我...
如我的标题中所述,我使用以下代码来获取输入并将其转换为整数,以非数字字符终止。它编译得很好,但不想运行。相反
以下是重置段的代码: 全局重新加载段 节.文本 重新加载段: ;重新加载 CS 寄存器,偏移量为 0x08 jmp 0x08:.reload_CS .reload_CS...
CoreWars 安全挑战有助于破解安全(由 Jester 解决,请查看评论)
我有这个保险箱1: 开始: 推斧 MOV字[0D5h],0 莫夫CX,2 循环器: 添加[0D5h],AX MOV AX,[0D5h] 多路CX INC CX cmp这个词...
我有这个保险箱1: 开始: 推斧 MOV字[0D5h],0 莫夫CX,2 循环器: 添加[0D5h],AX MOV AX,[0D5h] 多路CX INC CX cmp这个词...
本教程展示了如何编写我自己的简单操作系统: 编写您自己的操作系统教程:http://joelgompert.com/OS/TableOfContents.htm 一切都好,但语言发展......
最近在做操作系统,在制作GDT时遇到了一个大问题 内核代码(这就是我拼写内核的方式): [组织0x0] [位 16] jmp 短启动 %定义ENDL 0x0D,...