Forum » Programiranje » dekodiranje ukazov
dekodiranje ukazov
rustypac ::
Mi lahko malo razložite zakaj se gre in kako deluje?
dekodirajte ukaz (ugotovite, kaj prišteje kateremu registru (številka registra) in kam gre rezultat)
001000 00101 00010 0000000000001101
V pomnilniku na lokaciji X piše (v dvojiškem sistemu) sledeč ukaz za MIPS 64:
000000 00011 10110 01001 00000 101110
1. za kateri ukaz gre (dekodirajte ukaz),
2. katere operande ima?
Mi lahko kdo razloži, kako in kaj se gleda v tej tabeli?
Googlam že 3 ure in še sedaj nevem zakaj se gre.
Lp!
dekodirajte ukaz (ugotovite, kaj prišteje kateremu registru (številka registra) in kam gre rezultat)
001000 00101 00010 0000000000001101
V pomnilniku na lokaciji X piše (v dvojiškem sistemu) sledeč ukaz za MIPS 64:
000000 00011 10110 01001 00000 101110
1. za kateri ukaz gre (dekodirajte ukaz),
2. katere operande ima?
Mi lahko kdo razloži, kako in kaj se gleda v tej tabeli?
Googlam že 3 ure in še sedaj nevem zakaj se gre.
Lp!
- spremenil: rustypac ()
kihc ::
Ta slikca ki si jo dal semle je čisto brezveze. Zgoogli si instruction set za mips in poišči kako je sestavljen ukaz.
x
kihc ::
Pogledaš operacijsko kodo, ki je za mips prvih 6 bitov. Recimo pri tvojem prvem primeru gre za ukaz addi. Najdeš ga na strani 46 v tukaj.
x
rustypac ::
To vem, zanima me kako pridem do tega da je 001000 ADDI, moram iti gledat ukaz za ukazom?
kihc ::
Ja, nekako ga moraš najdit. Lahko pa konvertaš v hex in potem gledaš tukaj, je malo bol pregledno.
x
Zgodovina sprememb…
- spremenil: kihc ()
rustypac ::
Aha, hvala. Bi mi lahko še prosim razložil to?
ADD rt, ra, tb oz.:
ADD r1, r2, r3
kar se zakodira kot:
0 1 1 0 0 1 0 1 0 0 1 1
ADD rt, ra, tb oz.:
ADD r1, r2, r3
kar se zakodira kot:
0 1 1 0 0 1 0 1 0 0 1 1
kihc ::
ADD r1, r2, r3
format ukaza je R, ki zgleda takole:
| op. koda | rs | rt | rd | shamt | funct |
op. koda (pogledaš v tabelo za add) => 000000
rs (prvi operand, r2) => 00010
rt (drugi operand, r3) => 00011
rd (ponorni reg, r1) => 00001
shamt (pri tem ukazu nima vloge, lahko daš recimo ničle) => 00000
funct (pogledaš v tabelo za add) => 100000
Če to zložiš skupaj: 000000 00010 00011 00001 00000 100000
format ukaza je R, ki zgleda takole:
| op. koda | rs | rt | rd | shamt | funct |
op. koda (pogledaš v tabelo za add) => 000000
rs (prvi operand, r2) => 00010
rt (drugi operand, r3) => 00011
rd (ponorni reg, r1) => 00001
shamt (pri tem ukazu nima vloge, lahko daš recimo ničle) => 00000
funct (pogledaš v tabelo za add) => 100000
Če to zložiš skupaj: 000000 00010 00011 00001 00000 100000
x
boogie_xlr ::
Slikca je pa od tukaj. Gre se za namišljen RISC procesor(in torej krajše 12-bitne namišljene(zato google ni obrodil sadov) ukaze za lažje razumevanje) in če bi dobro prebral navodila, bi takoj vedel, kaj in kako.
eXoo ::
aha, potem bi ukaz ADD r5 r3 r2 zakodiral kot : 011101011010 ?
Meni še zdaj ni jasno naslednje :
dekodirajte ukaz (ugotovite, kaj prišteje kateremu registru (številka registra) in kam gre rezultat):
se pravi.
ADDI rs rt immediate
001000 00101 00010 0000000000001101
rt = rs + immediate ... se pravi da je to 00101 + 000000000001101 ? in potem naj bi dobil rt ki je 00010 ? al kaj je to neka fora ?
Meni še zdaj ni jasno naslednje :
dekodirajte ukaz (ugotovite, kaj prišteje kateremu registru (številka registra) in kam gre rezultat):
se pravi.
ADDI rs rt immediate
001000 00101 00010 0000000000001101
rt = rs + immediate ... se pravi da je to 00101 + 000000000001101 ? in potem naj bi dobil rt ki je 00010 ? al kaj je to neka fora ?
kihc ::
Zakodiral si prav.
Pri drugem delu pa pomeni da se ti v register 00010 (r2) shrani vrednost registra 00101 (r5) + konstanta 1101 (desetiško 13).
torej ukaz je ubistvu addi r2, r5, #13.
Pri drugem delu pa pomeni da se ti v register 00010 (r2) shrani vrednost registra 00101 (r5) + konstanta 1101 (desetiško 13).
torej ukaz je ubistvu addi r2, r5, #13.
x
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [C++] Prehod na Windows FormsOddelek: Programiranje | 956 (920) | jizzer |
» | Nekaj splošnih vprašanj s področja HWOddelek: Strojna oprema | 1801 (1562) | P1P1 |
» | Iskanje podvojenih zaporedijOddelek: Programiranje | 1850 (1630) | Gundolf |
» | Kako deluje strojna koda?Oddelek: Programiranje | 2200 (1660) | Zheegec |
» | x86-64 vs IA-64Oddelek: Strojna oprema | 1734 (1547) | hatch |