Tại sao mỗi địa chỉ trong bộ điều khiển vi mô chỉ có kích thước 8 bit?


18

Tôi đã thấy rằng, trong vi điều khiển 32 bit, mỗi địa chỉ của bộ nhớ chỉ chứa 8 bit dữ liệu; MC 16 bit cũng vậy. Đối với dữ liệu 32 bit, nó sử dụng kết hợp 4 địa chỉ. Tại sao không thể tạo địa chỉ để giữ dữ liệu 32 bit trực tiếp (tạo địa chỉ 32 bit hoặc 16 thay vì 8)?


2
Nó phụ thuộc vào Bus dữ liệu của Vi điều khiển. Vi điều khiển 32 bit nào có bộ nhớ byte? Bạn có ví dụ nào không?
Swanand

4
Đơn giản là không đúng, đó là lý do tại sao các ngôn ngữ lập trình như C và C ++ kết hợp khả năng cho một byte lớn hơn 8 bit. Chỉ có điều là phần lớn hoạt động tốt nhất với byte 8 bit, nhưng 9 bit hoặc 18 bit nằm ngoài đó.
PlasmaHH

6
Nó giống như những thanh kẹo. Họ tiếp tục làm cho chúng nhỏ hơn với cùng một mức giá.
Olin Lathrop

4
Câu hỏi này có thể được viết lại "Tại sao tất cả các địa chỉ được căn chỉnh thành 8 bit" không?
Florian Castellane

2
@FlorianCastellane Cái này. Các địa chỉ không có kích thước 8 bit (trừ khi bạn có thể tìm thấy một thiết bị có bộ nhớ <256 bit, thì chúng có thể là).
jayjay

Câu trả lời:


11

Đây thực sự là một sự lựa chọn thiết kế, không có lý do cứng nhắc tại sao nó phải như vậy. Quay lại thời xưa, khi các bộ xử lý hàng hóa khối lượng lớn hoạt động trên các giá trị 8 bit, ánh xạ nhất quán hơn 1: 1. Để thống nhất khi các thiết kế phát triển thành bộ xử lý 32 và 64 bit hiện đại, việc giữ ánh xạ địa chỉ byte cũ hơn mặc dù các bus dữ liệu đã tăng (với sự thay đổi chi phí thực hiện thay đổi). Một số MCU 32 bit vẫn có thể chỉ triển khai các bus dữ liệu 16 bit cho một số bộ nhớ, bộ xử lý cao cấp sẽ có 256 bit trở lên và có thể tải nhiều thanh ghi lõi trong một giao dịch bộ nhớ. Giao diện rộng là tốt cho các hoạt động bùng nổ hoặc phát trực tuyến.

Kích thước bộ nhớ địa chỉ nhỏ không chỉ hữu ích trong trường hợp xử lý các giá trị byte trong mã, mà còn hoạt động với các cấu trúc trong bộ nhớ như các gói ethernet nơi các byte cụ thể cần phải được đọc hoặc sửa đổi. Thường thì loại hoạt động này cần để có thể thực hiện các hoạt động nhỏ nhưng rất hiệu quả.

Cũng có những kịch bản cần phải hoạt động với dữ liệu cuối lớn, cuối nhỏ hoặc hỗn hợp. Bây giờ thường có hỗ trợ phần cứng chuyên dụng cho việc này, nhưng một lần nữa, địa chỉ byte của bộ nhớ sẽ làm cho loại hoạt động này hiệu quả hơn trong một số trường hợp.

Gần đây, số lượng bit địa chỉ trong một thanh ghi là một yếu tố giới hạn cho không gian địa chỉ, do đó, việc lãng phí 2 bit để giải quyết các byte thay vì các từ 32 bit sẽ không còn là vấn đề đáng lo ngại từ 10-15 năm trước (và bây giờ với các con trỏ 64 bit, phổ biến để thực hiện các địa chỉ byte rộng 48 hoặc 56 bit). Nhập môn Giảng dạy khoa học máy tính vẫn còn một chút bế tắc trong thời đại máy tính mới chỉ đăng, và không phải lúc nào cũng giải quyết các khía cạnh tiến hóa rất rõ ràng. Rất nhiều thuật ngữ được sử dụng (và định nghĩa) trong khoảng thời gian các kiến ​​trúc chi phí cao khối lượng thấp (theo nghĩa chung nhất) bắt đầu được bổ sung bởi các thiết kế bộ xử lý tập trung vào hàng hóa bị hạn chế nhiều tài nguyên hơn.

