2012-04-05 23 views
9

Tôi cố gắng để hiểu được specs, nhưng không hiểu dòng đầu tiên của ví dụ đưa ra:Làm thế nào để hiểu được dòng đầu tiên của ví dụ lắp ráp DCPU-16 specs?

SET A, 0x30    ; 7c01 0030 

Dưới đây là những gì tôi hiểu từ các thông số kỹ thuật:

  • từ đầu tiên (7c01) hoàn toàn xác định hướng dẫn
  • các nhà điều hành là 0x1 mà ​​là lệnh SET a, b
  • b = 111.100 = 0x3C (khi tôi chuyển đổi thành Hex) = giá trị văn chương 0x3C
  • a = 000000 = register Một

Vì vậy, tôi hiểu được những hướng dẫn như SET A, 0x3C

bất cứ ai có thể tư vấn cho nơi tôi đi sai?

+1

đâu b = 111.100 đến từ đâu? Theo quan điểm của tôi b = 110000 = 0x30 ... –

+0

@cli_hlt Hum, bây giờ tôi có 0x7c01 = 0111110000000001 cho tôi b = 011111 = 1F?! – tucson

Trả lời

9

Ah ok từ các bình luận cuối cùng tôi đã nhận được câu trả lời của tôi.

Bạn đang thiếu những "giá trị" đoạn từ spec, có nó nói:

Values: 
.... 
0x1f: next word (literal) 

Vì vậy, chúng ta có:

0x7c01 = 0111110000000001 

0001 = SET 
000000 = register A 
011111 = 1F -> next word -> [PC++] 

Từ tiếp theo là 0x0030 ... thì đấy.

+0

OK. Cảm ơn! – tucson

0

@cli_hlt là gần như chính xác

tài liệu dcpu nói:

Trong một hướng dẫn cơ bản, thấp hơn năm bit của từ đầu tiên của lệnh là opcode, và các bit còn lại là mười một chia thành giá trị năm bit b và giá trị sáu bit a.

b luôn được xử lý bởi bộ xử lý sau một và thấp hơn năm bit . Trong bit (ở định dạng LSB-0), một hướng dẫn cơ bản có định dạng: aaaaaabbbbbooooo

nên câu trả lời đúng là:

0x7c01 = 0111110000000001 

00001 = SET 
00000 = register A 
011111 = 1F -> next word -> [PC++] 
Các vấn đề liên quan