가능한 경우 엄지 손가락 32 비트 명령어를 강제로 생성 할 수 있습니까?강제로 gcc가 엄지 손가락 32 비트 명령어를 생성하는 방법?
int main(void) {
8000280: b480 push {r7}
8000282: b085 sub sp, #20
8000284: af00 add r7, sp, #0
uint32_t a, b, c;
a = 1;
8000286: 2301 movs r3, #1
8000288: 60fb str r3, [r7, #12]
b = 1;
800028a: 2301 movs r3, #1
800028c: 60bb str r3, [r7, #8]
c = a+b;
800028e: 68fa ldr r2, [r7, #12]
8000290: 68bb ldr r3, [r7, #8]
8000292: 4413 add r3, r2
8000294: 607b str r3, [r7, #4]
while (1) ;
8000296: e7fe b.n 8000296 <main+0x16>
그러나 그들은 모두 엄지 손가락 16 비트입니다
예를 들어 내가있다. 테스트 목적으로 나는 엄지 손가락 32 비트 명령을 원한다.
나는 엄지 손가락의 모든 부분이 16 비트 명령어를 선호한다고 생각 했습니까? –
아마도. 그러나 가능한 경우 엄지 32 지침을 생성하고 싶습니다. (Cortex M4) – jsmith
저는 여기 전문가가 아니며 ARM 프로세서도 소유하고 있지 않습니다. [찾을 수있는 지침] (http://stackoverflow.com/questions/10638130/what-is-the-arm -thumb-instruction-set)은 당신이 불가능한 일을 추구하고 있음을 나에게 꽤 분명하게 보여줍니다. 32 비트 명령어를 내보내려면 표준 ARM 명령어 세트 만 컴파일하면됩니다. 만족스럽지 않으면 * 왜 * 당신이 이것을하려고하는지 설명해보십시오. 아마도 누군가가 당신에게 더 나은 해결 방법을 줄 수 있습니다. –