Skoči na vsebino

Sprotne naloge 4

NALOGA 1.

Napišite zaporedje ukazov v zbirniku za procesor ARM, ki zamenja vrednosti 32-bitnih spremenljivk STEV1 in STEV2. Nalogo rešite s posrednim naslavljanjem preko registra R0.

A. - 7 ukazov

ADR R0,STEV1
LDR R1,[R0]

ADR R0,STEV2
LDR R2,[R0]

STR R1,[R0]
ADR R0,STEV1
STR R2,[R0]

B. - 6 ukazov

ADR R3,STEV1
LDR R1,[R3]

ADR R4,[STEV2]
LDR R2,[R4]

STR R1,[R4]
STR R2,[R3]

C. - 5 ukazov

ADR R0,STEV1
LDR R1,[R0]

LDR R2,[R0,#4]
STR R1,[R0,#4]
STR R2,[R0]

NALOGA 2.

Rezervirajte prostor za tabelo z oznako TABELA, v kateri je 5 8-bitnih vrednosti. Nato napišite zaporedje ukazov v zbirniku za ARM, ki v vse bajte tabele zapiše vrednost 0xFF. Nalogo rešite s posrednim naslavljanjem preko registra R0 in uporabo takojšnjega odmika. Uporabite le ukaze za nalaganje konstant v registre in ukaze za shranjevanje vrednosti registrov v pomnilnik.

TABELA:     .SPACE 5
__start:
            MOV R1,#0xFF
            ADR R0,TABELA

            STRB R1,[R0]
            STRB R1,[R0,#1]
            STRB R1,[R0,#2]
            STRB R1,[R0,#3]
            STRB R1,[R0,#4]

NALOGA 3.

3.Rezervirajte prostor za tabelo z oznako TABELA, v kateri je 6 8-bitnih vrednosti. Nato napišite zaporedje ukazov v zbirniku za ARM, ki najprej v zaporedne bajte tabele zapiše števila od 1 do 6, nato pa zamenja vrstni red elementov tabele tako, da so po zamenjavi vrstnega reda števila razporejena v obratnem vrstnem redu kot na začetku. Nalogo rešite s posrednim naslavljanjem s takojšnjim odmikom preko registra R0.

TABELA      .SPACE 6
__start:
            ADR R0,TABELA
            MOV R1,#1
            STRB R1,[R0]
            MOV R1,#2
            STRB R1,[R0,#1]
            MOV R1,#3
            STRB R1,[R0,#2]
            MOV R1,#4
            STRB R1,[R0,#3]
            MOV R1,#5
            STRB R1,[R0,#4]
            MOV R1,#6
            STRB R1,[R0,#5]


            LDRB R1,[R0]
            LDRB R2,[R0,#5]
            STRB R1,[R0,#5]
            STRB R2,[R0]


            LDRB R1,[R0,#1]
            LDRB R2,[R0,#4]
            STRB R1,[R0,#4]
            STRB R2,[R0,#1]


            LDRB R1,[R0,#2]
            LDRB R2,[R0,#3]
            STRB R1,[R0,#3]
            STRB R2,[R0,#2]

NALOGA 4.

4.Napišite zaporedje ukazov v zbirniku za procesor ARM, ki 32-bitno spremenljivko STEV1, ki je v pomnilniku shranjena po pravilu tankega konca, prepiše v STEV2, pri čemer naj bo STEV2 v pomnilniku shranjena po pravilu debelega konca. Uporabite posredno naslavljanje s takojšnjim odmikom preko registrov R0 in R1.

STEV1:      .WORD 0xAABBCCDD
STEV2:      .WORD 0x00000000
__start:
            ADR R0,STEV1
            ADR R1,STEV2
            LDR R3,[R0,#0]
            STR R3, [R1,#7]
            LDR R3,[R0,#1]
            STR R3, [R1,#6]
            LDR R3,[R0,#2]
            STR R3, [R1,#5]
            LDR R3,[R0,#3]
            STR R3, [R1,#4]

Zadnja posodobitev: February 16, 2022