Tôi đã không trả lời cụ thể cho MCU, ranh giới kiến ​​trúc không rõ ràng như bạn có thể giả định. Ngay cả một thiết kế MCU hiện đại cũng có khả năng được tích hợp cùng với bộ xử lý máy chủ nhiều lõi, hoặc tồn tại như một điểm duy nhất trong một bộ sản phẩm có thể mở rộng; một trong hai cách tiếp cận nhất quán để truy cập bộ nhớ đều có lợi cho người dùng cuối cần viết hoặc mã cổng.

Tôi đã hỏi một câu hỏi trên SE tính toán lại về kích thước đăng ký để theo dõi các khía cạnh lịch sử của câu hỏi này.


2
Tôi nghĩ rằng bộ xử lý với kích thước từ dài hơn trước bộ xử lý 8 bit. Bộ xử lý 8 bit sẽ khá vô dụng nếu không có phương tiện hiệu quả để thêm hai số nhiều byte và bộ xử lý ban đầu không thể xử lý hiệu quả các số lớn hơn một từ máy.
supercat

1
Tôi đã làm việc với các bộ xử lý 8 bit đủ để biết rằng chúng có thể dễ dàng thêm các số nhiều byte, nhưng không phải với một lệnh CPU. Đầu tiên, thêm hai byte thấp nhất và nhận byte kết quả thấp nhất và một bit mang riêng. Đối với nhiều byte khác có mặt, thêm các byte đầu vào tiếp theo và bit carry từ bước trước đó, đưa ra byte đầu ra tiếp theo và bit carry tiếp theo. Khi không còn byte đầu vào, chuyển đổi bit mang cuối cùng thành một byte đầu ra nữa.
dùng6030

@ user6030: Không phổ biến khi có lệnh ADC? AVR không (một vi điều khiển RISC 8 bit nên gcc phải sử dụng ADC cho intlong ), x86 cũng vậy, ARM cũng vậy. Tôi cho rằng hầu hết các CPU 8 bit sẽ có nhu cầu về nó nhiều hơn so với trên một hệ thống có regs rộng hơn. Oh, có phải supercat nói rằng các bộ xử lý ban đầu thiếu ADC hiệu quả?
Peter Cordes

Tôi nghĩ rằng đó là một điểm hợp lệ liên quan đến sự phát triển của kích thước đăng ký (mặc dù tôi thiếu dữ liệu)
Sean Houlihane

25

Có một số DSP (ví dụ TI C54x) không thể giải quyết các giá trị nhỏ hơn 16 bit và một số DSP âm thanh sử dụng 24 bit. Tuy nhiên, các giá trị 8 bit được sử dụng trong hầu hết các mã mục đích chung, vì vậy tất cả các CPU có mục đích chung đều hỗ trợ nó.

Và chỉ vì đơn vị nhỏ được sử dụng cho các địa chỉ bộ nhớ là byte 8 bit không có nghĩa là đây sẽ là đơn vị lớn nhất đơn vị thực sự được sử dụng trên xe buýt; hầu hết các CPU sử dụng kích thước từ gốc của chúng (16/32 bit) hoặc thậm chí là kích thước lớn hơn để giải quyết bộ nhớ và khi sử dụng truy cập byte, sẽ tự động trích xuất byte từ từ lớn hơn.

Ví dụ, bus PCI luôn sử dụng các giao dịch 32 bit, nhưng có tín hiệu cho phép byte để truy cập phải nhỏ hơn.


Cảm ơn bạn. Có MC nào rộng bằng nibble thay vì byte trong bộ nhớ không?
Arun Joe Cheriyan

4
Có lẽ Intel 4004?
pjc50

6
@ArunCheriyan Một ví dụ về CPU hoạt động với nibble vì từ có thể thay thế nhỏ nhất là Saturn : CPU được thiết kế bởi HP và được sử dụng trong các máy tính cao cấp của họ vào thế kỷ trước (đặc biệt là HP48 nổi tiếng). Nó có kiến ​​trúc rất khác thường (thanh ghi 64 bit, ALU 4 bit, địa chỉ 20 bit, ...).
mờ

Một ví dụ khác: Đơn vị địa chỉ nhỏ nhất cho TMS320C3x của TI là 32 bit.
kkrambo

