Tôi đã học trên 68HC11 ở trường đại học. Chúng rất đơn giản để làm việc với nhưng thành thật mà nói, hầu hết các bộ vi điều khiển có công suất thấp sẽ tương tự nhau (AVR, 8051, PIC, MSP430). Điều lớn nhất sẽ tăng thêm độ phức tạp cho lập trình ASM cho vi điều khiển là số lượng và loại chế độ địa chỉ bộ nhớ được hỗ trợ . Bạn nên tránh các thiết bị phức tạp hơn lúc đầu như bộ xử lý ARM cao cấp hơn.
Có lẽ tôi muốn giới thiệu MSP430 như một điểm khởi đầu tốt. Có thể viết một chương trình bằng C và tìm hiểu bằng cách thay thế các chức năng khác nhau bằng cách lắp ráp nội tuyến. Bắt đầu đơn giản, x + y = z, v.v.
Sau khi bạn thay thế một hàm hoặc thuật toán bằng cách lắp ráp, hãy so sánh và đối chiếu cách bạn mã hóa nó và trình biên dịch C đã tạo. Đây có lẽ là một trong những cách tốt hơn để học lắp ráp theo quan điểm của tôi và đồng thời tìm hiểu về cách trình biên dịch hoạt động có giá trị vô cùng như một lập trình viên nhúng. Chỉ cần đảm bảo rằng bạn tắt tối ưu hóa trong trình biên dịch C lúc đầu hoặc bạn sẽ rất bối rối bởi mã được tạo của trình biên dịch. Dần dần bật tối ưu hóa và lưu ý những gì trình biên dịch làm.
RISC vs CISC
RISC có nghĩa là 'Tính toán tập lệnh giảm', nó không đề cập đến một tập lệnh cụ thể mà chỉ là một chiến lược thiết kế nói rằng CPU có một tập lệnh tối thiểu. Vài hướng dẫn mà mỗi người làm một cái gì đó cơ bản. Đây không phải là định nghĩa kỹ thuật nghiêm ngặt về những gì nó cần 'là RISC'. Mặt khác, các kiến trúc CISC có rất nhiều hướng dẫn nhưng mỗi "làm được nhiều hơn".
Ưu điểm của RISC là thiết kế CPU của bạn cần ít bóng bán dẫn hơn, nghĩa là sử dụng ít năng lượng hơn (lớn cho vi điều khiển), rẻ hơn để tạo ra và tốc độ xung nhịp cao hơn dẫn đến hiệu suất cao hơn. Việc sử dụng năng lượng thấp hơn và sản xuất rẻ hơn nói chung là đúng, hiệu suất cao hơn thực sự không đạt được mục tiêu là kết quả của những cải tiến thiết kế trong kiến trúc CISC.
Hầu như tất cả các lõi CPU đều là thiết kế RISC hoặc "tầng giữa" ngày nay. Ngay cả với kiến trúc CISC nổi tiếng (hoặc khét tiếng), x86. Các CPU x86 hiện đại là RISC bên trong giống như các lõi với bộ giải mã được bắt vít ở mặt trước, phá vỡ các hướng dẫn x86 thành nhiều RISC giống như các hướng dẫn. Tôi nghĩ Intel gọi đây là 'micro-op'.
Về việc (RISC so với CISC) dễ học hơn trong lắp ráp, tôi nghĩ rằng đó là một sự tung tăng. Làm một cái gì đó với một tập lệnh RISC thường đòi hỏi nhiều dòng lắp ráp hơn là làm điều tương tự với một tập lệnh CISC. Mặt khác, các bộ hướng dẫn CISC phức tạp hơn để học do số lượng hướng dẫn có sẵn nhiều hơn.
Hầu hết lý do CISC có một tên xấu là x86 là ví dụ phổ biến nhất và là một mớ hỗn độn để làm việc. Tôi nghĩ rằng đó chủ yếu là kết quả của các hướng dẫn x86 đã rất cũ và đã được mở rộng hơn một nửa hoặc nhiều lần hơn trong khi vẫn duy trì khả năng tương thích ngược. Ngay cả i7 core 4.5Ghz của bạn cũng có thể chạy ở chế độ 286 (và khi khởi động).
Đối với ARM là một kiến trúc RISC, tôi sẽ xem xét điều đó gây tranh cãi vừa phải. Đó chắc chắn là một kiến trúc cửa hàng tải. Tập lệnh cơ sở giống như RISC, nhưng trong các lần sửa đổi gần đây, tập lệnh đã phát triển khá nhiều đến mức cá nhân tôi coi nó giống như một trung gian giữa RISC và CISC. Bộ hướng dẫn ngón tay cái thực sự là 'RISCish' nhất trong các bộ hướng dẫn ARM.