2010-02-22 35 views
12

Nếu tôi muốn tải một giá trị từ một ký ức mà địa chỉ cơ sở nằm ở mức $ a0 và tắt thiết lập $ t2, tại sao tôi không thể làm như sau:MIPS từ tải cú pháp

lw $s2, $a1($t2) 

như vậy là những gì tương đương với biểu thức trên?

Trả lời

14

Bạn không thể làm điều đó bởi vì không có mã hóa lệnh MIPS hỗ trợ một điều như vậy. Bạn cần phải làm việc bổ sung bản thân:

add $a2, $a1, $t2 
lw $s2, 0($a2) 

Mã hóa hướng dẫn lw trông như thế này:

1000 11ss ssst tttt iiii iiii iiii iiii 

đâu sssss là số nguồn đăng ký, ttttt là số thanh ghi đích, và iiiiiiiiiiiiiiii là ngay lập tức . Không có chỗ trong mã hóa đó (và không có mã hóa lệnh thay thế) sử dụng hai thanh ghi để tạo địa chỉ bộ nhớ. Các hướng dẫn máy cụ thể mà sẽ được mã hóa từ ví dụ trên là:

1000 1100 1101 0010 0000 0000 0000 0000 

Kể từ khi trước mắt là 0, $s2 là đăng ký 18$a2 là đăng ký 6.

+2

tôi yêu mips ... đơn giản như vậy – Polaris878

+1

@ Polaris878, Yay cho RISC! –

Các vấn đề liên quan