使用RDRAND
时,它设置(或取消设置)进位标志(CF
):
char rc;
unsigned int val;
__asm__ volatile(
"rdrand %0 ; setc %1"
: "=r" (val), "=qm" (rc)
);
// 1 = success, 0 = underflow
if(rc) {
// use val
...
}
flags
和eflags
寄存器是否被视为条件控制的一部分,以便将适当的信息传递给编译器?如果将上述内容写成:
__asm__ volatile(
"rdrand %0 ; setc %1"
: "=r" (val), "=qm" (rc)
:
: "cc"
);
还是“cc”
的使用是虚假的?
如果它是假的,它适用于什么架构?(我推测ARM和cpsr
寄存器,但我可能弄错了)。
根据手册,是-cc
被重击。rdrand
也是SF、ZF、AF、PF<-0的集合。
在实践中,gcc假设__asm__
块总是会破坏x86的[ER]flags
条件代码寄存器。我没有引用,但您可以在各种GNU包中使用的longlong.h
头等地方看到这个假设。
正如你所说,如果不使用它是无害的。出于这个原因,您不妨包含它,因为它仍然提供语义意图,或者最坏的情况下提供注释。还要考虑一下,Clang和ICC实现了GCC asm语法,如果它们遵守“cc”
clobber,而不是假定它--尽管这不太可能--它们将符合文档。
这是扩展汇编程序中What is"=qm"的后续。 当使用时,它设置(或取消设置)进位标志(
控制台-部门-列表 接口URL {youke-url}/console/Index.php?c=department&a=list×tamp=1607677497&access_key=abc&sign=c7da8103312da8793af4f526a42cb6ebaa06cfd4 请求方式 POST Content-Type form-data 请求Query参数 参数 示例值 是否
用法 列表控制分为如下四种: 状态 主操作(包括文本字符串) 次要操作 次要信息 列表标题的元素要容易分辨,首先要注意阅读顺序,所以,状态和主操作放在标题列表的左边。在这里,列表里面的文本内容也被认为是主操作的操作目标的一部分。 不要把两个展示图标和操作图标放在一起,比如复选框和头像 如果列表的主操作是做导航作用的,那么就不要使用icon。列表它本身以及它的上下文就已经可以让用户明白这个列表的用处
标签: Shell 条件判断:if语句 语法格式: if [ expression ] then Statement(s) to be executed if expression is true fi 注意:expression 和方括号([ ])之间必须有空格,否则会有语法错误。 if 语句通过关系运算符判断表达式的真假来决定执行哪个分支。Shell 有三种 if … else 语句:
控制台-部门-子部门列表 接口URL {youke-url}/console/Index.php?c=department&a=subInfo×tamp=1607677497&access_key=abc&sign=327dcb64d8d1ba76b11297241199107014261e0a 请求方式 POST Content-Type form-data 请求Query参数 参数
输入是按分数排序的,如下所示: 现在我需要在以下限制下从数组中选择10个得分最高的元素: 它们应该具有不同的 它们应该有不同的 同一。并且来自同一的任何子序列的长度不应大于2。 如果已经有一个选定的元素具有此,那么新元素将被丢弃。 如果已经有一个选定的元素具有这个,那么新元素将被丢弃。 如果已经有三个选定元素具有此,那么新元素将被丢弃。 如果在选定的尾部已经有两个元素具有此,那么新元素将被丢弃。