assembly 相关问题

汇编语言(asm)编程问题。请务必使用您正在使用的处理器和/或指令集以及汇编程序。警告:对于.NET程序集,请改用标签[.net-assembly]。对于Java ASM,请改用标签[java-bytecode-asm]。

将指针寄存器移至AL

我有一个指针寄存器 edx,它由以下指令设置: mov edx,字符串变量 在哪里 stringvar 定义为 stringvar: db "teststring", 0xA, 0xD, 0 所以 edx 包含

回答 1 投票 0

对 esp32 和 esp8266 进行编程

如何使用汇编对 ESP32 或 ESP8266 模块进行编程?我不想使用arduino ide。我想出了一种用汇编对 atmel 芯片进行编程的方法。我想学习如何编程 esp32 和 esp8...

回答 2 投票 0

如何编写 C 代码,以便生成的 ASM 使用加载较小数据块的指令?

我正在反编译作为调试版本提供的 PS2 游戏。为了验证我的 C 代码与原始代码是否匹配,我使用最初使用的编译器(Metrowerks CodeWarrior)对其进行编译,disas...

回答 1 投票 0

如何使用 NASM 组装对绝对 ptr addr(相对于当前 rip)的相对调用?

我希望 NASM 生成类似于以下内容的代码: 调用 qword ptr [rip + 0x540] 但似乎不知道如何做到这一点。 我当前的代码是: 位 64 默认相对值 组织 0x10000000 abs_addr_of_func_ptr EQU

回答 1 投票 0

Clang 编译器标志 -mbranch-protection=pac-ret+bti 不生成 bti 指令

我遇到了 clang 编译器标志 -mbranch-protection=pac-ret+bti 的奇怪行为。通过查看文档,预期行为似乎会生成 PAC (paciasp) 作为 w...

回答 1 投票 0

如何理解Assembly中的字符串数组转换

有一个寄存器,其中包含一个字符串。我不明白完成以下指令时发生的隐式转换。 ##以下命令都是在gdb中完成的 设置...

回答 1 投票 0

为什么我的 BIOS 磁盘读取程序停止而不是打印?

我最近开始了一个编写操作系统的项目,直到“磁盘读取”为止进展顺利。 代码应该加载下一个扇区并打印刚刚存储的字母“H”

回答 1 投票 0

在 x86 上发送 IPI 后内存写入是否可见?

我已经阅读了Intel 64 and IA-32 Architectures SDM vol 3A, 9.2 MEMORY ORDERING,但是有一个问题一直困扰着我。 如果我首先写入内存地址,然后发送处理器间

回答 3 投票 0

arm64 ldp指令编码

假设我写以下内容: asm("ldp x0, x0 [x0, #0]!"); 由于寄存器和立即数都是 0,我们可以很容易地看到操作码编码:Godbolt 将其呈现为 0xa9c00000。 ...

回答 1 投票 0

为什么汇编中的add指令看起来会进行隐式的sizeof()转换?

考虑以下 x86 ASM 指令: mov eax, [ebp+StrPointer] 添加 eax, 1 mov [ebp+StrPointer], eax 这里,[ebp+StrPointer]是指向某个堆分配的字符串的指针。显然...

回答 1 投票 0

如何从x86汇编代码调用C语言函数?

我最近正在尝试自学操作系统并玩弄xv6操作系统进行教学。我使用的版本是 GitHub 上的 x86 版本。 我一直在做的是在启动时尝试使用2级分页...

回答 1 投票 0

为什么LDP在使用w寄存器时会崩溃,而使用x寄存器时不会崩溃

在Apply M1的Aarch64程序集上,当将LDP与w 32位寄存器一起使用时,我收到EXC_BAD_ACCESS错误。当我使用 x 64 位寄存器时,不会发生同样的问题。 使用 x 的示例有效

回答 1 投票 0

我如何修复我的代码中Msg3中的显示?

我不知道我应该在代码中更改什么 .型号小 .stack 100h 。数据 Msg1 DB '输入第一个数字:$' Msg2 DB 10, 13, '输入第二个数字:$' Msg3 DB 10, 13, '输入的数字是:$'

回答 1 投票 0

Option 的 Rust 组装<i32>

此代码在 https://gcc.godbolt.org/z/jqEjasPTW 中使用 -C opt-level=3 编译 #[no_mangle] pub fn match1(num: i32) -> i32 { 如果数字 == 10 {99} 否则 {11} } #[no_mangle] pub fn match2(num: 选择...

回答 1 投票 0

在MIPS中反转字符串时加载字节和存储字节问题?

我正在尝试反转汇编中的字符串。我是新手,所以我不知道如何调试。这是当前的代码。 ## $a0 --> 字符串地址 ## $v0 --> 字符串长度 反向字符串: ...

回答 1 投票 0

了解字节顺序和寄存器分配:Little Endian 与 Big Endian

我一直在学习大端和小端架构,发现我的电脑以小端运行。使用一个简单的程序,我将值 0xA000 加载到 ax 寄存器中并观察到...

回答 1 投票 0

为什么我的 fputc 调用继续导致分段错误?

我正在尝试创建一个程序,该程序创建一个新文件并将现有文件的内容复制到其中。我能够打开读取原始文件的内容并将其写入内存,但是当它...

回答 1 投票 0

Z80 CPU 编译器

我是一名工程学院的学生,我在做项目时遇到了一个问题。在这个项目中,我正在设计一个微控制器。我选择使用 Z80 CPU 因为它简单...

回答 1 投票 0

z80 cpu 的 c 编译器

我是一名工程学院的学生,我在做项目时遇到了一个问题。在这个项目中,我正在设计一个微控制器。我选择使用 Z80 CPU 因为它简单...

回答 1 投票 0

有没有办法使用 printf 在 Linux 上的 NASM 汇编中打印递减十六进制数字的水平列表

我本质上想编写一个程序,接受 F 并将其递减直到为 0,显示结果如下:F E D C B A 9 8 7 6 5 4 3 2 1 0。我特别必须使用循环来写出这些结果.. .

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.