1
@davidcary Ồ, dù sao thì ... ngày và thời gian chưa bao giờ là bộ đồ mạnh mẽ của tôi. Hỏi vợ tôi về những món quà sinh nhật của cô ấy và sếp của tôi về thời hạn ...
mờ

18

Một vi điều khiển 16 bit hoặc 32 bit thường cần thao tác dữ liệu chỉ rộng 8 bit (một byte). Ví dụ, các chuỗi văn bản thường được lưu trữ với một ký tự cho mỗi byte. Bằng cách có sơ đồ địa chỉ bộ nhớ cho phép mỗi byte riêng lẻ được xử lý, vi điều khiển có thể xử lý hiệu quả dữ liệu rộng 8 bit. Điều này có nghĩa là dữ liệu 32 bit thường nằm trên các địa chỉ là bội số của 4 byte, ví dụ 04, 08, 0C, v.v. Nhưng nếu bộ nhớ rộng 32 bit thì vi điều khiển có thể đọc 32 bit trong một chu kỳ đọc . Micro thường có các lệnh máy có thể hoạt động trên các dữ liệu có độ dài khác nhau, vì vậy bạn sẽ thấy rằng một lệnh dữ liệu di chuyển (MOV) có thể có 3 dạng, MOV.B, MOV.W và MOV.L để di chuyển 8, 16 và 32 bit dữ liệu trong một hướng dẫn.


7

Câu trả lời cơ bản là "bởi vì đó là một byte dài bao nhiêu". Với một bộ mã lớn được thiết lập để đưa ra giả định đó, phá vỡ nó sẽ gây ra đủ loại vấn đề.

Quay trở lại những ngày đầu, không có cơ quan nào được thiết lập. Bộ xử lý thường sẽ sử dụng tất cả các cách kiến ​​trúc lạ, như thể hiện trong các câu trả lời khác. Vào thời điểm bộ xử lý 16 bit xuất hiện, đã có đủ mã giả định rằng dữ liệu 8 bit có sẵn mà không làm cho việc đó trở nên dễ dàng sẽ là rào cản thực sự đối với việc áp dụng.

Có một từ 32 bit cho mỗi địa chỉ sẽ không gây bất lợi về tốc độ bộ nhớ. Trên hệ thống 32 bit, 2 bit địa chỉ thấp hơn thường không đi vào bộ nhớ. Bộ xử lý thường sẽ đọc toàn bộ từ 32 bit và chọn (hoặc che đi) byte 8 bit mà nó cần trong từ đó. Miễn là không gian địa chỉ của bạn có thể lưu trữ đủ dữ liệu (giới hạn ở 2 ^ 32 byte với hệ thống 32 bit) thì không phải lo lắng. Trên thực tế, trên nhiều bộ xử lý 16 bit / 32 bit, việc xử lý với các giá trị byte mất nhiều thời gian hơn so với các giá trị độ dài từ gốc - đọc một từ 32 bit và loại bỏ một phần của từ đó rõ ràng sẽ cần một thao tác bổ sung, so với việc chỉ đọc từ 32 bit.

Ngược lại, nếu bạn có một hệ thống mà bạn cần sử dụng bộ nhớ hiệu quả, thì bạn cần có khả năng truy cập từng byte riêng lẻ. Nếu bạn không thể, bạn sẽ hết bộ nhớ. Với ý nghĩ đó, việc có thể tham chiếu các byte riêng lẻ rõ ràng là cần thiết, do đó, có ý nghĩa khi bộ nhớ của bạn được phân chia theo byte.


3
Thật. Và sau đó là câu hỏi bổ sung nếu một bộ xử lý có thể xử lý hai truy cập riêng biệt cần thiết để tải hoặc lưu trữ một unaligned giá trị 32 bit tự động trong phần cứng, hoặc nếu đó phải được xử lý một cách rõ ràng trong phần mềm.
Chris Stratton

5

Đây là những gì được gọi là có bộ nhớ địa chỉ byte . Đó thường là một điều tốt, trừ khi bạn hết dung lượng địa chỉ (ví dụ: 4GB với con trỏ 32 bit, thay vì 16GB với con trỏ 32 bit trong đó mỗi địa chỉ là một từ 32 bit riêng biệt).


