나는 대학에서 68HC11을 배웠다. 그것들은 작업하기가 매우 간단하지만 솔직히 대부분의 저전력 마이크로 컨트롤러는 비슷합니다 (AVR, 8051, PIC, MSP430). 마이크로 컨트롤러에 대한 ASM 프로그래밍에 복잡성을 더하는 가장 큰 것은 지원되는 메모리 어드레싱 모드 의 수와 유형입니다 . 고급 ARM 프로세서와 같이 더 복잡한 장치는 먼저 피해야합니다.
아마도 MSP430을 좋은 출발점으로 추천 할 것입니다. C로 프로그램을 작성하고 다양한 기능을 인라인 어셈블리로 대체하여 배울 수 있습니다. 간단한 시작, x + y = z 등
함수 또는 알고리즘을 어셈블리로 교체 한 후 코드 작성 방법과 C 컴파일러가 생성 한 내용을 비교하고 대조하십시오. 이것은 아마도 내 의견으로는 어셈블리를 배우는 더 좋은 방법 중 하나이며 동시에 임베디드 프로그래머로서 매우 가치있는 컴파일러의 작동 방식에 대해 배우십시오. 처음에 C 컴파일러에서 최적화를 끄십시오. 그렇지 않으면 컴파일러가 생성 한 코드에 혼동 될 수 있습니다. 점차적으로 최적화를 켜고 컴파일러의 기능을 확인하십시오.
RISC 대 CISC
RISC는 'Reduced Instruction Set Computing'을 의미합니다. 특정 명령어 세트가 아니라 CPU에 최소 명령어 세트가 있다는 설계 전략만을 의미합니다. 각각 기본적인 것을하는 지시는 거의 없습니다. 'RISC가되기 위해'필요한 것에 대한 엄격한 기술적 정의는 없습니다. 반면에 CISC 아키텍처에는 많은 명령이 있지만 각각 '더 많은 일'을합니다.
RISC의 목적 상 장점은 CPU 설계에 더 적은 트랜지스터가 필요하다는 것인데, 이는 더 적은 전력 사용 (마이크로 컨트롤러의 경우), 제조 비용이 저렴하고 클럭 속도가 높을수록 성능이 향상된다는 것을 의미합니다. CISC 아키텍처의 설계 개선 결과 더 낮은 전력 사용과 저렴한 제조가 일반적으로 사실이며 더 큰 성능은 목표에 미치지 못합니다.
오늘날 거의 모든 CPU 코어는 RISC 또는 '중간'설계입니다. 가장 유명한 (또는 악명 높은) CISC 아키텍처 인 x86에서도 마찬가지입니다. 최신 x86 CPU는 내부적으로 RISC와 같은 코어로 프런트 엔드에 볼트로 고정되어 x86 명령어를 여러 RISC와 같은 명령어로 분류합니다. 인텔은 이것을 '마이크로 옵스'라고 부릅니다.
어셈블리에서 배우기 쉬운 (RISC vs CISC)에 관해서는, 나는 그것을 던질 것이라고 생각합니다. RISC 명령어 세트로 작업을 수행하려면 일반적으로 CISC 명령어 세트로 동일한 작업을 수행하는 것보다 더 많은 어셈블리 라인이 필요합니다. 반면 CISC 명령어 세트는 사용 가능한 명령어 수가 많기 때문에 배우기가 더 복잡합니다.
CISC가 나쁜 이름을 갖는 대부분의 이유는 x86이 지금까지 가장 일반적인 예이며 작업하기에 약간의 엉망이기 때문입니다. 필자는 x86 명령어 세트가 매우 오래되어 이전 버전과의 호환성을 유지하면서 수십 배 이상 확장 된 결과라고 생각합니다. 4.5Ghz 코어 i7조차도 286 모드에서 실행할 수 있습니다 (부팅시 수행).
ARM이 RISC 아키텍처 인 경우에는 적당히 논쟁의 여지가 있다고 생각합니다. 확실히로드 저장소 아키텍처입니다. 기본 명령어 세트는 RISC와 비슷하지만 최근 개정에서는 명령어 세트가 개인적으로 RISC와 CISC 사이의 중간 정도라고 생각할 정도로 상당히 커졌습니다. Thumb 명령어 세트는 실제로 ARM 명령어 세트 중 가장 'RISCish'입니다.