This shows you the differences between two versions of the page.
ac-is:lab:lab09 [2021/12/02 09:20] ionut.pascal |
ac-is:lab:lab09 [2023/12/16 19:33] (current) teodor.dicu |
||
---|---|---|---|
Line 11: | Line 11: | ||
* //Decode// - decodificarea instrucțiunii | * //Decode// - decodificarea instrucțiunii | ||
* //Execute// - executarea instrucțiunii | * //Execute// - executarea instrucțiunii | ||
- | * //Write-back// - scrierea rezultatului (dacă este cazul) | + | * //Store// - scrierea rezultatului (dacă este cazul) |
<note tip>Ce trebuie să facă unitatea de comandă atunci când trebuie excutată o instrucțiune aritmetică logică cu doi operanzi? De exemplu ''ADC RA, RB''. | <note tip>Ce trebuie să facă unitatea de comandă atunci când trebuie excutată o instrucțiune aritmetică logică cu doi operanzi? De exemplu ''ADC RA, RB''. | ||
Line 84: | Line 84: | ||
\\ | \\ | ||
- | Instrucțiunile care vor fi implementate în acest laborator se regăsesc în <tabref table1>. Acestea sunt instrucțiuni aritmetice și logice cu doi operanzi ale căror valori sunt în registrele generale și fie pun un rezultat înapoi în registrul destinație, fie nu stochează rezultatul ci doar setează indicatorii de condiție (CMP și TEST). | + | Instrucțiunile care vor fi implementate în acest laborator se regăsesc în tabelul de mai jos. Acestea sunt instrucțiuni aritmetice și logice cu doi operanzi ale căror valori sunt în registrele generale și fie pun un rezultat înapoi în registrul destinație, fie nu stochează rezultatul ci doar setează indicatorii de condiție (CMP și TEST). |
Line 100: | Line 100: | ||
<html><p align="left">Instrucțiuni aritmetice-logice cu doi operanzi</p></html> | <html><p align="left">Instrucțiuni aritmetice-logice cu doi operanzi</p></html> | ||
- | <note important>Pentru **decodificarea** instrucțiunilor din acest laborator trebuie sa identificăm atât grupul instrucțiunilor aritm-logice cu doi operanzi, fără operand imediat și care stochează rezultatul (**RI<sub>0..3</sub> = 0101**) cât și cele care nu stochează rezultatul (**RI<sub>0..3</sub> = 0100**). | + | <note important>Pentru **decodificarea** instrucțiunilor din acest laborator trebuie sa identificăm atât grupul instrucțiunilor aritmetice-logice cu doi operanzi, fără operand imediat și care stochează rezultatul (**RI<sub>0..3</sub> = 0101**) cât și cele care nu stochează rezultatul (**RI<sub>0..3</sub> = 0100**). |
</note> | </note> | ||
Line 135: | Line 135: | ||
Modificați modulul //uc.v// din scheletul de cod al laboratorului, astfel încât să implementați instrucțiunile din tabelul prezentat anterior. Citiți secțiunea de [[.:lab09#implementare|implementare]]. | Modificați modulul //uc.v// din scheletul de cod al laboratorului, astfel încât să implementați instrucțiunile din tabelul prezentat anterior. Citiți secțiunea de [[.:lab09#implementare|implementare]]. | ||
- | - **(4p)** Decodificați instrucțiunea ADD reg<sub>dst</sub> , reg<sub>src</sub>. | + | - **(4p)** Decodificați instrucțiunea ADD reg<sub>dst</sub>, reg<sub>src</sub>. |
- Identificați grupul de instrucțiuni în care se încadrează operația (ADD) și modul de adresare. | - Identificați grupul de instrucțiuni în care se încadrează operația (ADD) și modul de adresare. | ||
- | - Identificați operandul destinație. | + | - Identificați operandul destinație. |
- Transferați conținutul registrului reg<sub>src</sub> în registrul T2 | - Transferați conținutul registrului reg<sub>src</sub> în registrul T2 | ||
- Indicați UAL-ului să execute operația și puneți rezultatul în T1 | - Indicați UAL-ului să execute operația și puneți rezultatul în T1 | ||
- | * Registrul IND trebuie conectat la UAL ca să poată fi setate flagurile în urma execuției operației | + | * Registrul IND trebuie conectat la UAL ca să poată fi setate flagurile în urma execuției operației |
- **(6p)** Decodificați restul instrucțiunilor. | - **(6p)** Decodificați restul instrucțiunilor. | ||
Line 148: | Line 148: | ||
* {{.:lab08:sol:lab9_skel.zip|Schelet de cod}} | * {{.:lab08:sol:lab9_skel.zip|Schelet de cod}} | ||
- | /* * {{.:lab09:sol:lab9_sol.zip|Soluție laborator}} */ | ||
* <html><a class="media mediafile mf_pdf" href="https://ocw.cs.pub.ro/courses/ac-is/lab/lab09?do=export_pdf">PDF laborator</a></html> | * <html><a class="media mediafile mf_pdf" href="https://ocw.cs.pub.ro/courses/ac-is/lab/lab09?do=export_pdf">PDF laborator</a></html> | ||
* {{..:resurse:cheat-sheet.pdf|Cheat-sheet calculator didactic}} | * {{..:resurse:cheat-sheet.pdf|Cheat-sheet calculator didactic}} | ||
* {{..:resurse:ac5.pdf|Arhitectura calculatorului didactic}} | * {{..:resurse:ac5.pdf|Arhitectura calculatorului didactic}} | ||
+ | * {{.:lab09:sol:lab9_sol.zip|Soluție laborator}} | ||
- | <ifauth @user> | + | <ifauth @ac-is> |
---- | ---- | ||
+ | * {{.:lab09:sol:lab9_sol.zip|Soluție laborator}} | ||
* [[ac-is:internal:guidelines|Ghid asistent]] | * [[ac-is:internal:guidelines|Ghid asistent]] | ||
</ifauth> | </ifauth> | ||