arm64相关内容
LDAXR &和有什么区别?AArch64指令集中的 LDXR 条指令? 从参考手册中看,它们看起来完全一样("acquire"一词除外): LDAXR -加载获取专用寄存器:将字从基址寻址的存储器加载到Wt.将物理地址记录为独占访问. LDXR -加载专用寄存器:将一个字从基址寻址的存储器加载到Wt.将物理地址记录为独占访问. 谢谢 解决方案 最简单的形式是 LD
..
我已经在qemu 64位ARM上安装了Debian(阅读此帖子) 解决方案 如链接文章所建议,这要求在内核中启用CONFIG_COMPAT.另一方面,如果您的内核没有它,我会感到惊讶-我从该教程中学到的Debian 4.9.0-4内核确实设置了CONFIG_COMPAT.您可以通过查看客户机的/boot/中的配置文件来检查内核是否启用了它.如果缺少它,那么您需要一个新内核,而其他任何方法都
..
ARMv8不能具有64位堆栈吗?我知道AArch64上没有推入和弹出指令,所以堆栈管理是否留给AArch32进行参数传递等等?我们如何传递48位地址?总体而言,我很困惑在AArch64中进行操作时函数调用将如何工作. 解决方案 与32位 * 相似,SP是 stp xn,xm,[sp,#-16]! 请注意,为了维护,通常应使用 stp / ldp 代替 str / ldr 在堆栈上进
..
我正在尝试从Android Studio 3.4.2运行一些用于aarch64的内联汇编代码,但出现编译错误错误:不知道如何为约束'r'处理间接寄存器输入. 我的代码段如下 std :: string system_file ="/system/bin/sh";std :: int64_t file_descriptor = -1;#ifdef __aarch64____asm__ vo
..
我有一个具有32位本机库的应用程序.当我重新安装具有64位库的同一应用程序时,无法创建存在于data/data/application-package-name中的lib软链接. 此lib软链接映射到data/app/app-package-name-hash/arm(32位)或data/app/app-package-name-hash/ arm64 (64位) 出什么问题了?
..
我正在尝试从LKM内禁用ARM64系统上的Memory Write保护. (Xen虚拟机管理程序的DOM0中的Startet) 我使用Linux内核功能找到了对应于虚拟地址的PTE. pgd_t *pgd; pte_t *ptep, pte; pud_t *pud; pmd_t *pmd; pgd = pgd_offset(init_mm, (addr)); if (pgd_non
..
当我尝试在运行64位oracle JDK的ARM64计算机上启动cassandra 3.9和3.7时.但是它无法从没有找到类定义错误开始. JNA似乎有问题. 但是同样可以在ARM32机器上正常运行. 下面是cassandra的启动日志:- pi @ DietPi:〜/cassandra/apache-cassandra-3.9/conf $ ../bin/cassandra -
..
我的应用程序中具有以下设置以支持64位体系结构,但是当我提交给应用商店进行Beta测试时,出现一个错误,提示您的应用程序不支持64位.可能是什么原因呢? 解决方案 重做一次 1-Clean(拳头) 2构建(第二) 3档(第三档) 这可能是解决方案!
..
Microsoft最近作为Visual Studio 15.9的一部分发布了他们的ARM64构建工具.我正在准备移植到ARM64.我在多项式乘法方面遇到了麻烦. 我遇到的问题是,Microsoft不提供预期的数据类型(例如poly64_t)或类型转换(例如vreinterpretq_u64_p128).另请参见 arm64_neon.h 在GitHub上. 无法编译: #incl
..
在Windows X86中,可以使用cpuid内在函数查询CPU品牌. 这是代码示例: #include #include int main(void) { int cpubrand[4 * 3]; __cpuid(&cpubrand[0], 0x80000002); __cpuid(&cpubrand[4], 0x800
..
我正在64位Aarch64设备上的ARM环境下学习GCC内联汇编程序.我看到一条不太明白的错误消息.来自GCC内联汇编器的错误消息: $ gcc -DNDEBUG -g3 -O1 -march=armv8-a+crc+crypto test.cc -o test.exe /tmp/ccCHOWrn.s: Assembler messages: /tmp/ccCHOWrn.s:19: Erro
..
我在研究CSAPP时,在断言测试过程中遇到一个奇怪的问题时得到了一个奇怪的结果. 我不确定从什么开始这个问题,所以让我先获取代码(文件名在注释中可见): // File: 2.30.c // Author: iBug int tadd_ok(int x, int y) { if ((x ^ y) >> 31) return 1; // A positive
..
我有一个函数原型 int Palindrome(const char * c_style_string); 在ARM v8程序集中,我相信该参数存储在寄存器w0中。但是,这不是 ret 输出值的寄存器吗? 如果是,我该怎么办?需要这样做以确保值不会被覆盖吗?我在代码的开头就想到了 mov w0,w1 这样的东西,以便每次解析它时都将c_style_string称为w1,然后编辑w0以存
..
最近开始弄乱AArch64程序集,我注意到它有一个严格分配给 zero 的寄存器,而(大多数)其他体系结构中,您只是 xor var,var 。 我正在阅读的有关 zr 的站点将其解释为参考点为零,这听起来很像我在直流电子设备中定义接地的方式。而且由于业余爱好者使用ARM,因此在代码中将电路中的接地零归类为零对我来说很有意义。 我敢肯定它比这复杂得多,但这是一个安全的类比吗?与使用其他
..
“我的应用”支持iOS8.0及更高版本。而且我知道从iOS7起,它的arm64位体系结构。在那种情况下,我们是否需要为“ armv7”和“ arm64”切片同时编译二进制文件? 如果仅针对arm64进行编译,则可以减小App的大小。 请帮忙。 解决方案 此处,您会发现所有iPhone和Mac CPU架构的解释都非常容易理解。 当我决定从支持的架构中删除armv7架构时,它
..
我正面临以下情况: 32位设备+应用程序armv7 +动态库armv7 arm64 = 工作 64位设备+应用程序armv7 +动态库armv7 arm64 = 不起作用 不起作用-应用程序加载时崩溃,出现以下错误: dyld错误消息库未加载原因找不到合适的图像 有什么解释吗? 解决方案 说明:在64位设备上加载的32位二进制文件无法执行此操作,因
..
我的项目中有一段代码 -(NSData *)getIvars:(unsigned int *)count from :(id)class_name NS_RETURNS_RETAINED { @synchronized(self){ SEL选择器= @selector(copyIvarList:from :); 方法grannyMethod = class_getInstanceMet
..
一般问题:如果使用交叉编译器,如何确定运行configure时应提供的"--host"选项的值? 特定:我正在为arm64 arch使用交叉编译器.正确使用的"--host"值是什么? 解决方案 如果使用交叉编译器,如何确定运行./configure时应提供的--host选项的值? 在讨论工具链创建时,必须区分三台机器 用于构建工具链的构建机器. 主机,将在其中执行
..
我正在学习有关Shellcode的更多信息,并在iOS设备上的arm64中进行系统调用.我正在测试的设备是iPhone 6S. 我从此链接中获得了系统调用列表(我从这里了解到x8用于放置arm64的系统调用号(我发现用于传递arm64参数的各种寄存器应与arm相同,因此我引用了此链接(我用Xcode编写了内联汇编,这里有一些代码片段 //exit syscall __asm__ vol
..
要加两个整数,我写: int sum; asm volatile("add %0, x3, x4" : "=r"(sum) : :); 如何用两个浮子来做到这一点? 我试过了: float sum; asm volatile("fadd %0, s3, s4" : "=r"(sum) : :); 但这给我一个错误: 错误:操作数1应该是SIMD向量寄存器-'fadd x0
..