«assembly» 태그된 질문

어셈블리 언어 (asm) 프로그래밍 질문 사용중인 프로세서 및 / 또는 명령어 세트 및 어셈블러와 함께 태그를 지정하십시오. 경고 : .NET 어셈블리의 경우 [.net-assembly] 태그를 대신 사용하십시오. Java ASM의 경우 [java-bytecode-asm] 태그를 대신 사용하십시오.

12
GCC가 a * a * a * a * a * a를 (a * a * a) * (a * a * a)로 최적화하지 않는 이유는 무엇입니까?
과학 응용 프로그램에서 수치 최적화를하고 있습니다. 내가 주목 한 것은 GCC가 호출 pow(a,2)을 컴파일 하여 호출 을 최적화 a*a하지만 호출 pow(a,6)이 최적화되지 않고 실제로 라이브러리 함수를 호출 pow하여 성능이 크게 저하 된다는 것 입니다. 반대로, 실행 가능한 Intel C ++ Compilericc 는 라이브러리 호출을 제거합니다 pow(a,6). 궁금한 점은 GCC 4.5.1 …

14
<가 <=보다 빠릅니까?
가 if( a &lt; 901 )보다 더 빨리 if( a &lt;= 900 ). 이 간단한 예제와 정확히 같지는 않지만 루프 복잡한 코드에서 약간의 성능 변화가 있습니다. 나는 이것이 사실 일 경우에 생성 된 머신 코드로 무언가를해야한다고 생각한다.

10
32 비트 루프 카운터를 64 비트로 바꾸면 인텔 CPU에서 _mm_popcnt_u64와 성능 차이가 심해집니다.
popcount대규모 데이터 배열에 가장 빠른 방법을 찾고있었습니다 . 나는 발생하는 매우 이상한 효과를 :에서 루프 변수 변경 unsigned에 uint64_t내 PC에 50 %에 의한 성능 저하를. 벤치 마크 #include &lt;iostream&gt; #include &lt;chrono&gt; #include &lt;x86intrin.h&gt; int main(int argc, char* argv[]) { using namespace std; if (argc != 2) { cerr &lt;&lt; "usage: …

11
손으로 쓴 어셈블리보다 Collatz 추측을 빠르게 테스트하기위한 C ++ 코드-왜?
어셈블리 및 C ++ 로 Project Euler Q14에 대한이 두 가지 솔루션을 작성했습니다 . 이것들은 Collatz 추측 을 테스트하기위한 동일한 동일한 무차별 접근 방식입니다 . 조립 솔루션은 nasm -felf64 p14.asm &amp;&amp; gcc p14.o -o p14 C ++는 g++ p14.cpp -o p14 어셈블리, p14.asm section .data fmt db "%d", 10, 0 …


4
사이클 당 이론적으로 최대 4 개의 FLOP를 달성하려면 어떻게해야합니까?
최신 x86-64 Intel CPU에서 사이클 당 4 개의 부동 소수점 연산 (이중 정밀도)의 이론적 최고 성능을 어떻게 달성 할 수 있습니까? 내가 아는 한 SSE 에는 3주기가 걸리고 대부분의 최신 인텔 CPU에서 완료하려면 add5주기가 필요합니다 mul(예 : Agner Fog의 'Instruction Tables'참조 ). add알고리즘에 최소 3 개의 독립적 인 합계가있는 경우 …

30
어셈블리가 C보다 빠른 경우는 언제입니까?
어셈블러를 알고있는 이유 중 하나는 경우에 따라 코드를 특히 고급 언어 인 C로 작성하는 것보다 성능이 좋은 코드를 작성하는 데 사용될 수 있기 때문입니다. 그러나 나는 그것이 완전히 잘못된 것은 아니지만 어셈블러를 사용하여 실제로 더 성능이 좋은 코드를 생성 하는 경우가 매우 드물고 어셈블리에 대한 전문 지식과 경험이 필요 하다고 …
475 c  performance  assembly 


4
추가 사례에서 Java가 연속 정수를 켜는 이유는 무엇입니까?
내 주요 프로그램 논리의 여러 지점에서 호출되는 핫 함수에서 실행되므로 고도로 최적화 해야하는 Java 코드를 작업 중입니다. 이 코드의 일부에는 double변수에 10임의의 음이 아닌 값을 곱한 값 이 포함됩니다 int exponent. 곱한 값을 얻는 한 가지 빠른 방법 (편집 : 가장 빠른 것은 아니지만 아래 업데이트 2 참조) switch은 exponent다음 …

10
GCC를 사용하여 읽을 수있는 어셈블리를 생성 하시겠습니까?
내 C 소스 파일에서 GCC 를 사용 하여 니모닉 버전의 기계어 코드를 덤프하여 내 코드가 컴파일되는 것을 볼 수있는 방법이 궁금합니다 . Java 로이 작업을 수행 할 수는 있지만 GCC로는 방법을 찾지 못했습니다. 어셈블리에서 C 메서드를 다시 작성하려고 시도하고 GCC가 어떻게 작동하는지 보는 것이 큰 도움이됩니다.
256 c  gcc  assembly 

3
레포 틴이란 무엇이며 어떻게 작동합니까?
커널이나 프로세스 간 메모리 공개합니다 (을 완화하기 위해 유령의 공격), 리눅스는 커널 (1) 새로운 옵션으로 컴파일 될 것이다 , -mindirect-branch=thunk-extern소개 gcc소위를 통해 간접 호출을 수행 할 retpoline . Google 검색이 최근에 사용한 것 (일반적으로 2018 년)으로 바뀌기 때문에 새로 발명 된 용어 인 것 같습니다. 리포 틀린이란 무엇이며 최근 커널 …

10
멀티 코어 어셈블리 언어는 어떻게 생겼습니까?
예를 들어 x86 어셈블러를 작성하려면 "EDX 레지스터를 값 5로로드", "EDX 증가"레지스터 등을 지시하는 지침이 있습니다. 4 개의 코어 (또는 그 이상)가있는 최신 CPU를 사용하면 머신 코드 수준에서 4 개의 개별 CPU가있는 것처럼 보입니까 (즉, 4 개의 "EDX"레지스터 만 있음)? 그렇다면 "EDX 레지스터 증가"라고 말할 때 어떤 CPU의 EDX 레지스터가 증가하는지 …
243 assembly  x86  cpu  multicore  smp 

12
'스위치'가 'if'보다 빠릅니까?
A는 switch문은 실제로 빠를 것보다 if문? /Ox플래그를 사용하여 Visual Studio 2010의 x64 C ++ 컴파일러에서 아래 코드를 실행했습니다 . #include &lt;stdlib.h&gt; #include &lt;stdio.h&gt; #include &lt;time.h&gt; #define MAX_COUNT (1 &lt;&lt; 29) size_t counter = 0; size_t testSwitch() { clock_t start = clock(); size_t i; for (i = 0; i &lt; MAX_COUNT; …


16
Windows .exe를“디 컴파일”할 수 있습니까? 아니면 적어도 의회를 보십니까?
내 친구가 Facebook에서 일부 악성 코드를 다운로드했으며, 자신을 감염시키지 않고 그 기능이 무엇인지 궁금합니다. .exe를 실제로 디 컴파일 할 수는 없지만 적어도 어셈블리에서 보거나 디버거를 연결할 수 있습니까? .NET 실행 파일이 아니며 CLI 헤더가 없다고 편집하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.