NASM 中的 MUL 运算符与 IMUL 运算符
MUL 运算符仅采用单操作数形式有什么原因吗? IMUL 运算符可以采用三种不同的形式(具有一个、两个或三个操作数),这更加方便。从技术角度来看,我看…
如何在vmware中启动?
我在 osdev wiki 中遇到了这两行。 nasm kernel.asm -f bin -o kernel.bin dd if=kernel.bin of=/dev/fd0 它将内核二进制文件复制到软盘。这是否意味…
Nasm,引导加载程序切换前景色和背景色
嘿,我正在使用 nasm 虚拟机等编写引导加载程序。无论如何,我使用 vram 来显示由 s、d、f、g 键触发的背景和字体颜色变化。 S 切换字体颜色和背景颜…
如何在 x86 汇编中调用 fgets?
根据 fgets() 的文档 ,该函数采用三个参数: char * - 将保存输入的字符串 int - 表示要读取的最大字符数的整数 FILE * - 要读取的流的 FILE * 我调…
为什么 scanf 在提供 double 时返回 0.000000?
我有以下汇编代码(为 Linux 上的 NASM 编写): ; This code has been generated by the 7Basic ; compiler extern printf extern scanf SECTION .da…
为什么这是一个无效的操作数?
我正在编写的编译器生成了以下 ASM 文件: ; This code has been generated by the 7Basic ; compiler ; Uninitialized data SECTION .bss v_0 resb 4…
无法使用 32 位汇编程序修改内存
我正在使用 NASM 来汇编我的汇编代码。我组装的代码如下所示: [BITS 32] [ORG 0] jmp 07c0h:start testvar db 0, 0, 0, 0, 0, 0, 4, 8, 15, 16, 23, …
movlps的NASM 64位立即地址给出“双字数据超出边界”
我需要具有 64 位宽立即地址的指令 movlps,根据 Intel 手册,这应该是完全可能的。所以,像这样: movlps xmm0, [0x7fffffffffa0] 但我得到的只是 NA…
汇编.asm时,可以将其反汇编为相同的语法吗?
假设我有一个简单的 nasm 程序来打印 hello!,当然是 intel 语法,当我组装它(使用 -f elf)并使用 ndisasm 进行反汇编时,它是完全不同的!为什么它…
使用 nasm 关闭计算机
是否可以从 nasm 关闭或终止计算机的电源(有区别吗?)。我知道您可以使用它来重新启动: mov al, 0xFE out 0x64, al 是否有相当于关闭的方法? 我正…
我的汇编器中出现段错误?但这是不可能的! :哦
好吧,我知道我们所有的 C/C++ 程序员都曾经遇到过我们不合时宜的克星,恶魔信号 SIGSEGV,即分段错误。现在,我明白(强调过去时态)这是由神奇的 GC…