Lưu ý rằng không gian địa chỉ có thể vượt qua các giới hạn như vậy nếu bạn chia địa chỉ thành các phần sẽ phù hợp với từng đăng ký. Tôi đã từng có một số máy tính 8 bit đạt tới 64 KB bộ nhớ bằng cách chia địa chỉ thành hai phần được giữ trong các thanh ghi riêng biệt và thấy quảng cáo cho máy tính cũng có bộ xử lý 8 bit có thể đạt tới 1 MB bộ nhớ bằng cách chia địa chỉ thành ba các bộ phận.
dùng6030

AVR (vi điều khiển RISC 8 bit) thực hiện điều đó: ba cặp trong số 32 thanh ghi 8 bit có mục đích chung có thể được coi là một con trỏ 16 bit. Ngoài ra còn có một số cơ sở để kết hợp điều đó với một phân đoạn 8 bit khác để có được địa chỉ 24 bit.
Peter Cordes

4

DSP DSP Shark 32 bit có 32 bit là đơn vị bộ nhớ có thể định địa chỉ nhỏ nhất, vì vậy sizeof (int) == sizeof (short) == sizeof (char) == 1 (Có, chúng có ký tự 32 bit, hoàn toàn hợp lệ theo tiêu chuẩn C).

Ngoài ra, những thứ như int_8, int_16 và những thứ như vậy không được xác định trong, một sự ngạc nhiên khó chịu khi chuyển mã từ các nền tảng khác.


1

Kích thước của đơn vị bộ nhớ có thể đánh địa chỉ về cơ bản là một sự thỏa hiệp giữa số lượng bộ nhớ bạn có thể xử lý so với số lượng bộ nhớ bạn sẽ lãng phí.

Bộ nhớ địa chỉ . Hãy xem xét CPU 32 bit: nếu bạn giải quyết các byte, bạn có thể giải quyết tối đa 4GB bộ nhớ. Nếu bạn giải quyết các bit riêng lẻ, số tiền đó sẽ giảm xuống còn 512MB và nếu bạn giải quyết các từ 32 bit, bạn sẽ có 16GB. (câu hỏi của bạn dường như gợi ý sau).

Ký ức lãng phí . Nếu bạn có một biến có thể được biểu thị bằng các bit X và bạn chỉ có thể phân bổ đơn vị N bit cho nó, bạn sẽ lãng phí trung bình (N-1) / 2 bit, giả sử X> N. Nếu bạn xử lý các bit riêng lẻ , bạn sẽ sử dụng bộ nhớ với hiệu suất 100% (ít nhất là từ quan điểm địa chỉ). Với byte, bạn sẽ lãng phí 3,5 bit cho mỗi biến (hiệu suất 56%) và với các từ 32 bit, bạn sẽ lãng phí 15,5 bit (hiệu suất 52%). Nhưng điều tồi tệ hơn: nếu hầu hết các biến của bạn nhỏ (nghĩ ký tự, booleans, cờ trạng thái), bạn sẽ lãng phí phần lớn bộ nhớ nếu các đơn vị địa chỉ của bạn quá lớn.

Ví dụ: giả sử kích thước trung bình của một biến là 8 bit.

  • trên máy tính có địa chỉ bit, bạn sẽ có thể phân bổ với hiệu suất 100%, sẽ cung cấp cho bạn 512*1024*1024*100%= 0,54 tỷ biến.
  • trên máy tính có địa chỉ byte, bạn sẽ phân bổ với hiệu suất 56%, sẽ cung cấp cho bạn 4096*1024*1024*56%= 2,4 tỷ biến. Đó là gần gấp 5 lần so với một máy tính có địa chỉ bit! Tất nhiên, bạn sẽ cần mua thêm 8 lần bộ nhớ.
  • trên máy tính có địa chỉ 32 bit, vì ít nhất một nửa biến số của bạn sẽ chiếm ít hơn 8 bit, chúng sẽ được phân bổ với hiệu suất dưới 7% (sử dụng 4,5 bit trong số 32). Trong mọi trường hợp, bạn sẽ không nhận được hơn 4,3 tỷ biến số (vì bạn chỉ có nhiều địa chỉ riêng biệt) và ít hơn thế trong thực tế. Tránh các tính toán phức tạp, tôi đoán sẽ có thể lưu trữ hữu ích hơn 20-30% so với máy tính có địa chỉ byte, trong khi trả giá gấp 4 lần cho RAM.

1

