鱼C论坛

 找回密码
 立即注册
查看: 447|回复: 5

[已解决]求助安卓ARM系统中如何通过代码调用RNDR随机数指令

[复制链接]
发表于 2023-8-1 16:45:28 | 显示全部楼层 |阅读模式
20鱼币
如题
最佳答案
2023-8-1 16:45:29
在ARM系统中,你可以通过内联汇编来调用RNDR指令。以下是一个简单的示例,用于在C语言中调用RNDR:
  1. #include <stdio.h>

  2. int main() {
  3.     unsigned int rnd = 0;
  4.     asm volatile ("mrs %0, RNDR" : "=r" (rnd));
  5.     printf("Random number: %u\n", rnd);
  6.     return 0;
  7. }
复制代码
在这个例子中,asm volatile关键字用于插入内联汇编代码。"mrs %0, RNDR"是执行的汇编指令,它将RNDR寄存器的值移动到一个寄存器中。"=r" (rnd)指定了一个输出操作数,rnd变量将被赋予这个寄存器的值。

然而,你需要注意的是,RNDR指令在ARMv8.5-A和以后的版本中才可用。并且,这个指令可能会因为权限问题而无法在所有执行环境中使用。例如,如果你在用户模式下运行这段代码,可能会因为权限不足而导致异常。

给个最佳答案呗,谢谢

最佳答案

查看完整内容

在ARM系统中,你可以通过内联汇编来调用RNDR指令。以下是一个简单的示例,用于在C语言中调用RNDR:在这个例子中,asm volatile关键字用于插入内联汇编代码。"mrs %0, RNDR"是执行的汇编指令,它将RNDR寄存器的值移动到一个寄存器中。"=r" (rnd)指定了一个输出操作数,rnd变量将被赋予这个寄存器的值。 然而,你需要注意的是,RNDR指令在ARMv8.5-A和以后的版本中才可用。并且,这个指令可能会因为权限问题而无法在所有执行环境中 ...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-8-1 16:45:29 | 显示全部楼层    本楼为最佳答案   
在ARM系统中,你可以通过内联汇编来调用RNDR指令。以下是一个简单的示例,用于在C语言中调用RNDR:
  1. #include <stdio.h>

  2. int main() {
  3.     unsigned int rnd = 0;
  4.     asm volatile ("mrs %0, RNDR" : "=r" (rnd));
  5.     printf("Random number: %u\n", rnd);
  6.     return 0;
  7. }
复制代码
在这个例子中,asm volatile关键字用于插入内联汇编代码。"mrs %0, RNDR"是执行的汇编指令,它将RNDR寄存器的值移动到一个寄存器中。"=r" (rnd)指定了一个输出操作数,rnd变量将被赋予这个寄存器的值。

然而,你需要注意的是,RNDR指令在ARMv8.5-A和以后的版本中才可用。并且,这个指令可能会因为权限问题而无法在所有执行环境中使用。例如,如果你在用户模式下运行这段代码,可能会因为权限不足而导致异常。

给个最佳答案呗,谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-8-1 16:54:17 | 显示全部楼层
很抱歉,但我不清楚你所说的"RNDR随机数指令"是指什么。在安卓ARM系统中,一般使用Java代码来调用随机数生成器,你可以使用java.util.Random类来生成伪随机数。
首先,在你的Java代码中,你需要导入java.util.Random类:
  1. import java.util.Random;
复制代码

然后,你可以创建一个Random对象,并使用其提供的方法来生成随机数。例如,要生成一个0到100之间的整数,可以这样写:
  1. Random random = new Random();
  2. int randomNumber = random.nextInt(101); // 生成0到100之间的随机整数
复制代码

如果你需要生成其他类型的随机数,比如浮点数或长整数,Random类也提供了相应的方法,例如nextFloat()、nextDouble()和nextLong()。

请注意,虽然这种方法可以生成伪随机数,但并不是真正的随机数。如果你需要更强大的随机性,可以考虑使用安全的随机数生成器(SecureRandom)类。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-8-1 16:55:26 | 显示全部楼层
给个最佳答案呗我要鱼币QAQ
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-8-1 17:06:41 | 显示全部楼层
学习编程中的Ben 发表于 2023-8-1 16:55
给个最佳答案呗我要鱼币QAQ

《不清楚》
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-8-1 17:11:47 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-28 17:14

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表