Bonsoir,
j'aimerai savoir ce que signifie cette notation PC:=PC(31:28) en allant du fait que PC est Program Counter. en fait ce que je ne comprends pas est le 31:28
merci de répondre
Bonsoir,
j'aimerai savoir ce que signifie cette notation PC:=PC(31:28) en allant du fait que PC est Program Counter. en fait ce que je ne comprends pas est le 31:28
merci de répondre
J'imagine que c'est pour le MIPS.
Par exemple pour le Jump ,on gros c'est pour dire qu'il lit en 28 bits le jump (l'offset est de 26 bits mais il le décale de 2 vu que les opcodes en MIPS valent tous 32 bits).
exactement je tire ceci de l'execution du jump ce que je ne comprends pas d'ailleurs.
j'ai lu que lors de l'execution du jump il y'a ceci qui s'execute: PC=PC(31:28) & IR(25:0) & "00"
pourrais tu s'il te plait m'expliquer ce que ça signifie
Je pense que la doc que tu as est plutôt mauvaise.
Normalement c'est (sur mes 2 doc du MIPS):
Et la c'est plus clair , en gros le PC est égal a PC du bit 28 à 31 || offset || 0².
Code : Sélectionner tout - Visualiser dans une fenêtre à part PC = PC(31..28) || offset || 0²
Donc on gros le PC est égal a l'offset (sauf si y'a modification des bits 28 à 63 du PC).
Mais l'instruction jump lui ne copie que les 31 premiers bits.
Mais si tu veux mon avis tout ça c'est des "détails" , tu devrait codé en MIPS tu comprendrait plus facilement les instructions et leur effet.
c'est justement le truc ici. le but ce n'est pas de programmer en MIPS mais de comprendre ce qui se passe lors de l'execution des instructions. donc c'est exactement devant ces détails que je devrais répondre.
comme puis je faire pour obtenir tes deux docs?
et je ne sais pas pour ta doc mais je pense que quand on fait PC := PC(31:28) & IR(25:0) & "00" c'est en fait pour pouvoir consolider les 32bits qui iront dans le PC et dans ta doc y'a plutôt des || et tu dis que le PC aura toujours l'offset sauf exception. mais l'offset est codé sur 16bits et si le PC doit prendre sa valeur on fera obligatoirement un zero_extend pour l'agrandir sur 32bits
https://www.cs.umd.edu/class/sum2003...all/pc_ir.html
Pour les doc je t'en avais deja passé une celle ci : http://groups.csail.mit.edu/cag/raw/...n_book_Ed2.pdf
L'autre je ne peux pas de la passer , vu que c'est une doc confidentiel ( c'est la doc officiel de la Playstation 2 pour son processeur l'Emotion Engine).
non l'offset est sur 26 bits , ( mais il y'a un decalage de 2 vers la gauche) donc équivalent a 28 bits.
On gros pour le jump (avec une syntaxe C) : PC = PC&0xF0000000 || offset<<2 || (0*0);
Qu'on peut remplacer de manière simplifier PC = PC&0xF0000000 + (offset<<2);
L'assembleur pour moi c'est le truc vraiment pas théorique x)
Partager