Có lẽ đã nói nhiều cách khác nhau trong các câu trả lời khác. Nói chung ngày nay, nhưng không nhất thiết trong lịch sử, một byte là 8 bit. Hầu hết thời gian chúng ta xử lý "bộ nhớ địa chỉ byte" có nghĩa là điều SMALLEST chúng ta có thể truy cập với một địa chỉ duy nhất là một byte. Nhưng điều đó không có nghĩa đó là điều DUY NHẤT chúng ta có thể giải quyết. Tùy thuộc vào nền tảng, một địa chỉ duy nhất có thể được sử dụng để truy cập một byte, một nửa từ / từ (16 bit), một từ / từ kép (32 bit) và cứ như vậy là 64 bit. Hướng dẫn về cơ bản xác định kích thước của truy cập mong muốn là gì (8,16,32,64, v.v.) thường ở các đơn vị 8, 16, 32, 64. Nhưng điều đó không khó và nhanh, "nó phụ thuộc".

Ngoài ra tùy thuộc vào thiết kế của bộ xử lý và / hoặc hệ thống, không có lý do nào để cho rằng kích thước của truy cập là kích thước của bộ nhớ hoặc kích thước của truy cập nhỏ nhất. Với các yêu cầu lớn hơn và lớn hơn, theo thời gian để thực hiện hệ thống bộ nhớ bằng cách sử dụng kích thước nhỏ nhất, máy tính bạn đang đọc này có thể sử dụng bus dữ liệu rộng 32 bit hoặc bus dữ liệu rộng 64 bit cho tất cả các truy cập, bạn muốn đọc một byte, nó đọc 64 bit và ném phần còn lại của các bit, tại sao nó không tốn thêm bất cứ thứ gì giữ cho bus rộng đến gần lõi bộ xử lý và bộ xử lý chọn làn byte phù hợp. chi phí logic hơn và hoặc đồng hồ để làm cho xe buýt hẹp hơn hoặc di chuyển các byte xung quanh trong các làn byte, (đôi khi được thực hiện). vì vậy các ram nội bộ trong một vi điều khiển có thể rộng 32 bit chẳng hạn nếu điều đó có ý nghĩa đối với hệ thống. có thể là 16. Có để ghi bạn thực hiện ghi nhiều chu kỳ hơn, bạn phải đọc-sửa-ghi ở đâu đó dọc theo dòng. Muốn viết một byte đơn trên máy tính của bạn, ở đâu đó, việc đọc 64 bit xảy ra và sau đó một byte trong số 64 bit đó được sửa đổi, tùy thuộc vào những gì bạn làm sau đó 64 bit đó có thể quay trở lại với kịch chỉ với 8 bit đó khác với những gì đã có trước đây, bộ nhớ đệm và mã của bạn làm cho điều này không phải là một quy tắc chung. Ghi là cháy và quên, mặc dù vậy, bộ điều khiển bộ nhớ có thể thu thập địa chỉ và dữ liệu từ bộ xử lý và cho phép bộ xử lý tiếp tục chạy trong khi cuối cùng đồng hồ tiết kiệm ghi, có thể nhiều đồng hồ bị ghi trong đọc-sửa-ghi (nếu trong bộ nhớ cache đã có),

Có những trường hợp ngoại lệ thậm chí ngày nay đối với hầu hết tất cả những điều này, có lẽ có các hướng dẫn hoặc loại truy cập trong một số hệ thống có thể truy cập được bit, có một số hệ thống có địa chỉ là đơn vị của một thứ gì đó không phải là byte. Một byte không phải lúc nào cũng là 8 bit và có thể có những hệ thống vẫn đang chạy là đúng (chúng ta thường sử dụng bát phân và một từ 18 bit hoặc 18 bit có ý nghĩa rất lớn đối với các lập trình viên và nhà thiết kế chip nghĩ rằng bát phân, một 8 bit rất có ý nghĩa đối với các nhà tư tưởng thập lục phân).

Bây giờ máy tính bạn đang đọc này, mặc dù bus dữ liệu cho bộ điều khiển kịch đó có thể rộng 32 hoặc 64 bit, bản thân mô-đun kịch thực tế có thể được tạo thành từ nhiều phần rộng 8 bit, bạn có thể dễ dàng nhìn thấy. Nếu nó có 8 hoặc 9 chip ở một bên thì có lẽ là bus rộng 64 bit hoặc 72 bit (64 bit cộng với 8 bit ECC) được triển khai với các phần rộng 8 bit. Nếu bạn có 4 hoặc 5 chip một mặt của mô-đun nhưng vẫn còn hàng tấn chân, thì nó rộng 32 bit (không chắc là những ngày này) hoặc 4 chip rộng 16 bit và nếu có 5 chip thì có thể là 5 bit. rộng 16 bit và chỉ 8 bit được sử dụng hoặc nó là một phần rộng 8 bit. Có các phần rộng 32 bit, nhưng rộng 8 bit là phổ biến nhất. Một thực tế rất phổ biến mà đi trở lại.

