컨트롤러"어셈블러

만약 당신이 아주 좋은, 당신은 C에서 유일한 비트 어셈블리 언어에 비해 느린 코드를 만들 수있는 CPU를 알아요.
또한, C와의 작업, 당신은 쉽게 다른 CPU로 마이그레이션할 수있습니다.

내가 DSP 프로세서에서만 어셈블리 언어를 사용하고있습니다.

 
난 단지 (당신은 괜찮은 C 컴파일러 thar 효율적인 코드를 생성합니다) 가정 위장에 어셈블러에서 프로그래밍에 대한 3 가지 이유 볼 수있습니다.

1 : 당신은 몇 가지 중요한 인터럽트 / 100 %의 정확성이 필요 사이클 타이밍 루틴을 만들고 싶어.

2 : uc 밖으로 매일 마지막주기를 쥐어 짜기 싶어

3 : 당신이 많은 플래시 그렇게 해달라고 코드를 카운트의 모든 바이트

그럼 거기에 4 ....있을
4 : 대부분의 C 컴파일러는 uc 일부 RAM이 필요합니다

하지만 좋은 C 컴파일러와 함께, 당신은 어셈블러처럼 빠르고 효율적인 코드를 거의 만들 수있습니다.

그리고 그것은 포트에 쉽게 다른 아키텍처 mych입니다.

/ 빙고

 
당신은 그 C 컴파일러는 일반적으로 무료로하지 않습니다 추가할 걸 깜빡 했군.

 
내 생각에 당신이 좋은 디자이너가되고 싶어해야 둘 다 지금은 ...
C와 귀하의 시간을 절약할 수 ..... 가끔은 어셈블리를 피할 수있다

 
@ 외통 장군을 부르다

내 위치
AVR - GCC의 Atmels하기

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="미소" border="0" />는 ARM - GCC는 arm 용 툴체인

@ olemp
나는 당신과 동의는 C를 사용하는 것 "실례합니다"어셈블러 학습을위한, 아니 심지어는 C 컴파일러의 출력 목록을 살펴볼 필요가있습니다 사실, 그들 arent 오류가있습니다.

그리고 당신은 아마도 실행됩니다 적어도 제
1, 2 위의 몇 가지 이유 중에 프로그래밍 밝혔다.

하지만 난 여전히 80 ..는 C 코드의 90 %가 이런 짓을하는 경향이

/ 빙고

 
내가 어셈블러 훨씬 C로 프로그램의 속도 / 크기의 측면에서 더 나은 생각하지 않는다.Novadays 컴파일러 최적화에 매우 좋은 경우, 예를 들어, Keil C51 매우 좋다 - 안의 모든 좋은 프로그래머와 동일한 얻을 수있습니다.오른쪽과 같은 일반적인 PC를위한 것입니다 - 인텔의 컴파일러는 지정된 대상 프로세서에 대한 아주 좋은 최적화를 제공합니다.

에이스 - X입니다.

 
만약 당신이 시간에 민감한 코드는 일반적으로, 여러분이 어셈블리를 사용해야합니다., 당신이 사용하는 것이 좋습니다 C.하지 않을 경우
여기 당신의 부하 및 효율성 사이의 균형을했다

 
시간 cricis과 제한된 메모리 크기는 응용 프로그램에서,은 ASM에 적합합니다.그렇지 않으면 C 바람직합니다.C 많이 develpment, mentainance 및 포팅하기 쉽습니다.그리고은 ASM의 좋은 이해를 MCU를 프로그래밍, 특히 C의 높은 품질의 fundation입니다.

 
모두가 사실은 ASM 코드 타이밍을 더 잘 제어할 수 언급했던 것 같다.그러나 이것 루틴에 필요한 아래로 CPU의 클럭 사이클을 정확하게하려면, 통신 등 같은 여러 타이밍이 중요 루틴, 정확하게는 C 마이크로 컨트롤러 타이머 및 좋은 꽉 ISRs를 사용함으로써 얻을 수있는 사실.

만약 당신이 뭐 대단한은 ASM이 뭔지 알아,하지만 그 때 필요 없어 도달하지 않습니다.농담이야 어쨌든 IMHO.

oddbudman

 
당신이 MCU는 공부를위한 두 가지 프로세스를 쪼개해야한다고 생각.
처음에, 당신은 완전히 MCU의의 원칙을 이해해야한다, 그리고 당신은 ASM이 MCU의의 특성을 마스터 할 수있는 최선의 선택입니다.
후에 이러한 마스터가 있으면 C에 그것을 설계의 효율성을 향상시킬 수있는 시도할 수있습니다.
귀하의 설계 작업 속도를 강조 물론, 당신은 ASM을 선택할 게 더 나아.
C 결합과은 ASM 안 좋은 생각이다.

 

Welcome to EDABoard.com

Sponsor

Back
Top