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¶
B. - 6 ukazov¶
C. - 5 ukazov¶
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]