«assembly» 태그된 질문

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


3
함수에서 구조체를 반환 할 때 가능한 GCC 버그
O'Neill의 PCG PRNG를 구현하는 동안 GCC에서 버그를 발견했다고 생각합니다. ( Godbolt의 컴파일러 탐색기의 초기 코드 ) 승산 후, oldstate로 MULTIPLIER(RDI에 저장된 결과), GCC는 해당 결과를 추가하지 않는다 INCREMENTmovabs'ing, INCREMENT다음 rand32_ret.state의 반환 값으로서 사용 도착하는 대신 RDX 할 최소한의 재현 가능한 예 ( Compiler Explorer ) : #include <stdint.h> struct retstruct …
133 c  gcc  assembly  x86-64  compiler-bug 


15
값이 C 배열에 있는지 빨리 찾으십니까?
256 크기의 배열 (바람직하게는 1024이지만 256이 최소값 임)을 반복해야하는 시간 결정적인 ISR이있는 임베디드 응용 프로그램이 있고 값이 배열 내용과 일치하는지 확인합니다. A bool는 true로 설정됩니다. 마이크로 컨트롤러는 NXP LPC4357, ARM Cortex M4 코어이고 컴파일러는 GCC입니다. 나는 이미 최적화 수준 2 (3이 더 느림)를 결합하고 플래시 대신 RAM에 기능을 배치했습니다. 나는 …

3
x86에서 "비 시간적"메모리 액세스의 의미는 무엇입니까?
이것은 다소 낮은 수준의 질문입니다. x86 어셈블리에는 두 가지 SSE 명령어가 있습니다. MOVDQA xmmi, m128 과 MOVNTDQA xmmi, m128 IA-32 Software Developer 's Manual에 따르면 MOVNTDQA 의 NT 는 Non-Temporal을 의미하며 , 그렇지 않으면 MOVDQA와 동일합니다. 제 질문은 비 시간적 의미가 무엇입니까?
123 x86  sse  assembly 


5
ESI 및 EDI 레지스터의 목적?
어셈블러에서 EDI 및 ESI 레지스터의 실제 목적과 사용은 무엇입니까? 나는 그들이 문자열 연산에 사용된다는 것을 알고 있습니다. 누군가가 예를 들어 줄 수 있습니까?
119 assembly  x86 


3
32 비트 레지스터의 x86-64 명령어가 전체 64 비트 레지스터의 위쪽 부분을 0으로 만드는 이유는 무엇입니까?
에서 인텔 설명서의 x86-64에 투어 , 본인은 아마도 가장 놀라운 사실은 같은 명령어가 MOV EAX, EBX상위 32 비트 RAX레지스터 를 자동으로 제로화 한다는 것입니다 . 동일한 소스에서 인용 된 인텔 문서 (3.4.1.1 수동 기본 아키텍처의 64 비트 모드에서 범용 레지스터)는 다음과 같이 알려줍니다. 64 비트 피연산자는 대상 범용 레지스터에서 64 …

8
eax에 대한`testl` eax?
나는 어떤 어셈블리를 이해하려고 노력하고 있습니다. 다음과 같이 어셈블리, 나는 testl라인에 관심이 있습니다. 000319df 8b4508 movl 0x08(%ebp), %eax 000319e2 8b4004 movl 0x04(%eax), %eax 000319e5 85c0 testl %eax, %eax 000319e7 7407 je 0x000319f0 나는 testl사이의 포인트를 이해하려고 노력 %eax하고 %eax있습니까? 이 코드의 세부 사항이 중요하지 않다고 생각합니다. 테스트 자체를 이해하려고합니다. 값이 …

4
Gnu Assembler (GAS)의 CFI 지시문은 무엇에 사용됩니까?
모든 줄마다 .CFI 지시문이있는 것 같고 여기에는 이러한 ex. .cfi_startproc, .cfi_endproc등 의 다양한 종류가 있습니다 . .file "temp.c" .text .globl main .type main, @function main: .LFB0: .cfi_startproc pushq %rbp .cfi_def_cfa_offset 16 movq %rsp, %rbp .cfi_offset 6, -16 .cfi_def_cfa_register 6 movl $0, %eax leave ret .cfi_endproc .LFE0: .size main, .-main .globl …
118 assembly  gas 

9
Visual C ++를 사용하여 코드 뒤의 어셈블리를 보는 방법은 무엇입니까?
나는 두 줄의 코드의 효율성에 관한 또 다른 질문을 읽고 있었고 OP는 그가 코드 뒤의 어셈블리를 보았고 두 줄이 어셈블리에서 동일하다고 말했습니다. 여담을 제외하고, 프로그램이 컴파일 될 때 생성 된 어셈블리 코드를 어떻게 볼 수 있습니까? Microsoft의 Visual C ++를 사용하고 있지만 Visual Basic으로 작성된 코드 뒤에있는 어셈블리를 볼 수 …

20
오래된 데스크톱 컴퓨터에서 소규모 운영 체제를 구축하려면 어떻게해야합니까? [닫은]
닫힘 . 이 질문은 더 집중되어야 합니다. 현재 답변을 받고 있지 않습니다. 이 질문을 개선하고 싶으십니까? 이 게시물 을 편집 하여 한 가지 문제에만 집중하도록 질문을 업데이트하십시오 . 휴일 3 년 전 . 이 질문 개선 운영 체제를 작성하는 것이 (특히 혼자서) 참을 수 없을 정도로 복잡하다는 것을 알고 있기 …

6
SSE 스칼라 sqrt (x)가 rsqrt (x) * x보다 느린 이유는 무엇입니까?
저는 Intel Core Duo에서 핵심 수학의 일부를 프로파일 링했으며 제곱근에 대한 다양한 접근 방식을 살펴보면서 이상한 점을 발견했습니다. SSE 스칼라 연산을 사용하면 역 제곱근을 취하고 곱하는 것이 더 빠릅니다. 기본 sqrt opcode를 사용하는 것보다 sqrt를 얻으려면! 다음과 같은 루프로 테스트하고 있습니다. inline float TestSqrtFunction( float in ); void TestFunc() { …


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