x87

    8

    4답변

    최근에 FPU 스택 오버 플로우 문제가 발생했습니다. 필자는 불필요한 라이브러리 함수를 추적하여 그 불필요한 값을 FPU 스택에 푸시 (push)하여 매번 호출하고 결코 정리하지 못하게합니다. 다행히도 이것은 쉽게 재현 할 수 있으며 어떤 조건으로 인해 발생하는지 정확하게 알고 있습니다. FPU 스택에서 최상위 값을 다시 팝하는 루틴을 호출하는 루틴에 인라

    5

    1답변

    저는 수치 연산 보조 프로세서를 사용해야하는 혼합 C/ASM의 간단한 응용 프로그램을 작성해야했습니다. 주어진 점이 원통 내부에 있으면 함수 실린더 (float x, float y, float z)가 있습니다. 실린더는 x = 0, y = 0, radius = 5 및 height = 10), 그렇지 않으면 0입니다. 그래서 단순 해 보입니다. z가 < 0,

    5

    2답변

    MXCSR과 같은 것들에 가장 적합한 설정은 무엇입니까? 가장 빠른 반올림 모드는 무엇입니까? 어떤 프로세서에서? 신호 NaN을 사용하도록 설정하는 것이 더 빠르므로 계산 결과가 nan 일 때 정보를 얻거나 NaN이 아닌 계산에서 속도 저하를 유발할 수 있습니까? 요약하면, 내부 SSE 루프가 최대 속도를 낼 수있는 방법은 무엇입니까? x87 부동 소수점

    0

    2답변

    일부 레거시 C++ 코드를 정기적으로 호출하는 C# .NET 3.5 응용 프로그램으로 작업하고 있습니다. C++을 호출하면 드롭 다운 목록이있는 Infragistics UltraGrid 위로 마우스를 가져 가면 "오버플로 또는 언더 플로 계산 작업"으로 연결되는 경우가 있습니다. 나는 C++ 코드는 다음과 같은 작업을 수행 할 때이에만 발생한다는 것을 발견

    1

    1답변

    x87 FPU 명령어 디코딩과 관련하여 모호한 경우가 있습니다. Vol 2A Intel의 명령어 세트 매뉴얼 [3]의 3-380 페이지에서 가져온 다음 지시 사항을 살펴보십시오. D9 /0 --> FLD m32fp --> Push m32fp onto the FPU register stack. D9 C0+i --> FLD ST(i) --> Push ST(i

    0

    2답변

    현재 FP 상태의 일부로 간주 될 수있는 값의 수에 대한 정보를 찾고 있습니다. (부동 소수점 코드 계산이 의존하는 값을 의미합니다.) 3 가지 전제 조건이 될 것입니다. , 반올림의 4 가지 모드, fpu 예외와 관련된 약 5 비트 플래그가 있지만 그 외 무엇이 있습니까? TNX

    0

    1답변

    : 나는 eq2을 얻을 수있는 방정식을 주석하는 경우, 내가 얻을 수있는 이전 식의 오른쪽 출력을 얻을 것이다, 어떤 이유 fld qword [perResult] ;load st0 with perimeter fsub qword [firstSide] ;take st0 and minus firstSide, st0= perimeter - firstSide

    1

    1답변

    나는 이것들을 이해할 수 없다 : 그러한 명령 (FFREE, FDECSTP)의 사용은 무엇인가? fpu 스택에서 값을 팝핑하는 데 사용할 수 있습니까, 아니면 다른 용도로 사용할 수 있습니까? TNX

    3

    1답변

    이전에 게시 한 문제를 디버그하려고합니다 : C++ and pin tool -- very weird DOUBLE variable issue with IF statement. gdb를 사용하여 이상한 동작이 발생한 순간을 추적했습니다. 아래 그림은 디스 어셈블 된 코드와 부동 포인터 레지스터 값을 표시하는 gdb 스크린 샷을 보여줍니다. (큰 이미지 here

    1

    2답변

    안부, 나는 86 FPU 어셈블리를 배우고, 나는 나는에 대한 답변을 찾을 수있는 간단한 질문을 가지고있다 : 방법 EAX에 ST(0)합니다 (FPU 스택 맨)에서 값을 이동하는가? 도 : 올바른 코드이다 ; multiply (dot) two vectors of 3 floats passed by pointers as arg 1 arg 2 ; passing