2016-11-29 6 views
0

팔의 일부 코드를 분해하고 수정하려고합니다. 분해는 예를 들어, 명령어 너비 지정자 몇 가지 지침을 보여줍니다암 지시 폭 지정자를 컴파일 할 수 없습니다.

80002be: f44f 5360 mov.w r3, #14336 ; 0x3800 
80002c2: f2c4 0302 movt r3, #16386 ; 0x4002 
80002c6: f44f 5260 mov.w r2, #14336 ; 0x3800 
80002ca: f2c4 0202 movt r2, #16386 ; 0x4002 

을하지만 난 코드를 수정하고 조립려고 할 때, 어셈블러 mov.w 좋아하지 않는다 :

main.asm:5: Error: unexpected character `w' in type specifier 
main.asm:5: Error: bad instruction `mov.w r3,#14336' 

내가 지정하는 노력을 - mcpu = cortex-m4 -march = armv7-m -mthumb하지만 도움이되지 않습니다. 어떤 아이디어?

+1

with gcc? 나는 ARM에 대해서만 알고 있지만 어쩌면 이것은 "통일 된"구문 모드 (엄지 별개의 구문과 비교)에서 그 방식으로 작동합니다. –

답변

3

명령어 너비 지정자는 UAL 구문의 일부입니다. -marm/-mthumb 또는 이에 상응하는 명령에 따라 기존 별도의 ARM/Thumb 구문을 기본적으로 (다소 편하게 해석하는) GNU 어셈블러를 사용하는 것처럼 보입니다. UAL 기능을 올바르게 사용하려면 먼저 .syntax unified 지시문을 사용하여 UAL 기능을 설정해야합니다.

+0

고마워요! 도움이 됐어. –