Kod źródłowy programu p1

  1. Kod źródłowy programu p1.s wraz z komentarzami opisującymi jego działanie:

.data

TNUM: .word 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25 ; deklaracja tablicy

kom1: .asciiz "Uruchomiono program p1.\n\n" ; komunikat pierwszy wyświetlany na ekranie

kom2: .asciiz "Autorem programu jest Karolina Dembek z grupy I0X3S1\n" ; komunikat drugi wyświetlany na ekranie

kom3: .asciiz "Jesli chcesz zakonczyc prace tej czesci programu, nacisnij dem: " ; komunikat czwarty wyświetlany na ekranie

PrintIntFormat: .asciiz "Numer wykonawcy w dzienniku = %d\n"
; komunikat trzeciy wyświetlany na ekranie

.align 2

text1: .word kom1 ; text1 zawiera adres kom1

text2: .word kom2 ; text2 zawiera adres kom2

text3: .word kom3 ; text1 zawiera adres kom1

PrintIntPar: .word PrintIntFormat ;PrintIntPar zawiera adres PrintIntFormat

PrintIntValue: .space 4

;wczytywanie z klawiatury

buffer: .space 80 ; rezerwuje miejsce na bufor

load: .word 0,buffer,80

.text

addi r14,r0,text1 ; r14 zawiera informację: ciąg znaków text1

trap 5 ; wyświetl zawartość r14,czyli komunikat 1

addi r14,r0,text2 ; r14 zawiera informację: ciąg znaków text2

trap 5 ; wyświetl zawartość r14,czyli komunikat 2

;Wypisanie napisu trzeciego z %d:

addi r20, r0, TNUM ;ustawienie pierwszego elementu tablicy na r20

lw r1, 72 (r20) ;ustawienie wskaznika na 19 element (nr. 19)

sw PrintIntValue, r1 ; i wpisanie jego wartości do r1

addi r14,r0,PrintIntPar ;r14 zawiera informację: ciąg znaków PrintIntPar

trap 5 ;wyświetl zawartość r14, czyli PrintIntFormat

question:

addi r14,r0,text3 ; r14 zawiera informację: ciąg znaków text3

trap 5 ; wyświetl zawartość r14, czyli text3

addi r14,r0,load ; r14 zawiera informację: 80 pustych znaków

trap 3 ; Wczytaj z klawiatury 80 pierwszych znaków do buffer

addi r2,r0,buffer ; przypisuje r2 zawartość buffer

lb r3,(r2) ; ładowanie pierwszego znaku z r2 do r3

checkd:

seqi r4,r3,100 ;czy to d?

beqz r4,question ;jesli nie wroc do question

checke:

addi r2,r2,1 ;zwiększ wskaźnik o 1

lb r3,(r2) ;ładowanie drugiego znaku z r2 do r3

seqi r4,r3,101 ;czy to e?

beqz r4,question ;jeśli nie wróć do question

checkm:

addi r2,r2,1 ;zwiększ wskaźnik o 1

lb r3,(r2) ;ładowanie trzeciego znaku z r2 do r3

seqi r5,r3,109 ;czy to m?

beqz r5,question ;jeśli nie wróć do question

Enter:

addi r2,r2,1 ;zwiększ wskaźnik o 1

lb r3,(r2) ;ładowanie czwartego znaku z r2 do r3

seqi r4,r3,10 ;czy to enter?

beqz r4,question ;jeśli nie wróć do question

Koniec:

trap 0 ;kończy program

.data

kom1: .asciiz "Uruchomiono program p2.\n\n" ; komunikat 1

kom2: .asciiz "Autorem programu jest Karolina Dembek z grupy I0X3S1\n" ; komunikat 2

kom3: .asciiz "Jeśli chcesz zakończyć prace tej części programu, naciśnij dem: " ; komunikat 3

.align 2

text1: .word kom1 ; text1 zawiera adres kom1

text2: .word kom2 ; text2 zawiera adres kom2

text3: .word kom3 ; text3 zawiera adres kom3

buffer: .space 80 ; rezerwuje miejsce na bufor

load: .word 0,buffer,80

.text

addi r14,r0,text1 ;r14 zawiera informację: ciąg znaków text1

trap 5 ;wyświetl zawartość r14

addi r14,r0,text2 ;r14 zawiera informację: ciąg znaków text2

trap 5 ;wyświetl zawartość r14

question:

addi r14,r0,text3 ;r14 zawiera informację: ciąg znaków text3

trap 5 ;wyświetl zawartość r14

addi r14,r0,load ;r14 zawiera informację: 80 pustych znaków

trap 3 ;Wczytaj z klawiatury 80 pierwszych znaków do buffer

addi r2,r0,buffer ;przypisuje r2 zawartość buffer

lb r3,(r2) ;ładowanie pierwszego znaku z r2 do r3

sprawdzajDd:

seqi r4,r3,68 ;czy to D?

seqi r5,r3,100 ;czy to d?

XOR r6,r5,r4 ;sprawdz czy to duze lub czy to male d

beqz r6,question ;jeśli nie jest to ani duże, ani małe d skocz do question

sprawdzajEe:

addi r2,r2,1 ; zwiększ wskaźnik o 1

lb r3,(r2) ; ładowanie drugiego znaku z r2 do r3

seqi r4,r3,69 ;czy to E?

seqi r5,r3,101 ;czy to e?

XOR r6,r5,r4 ;sprawdz czy to duze lub czy to male e

beqz r6,question ;jeśli nie jest to ani duże, ani małe d skocz do question

sprawdzajMm:

addi r2,r2,1 ; zwiększ wskaźnik o 1

lb r3,(r2) ; ładowanie trzeciego znaku z r2 do r3

seqi r4,r3,77 ; czy to M?

seqi r5,r3,109 ; czy to m?

XOR r6,r5,r4 ; sprawdz czy to duze lub czy to male f

beqz r6,question ; jeśli nie jest to ani duże, ani małe f skocz do question

sprawdzaj:

addi r2,r2,1 ; zwiększ wskaźnik o 1

lb r3,(r2) ; ładowanie czwartego znaku z r2 do r3

seqi r4,r3,10 ; czy to Enter?

beqz r4,question ; jeślni nie jest to enter skocz do question

koniec:

trap 0; ; kończy program


Wyszukiwarka

Podobne podstrony:
Kod do Programu i instalacja Time Factory
beta kod pierwszy program
Wyszukiwarka kod źródłowy
rzeczywistosc jako kod zrodlowy umysl jako przegladarka
IPP 22 10 2009 wyk kod zrodlowy stary excel
MID Kod pamięci programów astrasite
Kod programu Puzzle
Frezowanie kod programu
Piŕkny kod Tajemnice mistrzˇw programowania
Digital LC Meter Version 2, kod programu
Programowanie w Unix p1 id 8273 Nieznany
Czysty kod Podręcznik dobrego programisty
12-kod~1, wisisz, wydzial informatyki, studia zaoczne inzynierskie, podstawy programowania, l2

więcej podobnych podstron