Nếu bạn làm quyết định tìm hiểu một chút về lắp ráp, có lẽ bạn nên học cái gì đó như 6502 lắp ráp trên một Commodore 64 (mô phỏng, tất nhiên), hoặc 68000 trên Amiga.
Bạn có thể biết một số ý tưởng về Commodore 64 tại đây ...
http://thepiratebay.org/torrent/4609238/Tag3-Saal2-Slot16_00--ID2874-the_ultimate_coosore_64_talk-Main
Cuốn sách kinh điển mọi thứ bạn cần biết là cuốn sách được mô tả ở đây ...
http://reprog.wordpress.com/2010/03/12/programming-books-part-3-programming-the-c Itemore-64 /
Bạn có thể tìm thấy bản quét PDF nếu bạn nhìn xung quanh.
IMO, 6502 dễ hơn Z80 và 68000 dễ hơn 8086 - các bộ hướng dẫn thông thường hơn, v.v.
Nhưng CPU chỉ là một khía cạnh của phần cứng. Ngoài ra, CPU hiện đại là một con quái vật khác biệt lớn và nó thực hiện những thứ trong suốt ngay cả từ quan điểm của trình biên dịch - chẳng hạn như trình bày một không gian địa chỉ ảo.
Một lợi thế đặc biệt của 6502 trên C64 là không chỉ CPU đơn giản mà còn có một số phần mềm rất đơn giản để hack xung quanh với phần cứng. Tôi đã từng rất vui khi chơi xung quanh với chip âm nhạc SID.
Vì vậy - nó có thể là một bài tập đáng giá nếu bạn không dành quá nhiều thời gian cho nó. Tôi đã học được trình biên dịch 6502 như ngôn ngữ thứ hai của mình khi tôi khoảng 14 tuổi, ngay sau Commodore Basic. Nhưng chủ yếu là nó có được mô hình làm việc rất đơn giản đó để bạn có thể thêm các ý tưởng phức tạp hơn vào nó với sự hiểu lầm tối thiểu.
Một số điều hữu ích bạn có thể học khi làm việc trong trình biên dịch ...
- Làm thế nào các thanh ghi CPU hoạt động.
- Làm thế nào địa chỉ bộ nhớ hoạt động, bao gồm cả chỉ định.
- Làm thế nào ngăn xếp CPU hoạt động.
- Làm thế nào logic bitwise hoạt động.
- Cách CPU điều khiển các thiết bị I / O.
- Làm thế nào gián đoạn làm việc.
Một lý do cụ thể mà tôi khuyên bạn là nên có một trực giác tốt hơn về cách các bước đơn giản vận hành hoàn toàn xác định và cơ học và hoàn toàn không có trí thông minh hoặc ý thức chung. Về cơ bản làm quen với mô hình thực thi mệnh lệnh ở dạng thuần túy và ngu dốt nhất.
Chính xác thì hữu ích như thế nào khi biết hầu hết những điều đó bây giờ, mặc dù, là một câu hỏi khó.
Một điều bạn sẽ không học được là làm thế nào để chơi tốt với một người thừa kế trí nhớ. Những máy cũ đó hầu hết có một mô hình bộ nhớ đơn giản không có lớp bộ nhớ cache và không có bộ nhớ ảo. Bạn cũng sẽ không học được nhiều về đồng thời - chúng chắc chắn là cách để xử lý vấn đề đó, nhưng điều đó chủ yếu có nghĩa là gián đoạn. Bạn không cần phải lo lắng về mutexes, vv
Đôi khi, một mô hình tinh thần về cách những thứ này từng hoạt động, hoặc cách thức trình biên dịch hoạt động, thậm chí có thể đánh lừa. Ví dụ, suy nghĩ về một con trỏ C là một địa chỉ có thể dẫn đến các vấn đề hành vi không xác định. Con trỏ AC thường được triển khai dưới dạng một số nguyên chứa địa chỉ, nhưng không có gì đảm bảo rằng điều đó hoàn toàn đúng. Ví dụ, trên một số nền tảng kỳ quái, các con trỏ khác nhau có thể trỏ vào các không gian địa chỉ khác nhau. Điều này trở nên quan trọng khi bạn muốn thực hiện số học hoặc logic bitwise với hai con trỏ.
Trừ khi bạn có một trong những nền tảng kỳ quái đó, bạn có thể không nghĩ rằng bạn quan tâm đến điều đó - nhưng trình biên dịch ngày nay có nhiều khả năng khai thác hành vi không xác định tiêu chuẩn để tối ưu hóa.
Vì vậy, một mô hình tinh thần của kiến trúc hệ thống có thể hữu ích, nhưng điều quan trọng là phải viết mã cho đặc tả ngôn ngữ., Không phải là một mô hình giả thuyết mà ngôn ngữ và nền tảng của bạn có thể không tôn trọng.
Cuối cùng, rất nhiều công cụ mô hình tinh thần hữu ích xuất phát từ ý tưởng về cách trình biên dịch tạo mã - và việc tạo mã cho các ngôn ngữ hiện đại rất khác so với các trình biên dịch khá tầm thường có sẵn trước đó.
Đây là một cuốn sách yêu thích của tôi cho rằng ...
http://dickgrune.com/Books/MCD_1st_Edition/
Cùng với các công cụ về phân tích cú pháp và AST, v.v., nó bao gồm việc tạo mã cho một loạt các mô hình ngôn ngữ - mệnh lệnh, OOP, chức năng, logic, song song và phân phối - và cũng để quản lý bộ nhớ. Nếu bạn muốn biết các cuộc gọi phương thức đa hình hoạt động như thế nào mà không bị sa lầy vào các chi tiết của tập lệnh CPU, thì một cuốn sách như thế này là bạn của bạn - và sắp có một phiên bản mới.