Stic L2E
Programme 1:
AREA Program, CODE, READONLY
programme.
ENTRY
Main
LDRB R1, Value
R1=0x00000023
STR R1, Result
Result.
Value
Result
SWI 0x11
DCW 0xC123
ALIGN
DCW 0
END
; interruption de programme.
; allocation dans la mmoire dune valeur Value de deux
Octets Value=0XC123
; permet daligner l@ au dbut de la case mmoire.
; Result cod sur deux Byte initialis 0.
Programme 2:
AREA Program, CODE, READONLY
ENTRY
Main
LDR R1, Value
MVN R1, R1
STR R1, Result
SWI 0x11
Value
Result
DCD 0xC123
ALIGN
DCD 0
END
Rle du programme : permet stocker dans la mmoire le complment dune valeur donne.
Programme 3:
AREA Program, CODE, READONLY
ENTRY
Main
Value1
Value2
Result
; R10x37E3C123.
; indique R20x367402AA
Programme 4:
AREA Program, CODE, READONLY
ENTRY
Main
LDR R0, =Value1
R1 0x37E3C123.
ADD R0, R0,#0x4
Value1
Value2
LDR R0=Result
; Result=0x6E57C3CD.
SWI 0x11
DCD 0x37E3C123
ALIGN
DCD 0x367402AA
Result
ALIGN
DCW 0
END
Programme 5:
AREA Program, CODE, READONLY
ENTRY
Main
LDR R1, Value
MOV R1, R1, LSL#0x1
SWI 0x11
Value
Result
DCD 0x4242
ALIGN
DCD 0
END
Programme 6:
AREA Program, CODE, READONLY
ENTRY
Main
LDR R1, Value
; R1=0x0000005F
; R2=0x0000000F
R3 0x00000005.
MOV R3, R3, LSL#0x8
SWI 0x11
Value
Mask
Result
DCB 0x5F
ALIGN
DCW 0x000F
ALIGN
DCD 0
END
Rle du programme : Ce programme permet dinsrer un bit 0 au milieu dun nombre donn.
Programme 7:
AREA Program, CODE, READONLY
ENTRY
Main
LDR R1, Value1
; R10x12345678
; R20x87654321
CMP, R1, R2
BHI Done
DONE
Valeur de R1 : Result87654321
Value1
SWI 0x11
DCD 0x12345678
Value2
Result
ALIGN
DCD 0x87654321
ALIGN
DCW 0
END
Programme 8:
AREA Program, CODE, READONLY
ENTRY
Main
LDR R0, =Value1
; R0=@Result =0x8040
Ladressage indirect.
STR R6, [R0,#4]
Ladressage indirect.
Value1
SWI 0x11
DCD 0x12A2E640, 0XF2100123
Value2
Result
DCD 0
END
Rle du programme : Ce programme permet de faire laddition de deux nombres cods sur
64bits en enregistrant le rsultat dans la mmoire.
Programme 9:
AREA Program, CODE, READONLY
ENTRY
Main
LDR R0, =DataTable
DateTable.
LDR R1, Value
; R1=00000005
; R0=R0+R1 =0x0000803C
;en dcimal R2120
; R3 prend la valeur de ladresse de rsultat
SWI 0x11
AREA DataTable, Data
DCD 1
DCD 1
DCD 2
DCD 6
DCD 24
DCD 120
DCD 720
DCD 5040
Value
Result
DCB 0x5
ALIGN
DCW 0
END
Programme 10:
AREA Program, CODE, READONLY
ENTRY
Main
LDR R0, =Data1
;Ro=0x802C
; initialisation R1=0
;R2=0x3
Loop
;R3[0x802C]=0x2040
ADD R1, R1, R3
;R1=R3+R1=0x2040
ADD R0, R0, #+4 ;R0 0x802C+#0x4=0x8030
SUBS R2, R2, #0x1 ; subdivision avec le changement de CPSR
R2=0x2
BNE LOOP
;brunch vers loop si positive
! ces instructions vont tre excutes jusqu le contenue de
R2 sannule jusqu la fin du tableau.
LDR R3, [R0]
STR R1, Result ; la somme sera enregistr dans result dans la mmoire.
SWI 0x11
AREA Data1, Data
Table
DCW 0x2040
ALIGN
DCW 0x1C22
ALIGN
DCW 0x0242
ALIGN
TablEnd
DCD 0
AREA Data2, DATA
Length
DCW (TablEnd-Table)/4
tableau
Result
ALIGN
DCW 0
END
Rle du programme :Ce programme permet de faire la somme des cases de tableau.
Programme11:
AREA Program, CODE, READONLY
ENTRY
Main
LDR R0, =Data1
; R10 , R1 xor R1
CMP R2,#0
; comparer R2 avec 0
BEQ Done
MOV R1, R3
; R1R3
Loop
Looptest
Done
; Resultla valeurs de R1
SWI 0x11
AREA Data1, Data ; Dclaration dun tableau de donnes
Table
DCW 0xA152
ALIGN
DCW 0x7F61
ALIGN
DCW 0XF123
ALIGN
DCW 0X8000
ALIGN
TablEnd
Length
; Fin du tableau
; Dclaration dune nouvelle Area contenant Le
nombre de rptition de la boucle
DCW (TablEnd-Table)/4
DCD 0
Tableau.
ALIGN
Result
DCW 0
END
Programme1 :
AREA Program, CODE, READONLY
ENTRY
Main
LDR R0, Value1
LDR R1, Value2
LDR R2, Value3
LDR R3, Value4
MOV R0,R0,LSL #0x12
MOV R1,R1,LSL #0x8
MOV R2,R2,LSL #0x4
ADD R0,R0,R1
ADD R0,R0,R2
ADD R0,R0,R3
ADD R0,R0,R4
SWI 0x11
Value1
DCB 0x0C
ALIGN
Value2
DCB 0x02
ALIGN
Value3
DCB 0x06
ALIGN
Value4
DCB 0x01
ALIGN
Result
DCW 0
END
Programme2 :
AREA Program, CODE, READONLY
ENTRY
LDR R1, Value1
LDR R2, Value2
LDR R3, Value3
CMP R1,R2
BLS Done
MOV R1,R2
Done
Done1
Value1
CMP R1,R3
BLS Done1
MOV R1,R3
STR R1, Result
SWI 0x11
DCD 0x91258465
Main
Value2
Value3
Result
ALIGN
DCD 0x102C2056
ALIGN
DCD 0x70409254
Result
DCD 0
END
Programme3 :
AREA Program, CODE, READONLY
ENTRY
LDR R6, Length
LDR R0,=Data
EOR R4,R4,R4
Main1
LDR R1,[R0]
LDR R2, V1
EOR R3,R3,R3
Done
MOVS R1,R1, LSL #0x1
BCC Done1
ADD R3,R3,#+1
Done1
SUBS R2,R2,#0x1
BNE Done
CMP R3,R4
BHI Done3
Done2
ADD R0,R0,#0+4
SUBS R6,R6,#0x1
BNE Main1
BEQ Done4
Done3
MOV R4,R3
LDR R5,[R0]
B Done2
Done4
STR R5,MAX
SWI 0x11
Length DCD 5
Area Data, Data
START
Value1
DCD 0x205A15E3
ALIGN
DCD 0x256C8700
ALIGN
DCD 0x2954668F2
ALIGN
DCD 0x29856779
ALIGN
DCD 0x9147592A
ALIGN
DCD 0x20
Main
MAX
ALIGN
DCD 0
END
Programme4 :
AREA Program, CODE, READONLY
ENTRY
LDR R0, Value
LDR R1,=Data1
LDR R3, OCC
EOR R4,R4,R4
COM
LDR R2,[R1]
CMP R3,R2
BNE ADDO
ADD R4,R4,#+1
ADDO
SUBS R0,R0,#0x1
BNE COMPARE
BEQ stop
COMPARE
ADD R1,R1 ,#+4
B COM
Stop
CMP R4,#0x0
BNE DIR
STR R3, TABF
DIR
TAB
STR R4,Nb_occurence
SWI 0x11
Area Data1,Data
DCD 0x16
ALIGN
DCD 0x16
ALIGN
DCD 0x16
ALIGN
DCD 0x16
ALIGN
DCD 0x16
ALIGN
DCD 0x16
ALIGN
TABF
DCD 0
Value
DCW (TABF-TAB)/4
ALIGN
OCC
DCD 0x16
ALIGN
Nb_occurence DCD 0
END
Main