Chúng ta sẽ cần biết vi điều khiển. Vì bạn đề cập đến 32 bit nên rất có thể (không có thông tin chi tiết mặc dù chúng tôi không thể biết) rằng bộ nhớ bên trong phần đó rộng 32 bit và tất cả các truy cập vào nó đều rộng 32 bit. các hướng dẫn có thể sẽ xác định chương trình muốn gì có thể cung cấp loại truy cập 8 bit, 16 bit và 32 bit, các hướng dẫn nhỏ hơn khi ghi sẽ yêu cầu đọc-sửa đổi-ghi ở đâu đó, đọc bạn chỉ cần bỏ qua các làn byte. Tương tự với flash, mặc dù flash write là một chủ đề khác. Nhưng đèn flash bên trong rất có thể rộng 32 bit và tất cả các lần đọc được tính theo đơn vị 32 bit. Mặc dù vậy, một đèn flash bên ngoài là một câu chuyện khác, rất có thể chúng rộng một bit (spi hoặc i2c), mặc dù các phần spi đôi khi có thể hỗ trợ 1, 2 hoặc 4 bit, nhưng một pin miso là phổ biến nhất. Trong nội bộ, chúng được tổ chức theo đơn vị byte, có thể rộng 8 bit hoặc 16 hoặc 32 hoặc ai biết được, bạn chuyển ra và xử lý chúng theo đơn vị byte. với spi, bạn có thể chuyển ra bất cứ nơi nào giữa một byte và toàn bộ bộ nhớ trong một giao dịch, tùy thuộc vào thiết kế phần flash.


0

Bạn cũng có thể nhận được bộ xử lý 1 bit!

Chiều rộng dữ liệu sẽ theo chiều rộng của thanh ghi (bộ tích lũy). đây thường là 'chiều rộng bộ xử lý' trong khi thanh địa chỉ có thể khác nhau (thường rộng hơn), nhưng về mặt kỹ thuật có thể hẹp hơn tùy thuộc vào việc sử dụng.

8 tất nhiên là một sức mạnh của hai số. Chúng tôi có lịch sử để cảm ơn về việc sử dụng phổ biến 8 bit - và CHI PHÍ / khả năng của công nghệ. Trong một thời gian dài 8 bit được cai trị, một phần lý do là độ rộng của các thanh và khó khăn trong việc tạo các thanh ghi (và RAM) rộng hơn 8 bit (không có điểm nào trong dữ liệu 16 bit nếu các thanh ghi của bạn đều có 8 bit). 8 bit khá tiện lợi và có nhiều ý nghĩa trong Hex. 8 bit có thể giữ bảng chữ cái, số, ký tự vẽ và điều khiển (ASCII) hoặc 0 đến 255 hoặc + -127 Truy cập hơn 256 byte dữ liệu (bus địa chỉ 8 bit) dễ dàng với phân trang, Chọn trang, sau đó là byte 256 trang của 256 giúp bạn đạt 64K (65536). Thông thường trang 0 sẽ là một miếng đệm đầu vì nó sẽ truy cập nhanh hơn vì điều này sẽ không yêu cầu trang được đặt. Máy tính đầu tiên của tôi có 1k x 8 bit ram tĩnh! (RAM động rẻ hơn, nhưng cần thêm phần cứng để làm mới nó). Với một vài cờ (c, nc, z, nz), cộng, trừ, xoay trái và phải, bạn có thể thực hiện một số phép toán khá phức tạp trên máy 8 bit. Bạn không cần một đơn vị số học dấu phẩy động! Không siêu nhanh, nhưng có thể làm được! Nhiều bộ xử lý ban đầu có thể được thực hiện một bước và được sử dụng với RAM tĩnh đơn giản giúp việc gỡ lỗi thực sự dễ dàng; thêm một số bộ đệm bát phân và đèn LED màu đỏ sớm, bạn có thể xem các địa chỉ và dữ liệu thay đổi :)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.