Python
Java
PHP
IOS
Android
Nodejs
JavaScript
Html5
Windows
Ubuntu
Linux
比较堆栈中的两个值? [复制]
这个问题在这里已经有答案了 我卡住了 在我的汇编代码中 我想比较两个值 堆 x86 语法 AT T cmpl 4 ebp 4 ebp 错误 cmp 的内存引用太多 我认为不可能根据乘数和 ebp 来比较两个值 有什么建议 您可以使用 CMP
Assembly
x86
cpuregisters
cmp
CPU寄存器和CPU缓存有什么不同吗? [关闭]
Closed 这个问题是无关 help closed questions 目前不接受答案 CPU寄存器和CPU缓存有什么不同吗 是的 CPU寄存器只是少量的数据存储 方便CPU的一些操作 CPU缓存 它是一种高速易失性存储器 尺寸较大 有助
cpuregisters
cpucache
ARM Cortex A8 PMNC 读取在启用后也给出 0.. 有什么想法/建议吗?
MODULE LICENSE GPL MODULE DESCRIPTION user mode access to performance registers int init arm init void unsigned int valu
Linuxkernel
arm
kernelmodule
cpuregisters
cortexa8
为什么我的汇编程序没有将 r1 设置为正确的值?
我正在 LC3 机器上编写汇编程序 我的汇编程序是一个 LC3 程序 它将 R2 和 R3 相乘并将结果存储在 R1 中 这是我的源代码 带注释 Sets pc to this address at start of program ORI
Assembly
Simulator
cpuregisters
machinecode
lc3
RISC-V 调用约定的 ABI 寄存器名称
我对 RISC V ABI 寄存器名称感到困惑 例如 第 85 页的 RISC V 指令集手册 第一卷 用户级 ISA 版本 2 0 中的表 18 2 指定堆栈指针sp正在注册x14 然而 指令 addi sp zero 0 由 riscv
cpuregisters
callingconvention
ABI
RISCV
MIPS 中的影子寄存器是什么以及它们如何使用?
当我了解 MIPS 架构时 我遇到了影子寄存器 据说它们是通用寄存器的副本 我无法理解以下内容 何时使用影子寄存器 MIPS 影子寄存器用于减少处理中断时的寄存器加载 存储开销 分配了影子寄存器组的中断不需要保存任何现有上下文来提供空闲寄存
MIPS
CPU
cpuregisters
cpuarchitecture
为什么 Evan 的调试器说我要转向 eax 而不是 rax?
我正在将一些值移至 rax 但调试器显示它正在移至 eax 这是怎么回事 是用调试器 nasm 还是我的知识 无论如何 代码当然可以完美运行 我使用的调试器是 Evan s Debugger 简而言之 您和调试器都是正确的 当您将某物移动到
debugging
Assembly
x86
cpuregisters
如何从程序访问控制寄存器cr0、cr2、cr3?出现分段错误
我编写了一个程序 尝试读取和写入控制寄存器 程序编译得很好 但是当内联汇编即将执行时 它会产生分段错误 Code void instructions int val int i int value for i 0 i lt val i as
x86
inlineassembly
cpuregisters
eax如何存储大小大于4字节的返回值?
EAX在32位平台上用于存储函数的返回值 我想知道如果函数的返回值的大小大于4个字节 eax如何处理 在这种情况下 操作系统可以将返回值保存在堆栈上 并将堆栈地址存储在EAX中 但是操作系统如何判断EAX中存储的值是返回值的地址还是实际上是
Assembly
returnvalue
cpuregisters
记住 x86-64 System V arg 寄存器顺序的最佳方法是什么?
我经常忘记系统调用中每个参数需要使用的寄存器 每次我忘记时我都会访问this https stackoverflow com questions 2535989 what are the calling conventions for un
Assembly
x8664
cpuregisters
callingconvention
ABI
内联asm未经优化无法编译
我需要在 32 位 Linux 进程中使用 futex 系统调用 但无法使用syscall函数 标头不可用 这仍然可以通过使用内联汇编来完成 如下所示 include
c
Linux
x86
inlineassembly
cpuregisters
通过修改LLVM Backend来Clobber X86寄存器
我正在尝试稍微改变 X86 目标的 LLVM 后端 以产生一些所需的行为 更具体地说 我想模拟一个像 gcc 的 fcall used 这样的标志reg option https gcc gnu org onlinedocs gcc Cod
LLVM
x8664
cpuregisters
LLC
零寄存器如何提高性能?
在 MIPS ISA 中 有一个零寄存器 r0 始终给出零值 这允许处理器 任何产生要被丢弃的结果的指令都可以将其目标定向到该寄存器 成为一个来源0 据说在这source https web archive org web 20170328
MIPS
cpuregisters
instructionset
多核 CPU 中的核之间/跨核访问寄存器
这可能听起来很疯狂 但我似乎不清楚是否有一个接口可供汇编程序员编写代码将内核 1 上的一个寄存器加载到内核 2 上的寄存器 例如 将内核 1 上的 EAX 加载到内核 2 上的 EAX 有可能吗 更多关于汇编程序员使用两个核心 在多个核心上
Assembly
multicore
cpuregisters
为什么 32 位寄存器上的 x86-64 指令会将整个 64 位寄存器的上部清零?
In the x86 64 Intel 手册之旅 http x86asm net articles x86 64 tour of intel manuals I read 也许最令人惊讶的事实是诸如这样的指令MOV EAX EBX自动将高
Assembly
x86
x8664
cpuregisters
zeroextension
处理 ARM 芯片的保留寄存器位
我正在使用 ARM Cortex M3 的寄存器 在文档中 某些位可能是 保留的 我不清楚在寄存器上写入时应该如何处理这些保留位 这些保留位是否可写 我应该小心不要碰它们吗 如果我碰它们 会发生什么不好的事情吗 这是关于如何处理保留位的经典
c
arm
cpuregisters
ORG指令后设置段寄存器
我目前正在关注操作系统开发教程 http brokenthorn com Resources OSDev4 html 其中包括有关引导加载程序的讨论 我的引导加载程序当前处于 16 位实模式 因此 我能够使用提供的 BIOS 中断 例如 V
nasm
x8616
cpuregisters
Segment
memorysegmentation
x86 保护模式下段寄存器的用途是什么?
我需要修改一些dll 但我不知道段寄存器到底是做什么的 DS SS 处于保护模式 我在学校学到了真正的 16 位模式 其中段寄存器乘以 16 加上普通寄存器中的偏移量给出了物理内存中的有效地址 在保护模式下 有一些平面内存模型和虚拟内存 其
Assembly
x86
cpuregisters
memorysegmentation
变址寻址方式和隐式寻址方式
索引寻址模式通常用于访问数组 因为数组是连续存储的 我们有一个索引寄存器 它在每次迭代中都会递增 当添加到基地址时 它会给出数组元素地址 我不明白这种寻址模式的实际需要 为什么我们不能通过直接寻址来做到这一点 我们有了基地址 每次访问的时候
cpuarchitecture
cpuregisters
RISC
是否有任何架构使用相同的寄存器空间来进行标量整数和浮点运算?
我见过的大多数支持本机标量硬件 FP 支持的架构将它们推入完全独立的寄存器空间 与主寄 存器集分开 我见过的大多数支持本机标量硬件 FP 支持的架构将它们推入完全独立的寄存器空间 与主寄 存器集分开 X86 的传统 x87 FPU 使用带有
floatingpoint
cpuarchitecture
cpuregisters
1
2
3
4
»