inline-assembly相关内容

铛(LLVM)内联汇编 - 无用泄漏/重载多重约束

铛/ GCC :有些内联汇编操作数可以得到满意的多重约束,如“RM”,当一个操作数可以得到满意用一个寄存器或内存位置。作为一个例子,在64×64 = 128位的乘法 __ asm__(“mulq%Q3”:“= A”(RL),“= D”(RH):“%0”(X),“RM”(Y) :“CC”) 生成的code能够选择参数的内存限制 3 ,如果我们注册饿死,避免溢出这将是罚款。显然有比IA32上的 ..
发布时间:2016-07-18 20:01:25 .NET Framework

在C中调用汇编函数

我试图调用从C汇编函数,但我不断收到错误。 的.text .globl整合 .TYPE整合,@function 整合: 推%EBP MOV%ESP,EBP% MOV $ 0%EDI start_loop: CMP%EDI,1024 JE loop_exit MOV 8(EBP%),%EAX MOV 12(%EBP),ECX% ..
发布时间:2016-07-18 20:00:51 .NET Framework

其中内联汇编code是rdtscp正确的?

免责声明:无法用言语形容我是多么讨厌AT& T公司风格的语法 我有,我希望是由寄存器重挫造成的一个问题。如果不是这样,我有一个更大的问题。 我用的第一个版本是 静态无符号长长rdtscp(无效) { 无符号整型HI,LO; __asm​​__ __volatile __(“rdtscp”:“= A”(LO),“= D”(HI)); 返回(无符号很长很长),罗| ..
发布时间:2016-07-18 19:59:57 .NET Framework

读取寄存器值成C变量

我记得看到一个方法来使用扩展GCC内联汇编读取寄存器值,并将其存储到一个C变量。我不能尽管对于我的生活记得如何形成汇编语句。任何帮助深表AP preciated。 解决方案 在比其他的答案不同的方向发展,到目前为止,因为我不知道你想要什么。 GCC手册和教派; 5.40变量指定寄存器中 寄存器为int * foo的ASM(“A5”); 下面 A5 是应该使用&hel ..
发布时间:2016-07-18 19:56:09 .NET Framework

在循环使用内联汇编阵列

当遍历与内联汇编阵列我应该使用寄存器修饰符“R”或他的内存修改器“M”? 让我们考虑它增加了一个例子两条浮法阵列 X 和是,并将结果写入以Z 。通常我会用内部函数来做到这一点像这样 的for(int i = 0; I< N / 4;我++){ __m128 X4 = _mm_load_ps(安培; X [4 * i]); __m128 Y4 = _mm_load_ps(安 ..
发布时间:2016-07-18 19:54:47 .NET Framework

在C / C使用内联汇编++

我尝试使用内联汇编... 我读这页 HTTP://www.$c$cproject.com/KB /cpp/edujini_inline_asm.aspx 但我无法理解传递给我的函数的参数。 我正在写一个C写的例子..这是我的函数头: write2(的char * str中,INT LEN){ } 这是我的组装code:全球write2 write2: 推EBP MOV ..
发布时间:2016-07-18 19:52:59 .NET Framework

标签的地址(MSVC)

我们正在编写针对字节code为高层次的编译语言,有点分析和优化后,人们清楚地看到目前国内最大的性能开销,我们使用跳转到switch语句在字节级code的情况。 我们调查拉出每个案件标签的地址,并针对字节$ C $的流中存储C本身,而不是指令ID就是我们通常开关。如果我们这样做,我们可以跳过跳转表,并直接跳转到当前指令执行code的位置。这部作品在飞驰GCC,但是,MSVC似乎不支持的功能是这样的 ..
发布时间:2016-07-18 19:52:35 C/C++开发

我该怎么做就IPhone内联汇编?

它是如何做的?哪些步骤,我需要采取和什么是陷阱,陷阱有没有考虑? 解决方案 我已经得到这个工作,由于一些内部帮助过的苹果Devforums ,如果​​你是一个专门的IPhone开发商应该注册。 第一件事,第一,它的 __ __ ASM()的,不是纯的 ASM()的 其次,在默认情况下,X code生成编译针对ARM Thumb指令集内联汇编编译目标,所以的 USAT 的无法识别为一个正 ..
发布时间:2016-07-18 19:47:39 移动开发

高效的整数比较功能

的比较函数是一个有两个参数 A 和 B 键,返回描述它们的顺序整数。如果 A 比小b ,结果是一些负整数。如果 A 比大b ,结果是正整数。否则, A 和 B 都是平等的,并且结果是零。 此功能常被用来参数化排序和从标准库搜索算法 实施比较的字符功能相当容易;您只需减去参数: INT compare_char(一个字符,字符B) { 返回 - B; } 此工作,因为两个字符之 ..
发布时间:2016-07-18 19:47:17 .NET Framework

什么是“__asm​​”和“__asm​​__”之间的区别?

我学习C语言内联汇编据我所知,__ ASM {...}之间的的唯一区别; 和 __ asm__ (“...”); 是第一个使用 MOV EAX,VAR 第二个使用 MOVL%0 ,EAX %% 与:“= R”(VAR)在结束。另外,还有一些关于第一少很多网站。还有什么其他区别有哪些? 解决方案 使用哪种方法取决于你的编译器。这不是标准类似于C语言。 ..
发布时间:2016-07-18 19:43:03 .NET Framework

我可以用x86汇编的Intel语法与海湾合作委员会?

我想写一个小低水平程序。对于它的某些部分,我将需要使用汇编语言,但code的其余部分将在C / C ++编写。 所以,如果我将使用GCC汇编code混合C / C ++,我是否需要使用AT& T公司的语法还是可以的 我使用英特尔的语法?或者,你如何以其它方式混合使用C / C ++和汇编(Intel语法)? 我意识到也许我没有选择,必须使用AT& T公司的语法,但我想肯定。 ..
发布时间:2016-07-18 19:42:13 .NET Framework

从编译器的详细输出使用内联汇编程序什么时候?

我赶上ARM下编译失败的一些内联汇编: G ++ -DNDEBUG -g2 -O2 -pipe -c sha.cpp {标准输入}:汇编的消息: {标准输入}:779:错误:预计ARM寄存器 - `ROR [SP,#20]#31“ {标准输入}:799:错误:预计ARM寄存器 - `ROR [SP],#31“ {标准输入}:848:错误:预计ARM寄存器 - `ROR [SP,#4,#31 ..
发布时间:2016-05-29 15:03:20 C/C++开发

重写GCC内联汇编为不需要挥发或内存撞

是否有可能重写或改善这一功能不需要挥发性或通用内存撞在其内联汇编? //做输入美孚结构的东西,并把结果写入到 //输出栏结构。 静态内嵌无效MemFrob(常量结构美孚*输入,结构酒吧*输出){ 注册常量富* R0 ASM(“R0”)=输入; 注册酒吧* R1 ASM(“R1”)=输出; __asm​​__ __volatile __( “SVC#0x0f ..
发布时间:2016-05-29 14:56:08 其它硬件开发

什么是创建内联汇编一个常量池的正确方法?

问题是,C函数里面我有一个内联汇编。 类似 LDR R7,= 0xdeadbeef SVC 0 如果文字池未明确创建(这种情况下),汇编 创建一个在所述翻译单元的末尾。通常,这是好的,但如果 翻译单元真可谓是真正巨大的,这是不行的,因为 文字池太远LDR指令。 所以,我不知道什么是处理问题的最好办法。最明显的方法是 手动创建一个文字池的内联汇编内的: LDR R7,= 0xdeadb ..
发布时间:2016-05-29 14:54:16 其它硬件开发

`LDM / stm`在GCC内联ARM汇编

我想创建一个 LDM (RESP。 STM )内联汇编指令,但有问题的前preSS操作数(尤其是:它们的顺序)。 一个平凡 无效* PTR; 无符号整型一个; unsigned int类型B:__asm​​ __(“LDM%0,{%1,%2}!”:“+放大器; R”(PTR),“= R”(一),“= R”(二)); 不工作,因为它可能把 A 到 R1 和 B 到 R0 : LDM IP ! ..
发布时间:2016-05-29 14:49:49 其它硬件开发

手臂内联汇编GCC中

我有一些麻烦一些内联汇编code。我知道应该做什么,但我错过了“怎么做”! 我有这个校验功能,那就是“差不多”的工作: 静态无符号长cksum_unroll(无符号短** W,为int * MLEN) { INT LEN; 无符号短* W0; 无符号长总和= 0; LEN = * MLEN; W0 = *宽; 而(LEN> = 8){ ASM挥发性( ..
发布时间:2016-05-29 14:47:00 其它硬件开发

如何编写内联汇编codeS关于X $ C $çLLVM循环?

我正在学习有关内联汇编。我想在X code 4 LLVM编译器3.0编写的iPhone一个简单的程序。我成功编写基本的内联汇编codeS。 例如: INT子(INT A,INT B) { INT℃; ASM(“亚%0%1%2”:“= R”(三):“R”(一),“R”(B)); 返回℃; } 我发现它在stackoverflow.com和它工作得很好。但是,我不知道 ..
发布时间:2016-05-29 14:44:59 移动开发

在GNU C ++ code。使用C头文件。错误包括内联汇编:在“汇编”不可能约束

我有一个奇怪的。我工作在嵌入式系统上,使用供应商的头文件。我编译使用GCC 4.6.3的文件。我想用C ++为我的code,我的错误,我想不通。我运行一个供应商的示例程序,而我所做的是改变main.c文件到main.cpp中的名称。因此,我认为,头文件正在由C ++编译器PTED间$ P $。其中一个包含以下行: __ __属性((裸体))静态return_type签名\\ {\\ ..
发布时间:2016-05-29 14:36:55 C/C++开发