Mengakses bit individual di MIPS

Saya sedang menulis sebuah program di MIPS yang memecahkan labirin menggunakan algoritma aturan tangan kiri. Algoritme saya sudah tertulis, tetapi saya perlu menemukan cara untuk melacak ruang-ruang di labirin yang telah saya kunjungi sehingga saya dapat menemukan solusi "terbaik" dan paling langsung untuk menyelesaikan labirin tersebut.

Dalam programnya, register $t9 adalah angka 32 bit yang menyimpan informasi tentang lokasi mobil yang melintasi labirin, termasuk posisi kolom dan baris, yang perlu saya isolasi. Pada dasarnya, yang perlu saya ketahui adalah cara bekerja dengan/mengisolasi bit-bit spesifik tersebut.

Bit 31-24 adalah bilangan 8-bit yang mewakili baris dalam pujian 2. Bit 23-16 adalah bilangan 8-bit yang mewakili kolom dalam pujian 2

tl;dr Saya hanya perlu mengekstrak 8-bit pertama, dan 8-bit berikutnya dari nomor 32 bit yang terletak di $t9 di MIPS

Terima kasih!


person Nick Mullen    schedule 02.11.2016    source sumber


Jawaban (1)


Untuk mendapatkan bit 31-24, lakukan pergeseran logis ke kanan (SRL) sebanyak 24. Angka yang tersisa akan sesuai dengan nilai bit tersebut, yang ditafsirkan sebagai bilangan bulat 8-bit.

Untuk mendapatkan bit 23-16, geser ke kanan sebanyak 16, lalu AND sebanyak 0xff.

Apakah Anda akan mengetahui perintah MIPS untuk itu?

person Seva Alekseyev    schedule 02.11.2016
comment
Anda tidak perlu menutupi 8 bit nilai 32bit yang digeser ke kanan sebesar 24 bit - ketika logika pergeseran ke kanan digunakan, karena 24bit atas tersebut tetap diisi dengan nol. - person Ped7g; 02.11.2016