Forum » Programiranje » [zbirnik -assembler?] naloga CISC
[zbirnik -assembler?] naloga CISC
Camilo ::
OJ!
Rabil bi pomoc pri dveh nalogah:
1.naloga:Program,ki na sklad shrani vrednosti od 1 do n.Program naj nato na lokacijo 60 zapise vsoto tistih stevil, ki so vecja od x(x prebere iz pomnilniske lokacije 55) .. Koda programa:
LOCO 1
STOD 49 ;vrednost 1 iz akomulatorja shranimo na pomnilnisko lokacijo 49
LOCO 12 ;v akomulator shranimo vrednost 12 (n=12)
PUSH ;in jo shranimo na sklad
STOD 51 ;n-to vrednost shranimo na pomnilniski naslov 51
;zanka za vpisovanje vrednosti od 12 do 1 na sklad
zanka SUBD 49 ;za odstevanje
JZER END ;ko je vrednost enaka 0, se zanka zakljuci
PUSH ;za shranjevanje na skladu
END STOD 50 ; vrednosti od 12 do 0 se vpisujejo na pomnilnisko lokacijo 50
JNZE zanka ;zanka se ponavlja, dokler je vrednost iz akomulatorja razlicna od 0
LOCO 5 ; x=5 - vrednost s pomocjo katere bomo preverjali ali so stevila na skladu vecja od 5
STOD 55 ; vrednost 5 shranimo na pomnilnisko lokacijo 55
POGOJ POP ;vzamemo stevila iz sklada
SUBD 55 ;nalozimo v akumulator tisto naso mejno vrednost to je vrednost x
STOD 56
JNEG POGOJ
JNZE PRISTEJ
PRISTEJ LODD 56
ADDD 60
STOD 60
JUMP POGOJ
ok, napaka pri tej nalogi je ta, da program ne neha jemati vrednosti iz sklada, ko je ze ta prazen.Pa ne vem kako bi to napisal v program. PROSIM ZA POMOC!!!!
2.naloga: Program obdela podatke v polju.Zacetek in dolzina polja naj pota podana na skladu.Program naj poveca le tista st, ki so manjsa od neke mejne vrednosti(min).Podatek naj se nahaja na lokaciji 80, podatek min pa na lokaciji 81....KODA:
loco 5; povecamo stevila za 5
stod 80
loco 10;mejna vrednost
stod 81
loco 6;zacetna vrednost polja
push
loco 8;dolzina polja
push
;polje stevil
loco 6
stod 50
loco 7
stod 51
loco 8
stod 52
loco 9
stod 53
loco 10
stod 54
loco 11
stod 55
loco 12
stod 56
loco 13
stod 57
Kako pa naj pri tej nalogi napisem, da naj program prebere polje stevil, in poveca stevila, ki so manjsa od 10 za vrednost 5 ????
LPO BI PROSIL ZA KAKRSNO KOLI POMOC!!!!
Hvala!
Rabil bi pomoc pri dveh nalogah:
1.naloga:Program,ki na sklad shrani vrednosti od 1 do n.Program naj nato na lokacijo 60 zapise vsoto tistih stevil, ki so vecja od x(x prebere iz pomnilniske lokacije 55) .. Koda programa:
LOCO 1
STOD 49 ;vrednost 1 iz akomulatorja shranimo na pomnilnisko lokacijo 49
LOCO 12 ;v akomulator shranimo vrednost 12 (n=12)
PUSH ;in jo shranimo na sklad
STOD 51 ;n-to vrednost shranimo na pomnilniski naslov 51
;zanka za vpisovanje vrednosti od 12 do 1 na sklad
zanka SUBD 49 ;za odstevanje
JZER END ;ko je vrednost enaka 0, se zanka zakljuci
PUSH ;za shranjevanje na skladu
END STOD 50 ; vrednosti od 12 do 0 se vpisujejo na pomnilnisko lokacijo 50
JNZE zanka ;zanka se ponavlja, dokler je vrednost iz akomulatorja razlicna od 0
LOCO 5 ; x=5 - vrednost s pomocjo katere bomo preverjali ali so stevila na skladu vecja od 5
STOD 55 ; vrednost 5 shranimo na pomnilnisko lokacijo 55
POGOJ POP ;vzamemo stevila iz sklada
SUBD 55 ;nalozimo v akumulator tisto naso mejno vrednost to je vrednost x
STOD 56
JNEG POGOJ
JNZE PRISTEJ
PRISTEJ LODD 56
ADDD 60
STOD 60
JUMP POGOJ
ok, napaka pri tej nalogi je ta, da program ne neha jemati vrednosti iz sklada, ko je ze ta prazen.Pa ne vem kako bi to napisal v program. PROSIM ZA POMOC!!!!
2.naloga: Program obdela podatke v polju.Zacetek in dolzina polja naj pota podana na skladu.Program naj poveca le tista st, ki so manjsa od neke mejne vrednosti(min).Podatek naj se nahaja na lokaciji 80, podatek min pa na lokaciji 81....KODA:
loco 5; povecamo stevila za 5
stod 80
loco 10;mejna vrednost
stod 81
loco 6;zacetna vrednost polja
push
loco 8;dolzina polja
push
;polje stevil
loco 6
stod 50
loco 7
stod 51
loco 8
stod 52
loco 9
stod 53
loco 10
stod 54
loco 11
stod 55
loco 12
stod 56
loco 13
stod 57
Kako pa naj pri tej nalogi napisem, da naj program prebere polje stevil, in poveca stevila, ki so manjsa od 10 za vrednost 5 ????
LPO BI PROSIL ZA KAKRSNO KOLI POMOC!!!!
Hvala!
Tutankhamun ::
Za prvo nalogo, vrjetno veš kam kaže pointer v skladu. Veš na katerem naslovu je začetek sklada. Pol pa samo preverjaš a kaže na začetek sklada al pa ne.
Al pa si nared še eno spremenljivko, ki jo povečuj k daš Push v sklad, in pa zmanjšaj ko daš pop. In preverjaš, če je spremenljivka 0 ne smeš dat pop sklad.
Druga naloga: kako povečaš števila. Ko najprej eno prebereš, odšteješ od nje vrednost 10. Če pride število manjše od 0 pač povečaš in shranš nazaj.
Kako pa bereš, tako da v indexni register daš naslov prve spremenljivke iz sklada. Potem pa samo povečuješ indexni register po ena in se sprehajaš po polju gor. Če pa zmanjšuješ indexni register pa se sprehajaš po polju dol.
Ker procesor pa je to sploh.
Al pa si nared še eno spremenljivko, ki jo povečuj k daš Push v sklad, in pa zmanjšaj ko daš pop. In preverjaš, če je spremenljivka 0 ne smeš dat pop sklad.
Druga naloga: kako povečaš števila. Ko najprej eno prebereš, odšteješ od nje vrednost 10. Če pride število manjše od 0 pač povečaš in shranš nazaj.
Kako pa bereš, tako da v indexni register daš naslov prve spremenljivke iz sklada. Potem pa samo povečuješ indexni register po ena in se sprehajaš po polju gor. Če pa zmanjšuješ indexni register pa se sprehajaš po polju dol.
Ker procesor pa je to sploh.
AMD Phenom QUAD 9950 Black Edition, 8GB
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [ASM] Pomoč, ne najdem napakeOddelek: Programiranje | 1086 (962) | c0dehunter |
» | asm - vnos stevilk s tipkovniceOddelek: Programiranje | 1264 (1120) | scarymovie |
» | razumevanje programa-pomočOddelek: Programska oprema | 904 (819) | house |
» | [Naloga] Arhitektura CISC -> programiranjeOddelek: Programiranje | 1378 (1217) | Quikee |
» | Zbirnik-programOddelek: Programiranje | 2114 (2020) | Bockor |