2012-01-27 71 views
7

Tôi đang đọc sách 'Computer Organization and Design' của Patterson và Hennessy và đã quan tâm đến MIPS.MIPS hướng dẫn nhảy

Tôi có nghi ngờ trong việc tìm kiếm phạm vi lệnh nhảy/nhánh. Ngoài ra, trong việc xác định số lượng hướng dẫn chi nhánh/nhảy cần thiết để đến một địa chỉ cụ thể.

Ai đó có thể cung cấp giải thích về cách tính này, tức là xem PC ở một địa chỉ cụ thể và tìm số hướng dẫn chi nhánh/nhảy cần đến địa chỉ khác? Ví dụ: nếu PC ở mức 0x10001010, phạm vi địa chỉ của hướng dẫn chi nhánh và bước nhảy là gì?

Hoặc bạn có thể hướng dẫn tôi đến một số tài nguyên hoặc sách trực tuyến có thể giúp tôi hiểu rõ hơn về các tài nguyên này không?

+0

Kiểm tra hướng dẫn sử dụng MIPS. Họ giải thích cách các hướng dẫn được mã hóa. – m0skit0

Trả lời

9

Sau đây là tất cả cho MIPS-32.

Chi nhánh B, BEQ, BNE, etc. hướng dẫn có trường 16 bit được ký từ trường bù trừ, cho phép chi nhánh đến địa chỉ +/- 128kBytes từ vị trí hiện tại. Lệnh nhảy J chỉ định địa chỉ trong vùng 256MByte hiện tại được chỉ định bởi 4 bit quan trọng nhất của PC: 26 < < 2 bit (đây là không địa chỉ tương đối). Để phân nhánh tới một địa chỉ tùy ý ở bất kỳ đâu trong không gian địa chỉ 4GB, hãy sử dụng JR (đăng ký nhảy) nhảy đến một địa chỉ có trong thanh ghi mục đích chung.

Chỉ cần một nhánh đơn hoặc lệnh nhảy hoặc tải đăng ký theo sau là JR để chuyển đến địa chỉ tùy ý, tùy thuộc vào địa chỉ cách xa.

Sách hay nhất cho lập trình MIPS vẫn là See MIPS Run. Bạn cũng có thể tìm thấy hướng dẫn tham khảo kiến ​​trúc MIPS tại mips.com (yêu cầu đăng ký). Tài liệu phù hợp nhất là Kiến trúc MIPS32® dành cho lập trình Tập II: Bộ chỉ dẫn MIPS32®.