fpu

    2热度

    1回答

    我写在NASM功能将从32位ANSI C的被称为装入FPU 函数原型用C看起来是这样的: long double scalar(int n, long double *x) 其中x是一个指向long doubles数组的指针。 mov ecx, [esp+8] ; n mov eax, [esp+12] ; *x fld [eax] ; ERROR: operation siz

    0热度

    1回答

    由于学术原因,我正在AArch64上使用sqrt函数的性能。 代码为单精度浮点数sqrtf功能: fsqrt s0, s0 ret 代码双精度浮点数开方功能: fsqrt d0, d0 ret 我指的是理论上的潜伏期为FSQRT从这里: http://infocenter.arm.com/help/topic/com.arm.doc.uan0015b/Cortex_A57_Softwa

    3热度

    1回答

    section .data qVar1: dq 1 section .bss var28: resb 28 section .text _main: ; Use an MMX instruction movq mm0, [qVar1] ; Move quadword from r/m64 to mm. ; Rea

    0热度

    1回答

    我试图创建一个基准ARM在随后的指令循环(组装),单独和组合: 整数加法 整数乘法 浮点加法 浮点乘法 这是我的整数运算代码: int additions_int(int n) { int i, dummyValue = n; __asm ( "MOV R0, #2\n" "MOV R1, #6\n" ); for (i = 0;

    3热度

    1回答

    我正在为Cortex M4F编写线程代码。一切正常,我正在研究通过延迟堆栈使FPU上下文切换更高效。 我读过ARM的AN298,我实现了基于禁用FPU和处理UsageFault的替代方法,但较低的(S0-S15)寄存器没有被硬件正确保存/恢复。我认为问题在于图11: 根据这一点,当PendSV的运行FPCAR应该指向任务A的堆栈保留的空间。但就我所见,由于CONTROL.FPCA在任务C中很高,因

    1热度

    2回答

    由于我的主要操作系统是Linux,并在Visual Studio上有项目,我决定使用联机编译器来实现它。我发现许多人建议使用this。因此,这里是我的代码: #include <iostream> using namespace std; int main(void) { float a = 1; float b = 20.2; float res = 0; float res1 =

    0热度

    1回答

    基本上,我想将用户输入值乘以设定值。乘以当用户输入在一起,但是,如果我预设“号”的值(例如:6)该代码的作品,它不会做乘法并返回0 _start: finit ; init. the float stack output inprompt ; get radius number input number, 12 ; get (ascii) value of thi

    0热度

    1回答

    我正在使用FP IEEE-754到MASM程序集上的StrDec。它工作正常,尽管我花了一些时间搞清楚这一点,但我不确定如何在逗号后添加更多数字 - 现在有两个,例如123.46,但我需要123.456789。我想我需要一个计数器来处理我的额外位,但我得到access violation,同时在逗号和增加字节数之后添加额外的数字。 .data CaptionOut BYTE "Resul

    1热度

    1回答

    我在读“每个计算机科学家应该知道的关于浮点运算的知识”,并且遇到了一些我不明白的地方。本文认为,对于给定的B和E(基数和指数),归一化浮点数的最大值是B×B^E,最小值是B^E。我不明白它的最大部分。 以B = 10 P = 3,E = 4为例。这个数字的最小值可以是1.00×10^4,等于10^4(B^E)。最大值为9.99×10^4,与B×B^E接近但不完全等于它。论文没有提及任何近似值,所以

    1热度

    1回答

    我在StackOverflow中搜索了很多其他问题,但是他们都没有真正解决我的问题。 我写一个Linux内核模块,我需要计算潜水百分比值的整数被另一个整数为了得到一个浮点值范围介于0和100: int v1 = 5; int v2 = 25; float perc = v1/v2; 对于所有我们已经知道的原因,当我尝试编译它时,我得到“SSE寄存器返回,SSE禁用”错误。 是否有解决方案来