Bagaimana mengetahui format instruksi MIPS R, I atau J

Bagaimana cara mengetahui apakah opcode dari instruksi MIPS adalah Register, Imidiate atau Jump? Mengingat tabel ini dari buku, tetapi apakah ada cara untuk menentukan format opcode?

http://i.imgur.com/uNK6eby.png


person user3025956    schedule 02.12.2013    source sumber


Jawaban (1)


Lihatlah bit opcode - 6 bit paling signifikan. Di C, jika n adalah kata perintah 32-bit, ekspresi untuk opcode adalah (n >> 26) & 0x3f.

Jika opcode adalah 0, maka itu adalah perintah register.

Jika 2 (j), 3 (jal), atau 26 (trap) - itu adalah lompatan.

Jika tidak, segera.

Lembar contekan pengkodean MIPS, termasuk daftar semua opcode, tersedia di sini, dan mungkin di tempat lain.

person Seva Alekseyev    schedule 02.12.2013
comment
saya tahu bahwa 6 bit pertama berbicara tentang opcode, dan 64 bitnya berbeda. Dari gambar yang saya lampirkan, bisakah Anda menjelaskan sedikit lebih baik? - person user3025956; 03.12.2013
comment
@dwelch saya mengerti tabelnya tetapi yang tidak saya pahami adalah yang ditulis Seva. jawabannya adalah jawaban atas pertanyaan saya tetapi saya masih membutuhkan seseorang untuk menjelaskannya. - person user3025956; 03.12.2013
comment
Saya mengatakan bahwa format instruksi dapat disimpulkan dari kolom opcode. Semua opcode yang diketahui didokumentasikan; beberapa sesuai dengan operasi I, beberapa dengan R, beberapa dengan J. - person Seva Alekseyev; 03.12.2013