마이크로 프로세서 프로그래밍에서 어셈블러에서 C로 마이그레이션했습니다. 나는 이것이 좋은 생각인지 의심한다
아무도 더 이상 100 % 어셈블러에서 더 이상 새로운 프로그램을 개발하지 않습니다. 요즘 C는 가장 작은 크랩 피트 8 비트 아키텍처에도 사용할 수 있습니다. 그러나 일부 어셈블러를 알고 있으면 C 프로그래머가 훨씬 향상됩니다. 또한 어셈블러로 작성해야하는 프로그램에는 항상 작은 세부 사항이 있습니다.
C 구문이 어셈블러 구문보다 배우기가 훨씬 쉽다고 말할 수 있습니다.
물론 구문이 더 쉽습니다. 그러나 모든 성가신 세부 사항으로 전체 C 언어를 배우는 것은 특정 어셈블러의 모든 세부 사항을 배우는 것보다 훨씬 복잡합니다. C는 훨씬 더 크고 더 넓은 언어입니다. 그러나 다시, 모든 세부 사항을 배울 필요는 없습니다.
C는보다 복잡한 프로그램을 만드는 데 사용하기가 더 쉽습니다.
실제로 C는 캡슐화 및 로컬 범위 / 지역 변수와 같은 모듈 식 프로그램 설계를위한 메커니즘을 제공합니다. 그리고 C에는 표준 라이브러리와 지난 30 년 동안 작성된 막대한 양의 리소스가 있습니다. 그리고 가장 중요한 것은 C는 이식성입니다.
학습 C는 어셈블러보다 학습 어셈블러보다 C 주위에 더 많은 개발 자료가 있기 때문에 학습 어셈블러보다 생산적입니다.
C에는 사전 제작 된 많은 기능, 라이브러리 및 리소스가 있으므로 휠의 재발 명 횟수가 줄어 듭니다. 그러나 그 외에도 귀하의 진술은 주관적입니다. 나는 그것이 개인적 취향의 문제라고 믿는다.
예를 들어, 저는 숙련 된 C 프로그래머이며 때때로 C ++를 프로그래밍합니다. C를 아는 것뿐만 아니라 그 언어를 알지 못하기 때문에 C ++에서 생산성이 훨씬 떨어진다는 것을 알 수 있습니다. 그러나 그렇게 생각한다고해서 반드시 C로 프로그래밍하는 것이 C ++로 프로그래밍하는 것보다 더 생산적이라는 것을 의미하지는 않습니다. 숙련 된 C ++ 프로그래머는 반드시 반대 의견을 가질 것입니다.
그리고 "생산적"에는 많은 측면이 있습니다. 매우 중요한 측면은 유지 보수 시간, 특히 유지 보수로 인한 버그를 수정하는 데 걸리는 시간입니다. C는 어셈블러보다 유지 관리가 훨씬 쉽습니다.
어셈블러는 C보다 낮은 수준의 프로그래밍 언어이므로 하드웨어에 직접 프로그래밍하는 데 적합합니다.
하드웨어 프로그래밍은 어느 언어로든 직접 수행 할 수 있습니다. C에서 할 수없는 것은 CPU 코어 자체의 스택 포인터 및 조건 레지스터 등에 액세스하는 것입니다. 따라서 하드웨어 프로그래밍을 통해 자신의 CPU와 대화하는 것을 의미한다면 어셈블러는 C보다 조금 더 많은 것을 허용합니다. 외부 하드웨어에 액세스한다는 의미라면 어셈블러는 C보다 이점을 얻지 못합니다. 일반 C 코드보다 특정 외부 장치에 대한 일반 어셈블러 코드
메모리, 인터럽트, 마이크로 레지스터 등을 사용하여 작업하는 것이 훨씬 유연합니다.
이것은 정확하지 않습니다. 인터럽트 키워드와 같은 컴파일러 특정 C 코드를 사용해야 할 수도 있지만 C를 사용하면이 모든 작업을 수행 할 수 있습니다.
결국 C를 강조하면서 MCU를 프로그래밍하려면 두 언어를 모두 알아야합니다.