====== Vývojové prostředí MipsIt ====== Tento program budeme používat pro psaní vlastního programu v asembleru a následné generování výstupního souboru pro simulátor Mips, MipsPipeS a MipsPipeXL (dnes budeme používat jenom simulátor Mips). V nabídce Applications -> Development vybereme MipsIt Applications -> Development vybereme MipsIt-MIPS Případně z příkazové řádky /opt/wine/bin/wine /opt/mipsit/bin/MipsIt.exe /opt/wine/bin/wine /opt/mipsit/bin/Mips.exe === 1. Vytvoření nového projektu === Úvodní obrazovka po spuštění programu: {{.:01mipsit.png?400|}} \\ \\ Postupujeme v těchto krocích: File -> New -> karta Project,\\ kde vybereme Assembler, vyplníme jméno vytvářeného projektu a zvolíme umístění \\ Dále pak: File -> New -> karta File,\\ kde vybereme Assembler, vyplníme jméno souboru a zkontrolujeme zda máme zaškrtnuto "Add to project" \\ === 2. Psaní vlastního programu === Do nově otevřeného okna (s příponou *.s) pak píšeme vlastní program: \\ {{.:02mipsit.png?400|}} \\ \\ K tomuto účelu můžeme využít připravenou šablonu:\\ #define t0 $8 #define t1 $9 #define t2 $10 #define s0 $16 #define s1 $17 #define s2 $18 .globl start .set noat .ent start start: // Zde je místo pro Váš vlastní kód... nop .end start \\ \\ Pro ukázku si můžete zkusit napstat krátký program, který sečte dvě čísla uložená v registrech s0 a s1, a výsledek uloží do registru s2. addi s0, $0, 0x15 addi s1, $0, 0x45 add s2, s0, s1 \\ Klíčová slova .globl, .data, .text, .word jsou pseudoinstrukce překladače assembleru. Podrobný popis lze nalézt v dokumentaci ([[http://sourceware.org/binutils/docs/as/index.html|GNU Assembler Manual]]). === 3. Kompilace === Projekt přeložíme výběrem v menu: Build -> Build xx, kde xx je jméno Vašeho projektu. Alternativou je klávesa F7. Vygenerují se tři soubory s příponou *.o, *.out a *.sreg umístěné v podadresáři Objects aktuálního pracovního adresáře projektu. Při správném postupu by měla být obrazovka programu (výpis v okně "Output") nasledující: \\ {{.:03mipsit.png?400|}} \\ \\ Důležitá poznámka: Nikde v cestě nesmí být mezera. Pokud nefunguje překlad projektu je zapotřebí zkontrolovat cestu k projektu (a/nebo také: File -> Options -> karta Directories, a zde cesty pro: Executable files, Include files a Library files. \\ \\ ==== Simulační prostředí Mips ==== Tento program budeme používat pro simulaci vykonávání napsaného programu - sledování (krokování) vykonávání programu a ověření jeho funkčnosti. === 1. Otevření souboru pro simulaci a příprava === Úvodní obrazovka po spuštění programu: {{.:01_mips.png?400|}} \\ \\ Soubor vygenerovaný programem MipsIt (s příponou *.srec nebo *.out) načteme cez: File -> Open. Dále pak zobrazíme pracovní registry procesoru (View -> Register) a paměť programu (View -> Memory). === 2. Simulace === Po vykonání výše uvedeného postupu a odkrokování programu (Cpu -> Step nebo klikáním na ikonu {{.:step.png?18|}}) dostaneme: {{.:03_mips.png?804|}} \\ Upozornění: Před opakovaným načtením souboru *.out nebo *.sreg je zapotřebí nejdřív zresetovat procesor: Cpu -> Reset. Po každém zresetováni procesoru je zapotřebí soubor *.out nebo *.sreg načíst znovu. Okno pro vykreslování paměti (to žluté) má problémy s překreslováním - pokud se obsah paměti modifikuje instrukcemi sw nemusí být zápis vidět. Postačí jej na chvíli překrýt jiným oknem. \\ === 3. Opětovné načtení kódu do spuštěného simulátoru === Pokud je již některý ze simulátorů Mips.exe, MipsPipeS.exe nebo MipsPipeXL.exe spuštěný, lze kód do simulátoru načíst z prostředí MipsIT.exe aktivací položky Build -> Upload -> To Simulator (F5) Volba zároveň provede inicializaci CPU do počátečního stavu. === 4. Download === {{.:mips_v1.3.zip|mips_v1.3.zip}} - zabalená instalace simulátoru MipsIt.