[ARM프로세서] 'csel' 명령어
이번에는 ARMv8 아키텍처에서 제공하는 명령어 중에 C 언어의 3항 연산자가 연상되는 csel를 알아봅시다. 다음은 분석하려는 코드입니다. 115| printk(!error ? "okay\n" : "failed\n"); MX:FFFFFF8009BB2404|F0FFE748 adrp x8,0xFFFFFF800989D000 MX:FFFFFF8009BB2408|F0FFE289 adrp x9,0xFFFFFF8009805000 MX:FFFFFF8009BB240C|91026108 add x8,x8,#0x98 ; x8,x8,#152 MX:FFFFFF8009BB2410|91192529 add x9,x9,#0x649 ; x9,x9,#1609 MX:FFFFFF8009BB2414|7100027F cmp w19,#0x0 ; ..
arm instruction(명령어) - push & 스택 푸쉬
push & 스택 푸쉬 리눅스 커널 함수를 어셈블리 코드로 열어보면 바로 push란 명령어가 눈에 보입니다. 그럼 정말 맞는지 샘플 코드를 볼까요? 아래 코드는 리눅스 커널 핵심 함수입니다. 각 함수에서 가장 먼저 실행되는 명령어가 push죠. NSR:C0FF413C|__schedule: push {r4-r11,r14} NSR:C0FF4140| add r11,r13,#0x20 ; r11,r13,#32 NSR:C0FF4144| ldr r3,0xC0FF4948 NSR:C017B0C4|handle_irq_event_percpu: push {r0-r2,r4-r11,r14} NSR:C017B0C8| cpy r3,r13 ; r3,sp NSR:C017B0CC| ldr r6,[r0,#0x4] 그럼 이 push란 명령어..