Conversia instrucțiunilor binare/hexadecimale în instrucțiuni MIPS (Programare, Mips)

în mod secundar a intrebat.

Pentru următoarele intrări, ce instrucțiuni reprezintă acestea?

Binary: 00000001110001011000100000100001

Hexazecimal: 144FFF9D

Sunt complet pierdut în ceea ce fac aici – căutând pe internet am obținut o grămadă de rezultate care nu prea au sens pentru mine, dar ceea ce am înțeles este că, în principiu, ar trebui să potrivesc numerele cu instrucțiunile/registrele corespunzătoare, dar de unde știu exact care sunt acestea? Unde pot găsi o listă completă? Cum știu dacă este o funcție în format R I sau J?

2 răspunsuri
Scott Hunter

Primii 6 biți (este mai ușor să lucrezi în binar) sunt opcode, din care poți determina cum să interpretezi restul. Acest site ar trebui să vă ajute să începeți: http://www.mrc.uidaho.edu/mrc/people/jff/digital/MIPSir.html

Actualizați: Numirea primilor 6 biți drept opcode este (pentru a fi prea amabil) înșelătoare, dar este suficientă pentru a vă spune cum să interpretați restul instrucțiunii; este posibil să trebuiască să căutați în altă parte (de obicei la sfârșitul instrucțiunii) pentru determinarea completă a opcode-ului.

Comentarii

  • Deci, în primul exemplu binar – din moment ce are 0000 00, ar fi format R, corect? Iar ultimele 6 cifre (în cazul meu 1000 01) ar fi funcția/operațiunea reală? –  > Por în al doilea rând.
  • Asta spune și pagina la care am dat link. –  > Por Scott Hunter.
user11256840

Există 3 tipuri de instrucțiuni MIPS:

  • R_type: Opcode trebuie să fie 000000 (primii 6 biți) și cu ultimii 6 biți putem ști care este instrucțiunea corectă
  • I_type
  • j_type

În acest caz, avem o instrucțiune MIPS de tip R și deci :

Opcode  rs      rt     rd    shamt    funct
000000  01110  00101  10001  00000   100001
 addu   $s1 ,   $t6   , $a1

Tags: