cpu-registers

    0热度

    1回答

    我在读一本关于MIPS的书。在那本书中,我找到了下图,其中D代表数据,Clk是时钟。有人可以解释我,因为我不是来自电气工程背景(我来自计算机工程背景)。数据中的十字(数字)是什么?

    2热度

    2回答

    我想读和我下面这些步骤ARM9(SAM9X25)写寄存器:http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.faqs/ka3750.html 我用下面的代码结束: #include "stdio.h" #define PIO_WPMR_BANK_D 0xFFFFFAE4 // PIO Write Protectio

    0热度

    3回答

    我的问题特定于手臂皮质M3微控制器。微控制器上的每个外设都是内存映射的,这些内存地址用于处理。 例如:GPIOA-> ODR = 0; 这将在地址0x4001080C处写入0。 该地址在微控制器的特定设备文件中定义。 现在,皮质M3有处理器内核寄存器R0-R12(通用)。我想知道,这些寄存器是否也有像其他外设一样的地址? 所以,如果我有指令:MOV R0,#10; 将R0翻译成某个地址时组装?核心

    -1热度

    2回答

    我想通过mmap访问我的ARM(https://4donline.ihs.com/images/VipMasterIC/IC/ATML/ATML-S-A0001248554/ATML-S-A0001248554-1.pdf)上的物理地址寄存器,但我不知道要放多长。 例如,如果我有一个地址为0xFFFFFCE8的寄存器,其中我可以访问32位。 我应该在mmap size_t中输入什么? 谢谢你的帮助

    0热度

    2回答

    我有一个问题,使用arm64内联汇编从一个LKM中加载64位地址到寄存器。 我想在内核内存中设置一个函数钩子。所以每次调用某个特定的函数时,都应该分支到我的函数中。 我的想法是一个地址加载到寄存器中,这是在使用该运行获得: unsigned long address = &hooked_do_undefinstr; 然后写的 BLR X3 相应的操作码到存储器中。 我想因为我有运行时获得的

    0热度

    2回答

    我正在做一个实验,将循环索引写入CPU寄存器R11,然后用gcc -ffixed-r11编译它,试图让编译器知道不要使用该reg,最后使用perf来衡量它。 但是,当我检查报告(使用perf script),大多数记录条目的R11值不是我所期望的,它应该是数字序列,如1..2..3或1..4 .. 7等,但实际上它只是一些固定值。 (可能受系统调用覆盖影响?) 我如何让perf记录我设置到我的程序

    0热度

    1回答

    我一直对多路复用器的概念感到困惑。我只是想知道32位n对1多路复用器的结构是什么。

    -1热度

    2回答

    为什么根据ARM过程调用标准将r12指定为临时寄存器?它位于两组保存寄存器之间:r4-r11和sp-lr-pc。为什么不让r0-r4临时保存并保存其他所有内容?

    1热度

    1回答

    我试图在STM32L4芯片的存储器闪存中写入数据。这将在编程上下文中完成,其中我使用C调用ST-Link实用程序命令行。 所以这里是闪存的一个例子: 0 4 8 C 0x1FFF7000 FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF 到目前为止,我已经能够只写32位在64位数据空间: 0 4 8 C 0x1FF

    1热度

    1回答

    在查看gdb输出并查看程序集调用时,通常可以使用硬编码值查找命令以确定寄存器是否从右向左加载或相反亦然。 通常类似以下内容: sub rsp, 16 或 sub 16, rsp 但其他时候,像上面没有值是可见的。 所有我看到的是这样的方法调用如下: (gdb) disassemble Dump of assembler code for function main: 0x00000