Data update
This commit is contained in:
parent
07c7092a52
commit
61b93a2cd1
313 changed files with 6160 additions and 346 deletions
142
Task/Filter/AArch64-Assembly/filter.aarch64
Normal file
142
Task/Filter/AArch64-Assembly/filter.aarch64
Normal file
|
|
@ -0,0 +1,142 @@
|
|||
/* ARM assembly AARCH64 Raspberry PI 3B */
|
||||
/* program filterdes64.s */
|
||||
|
||||
/************************************/
|
||||
/* Constantes */
|
||||
/************************************/
|
||||
/* for this file see task include a file in language AArch64 assembly*/
|
||||
.include "../includeConstantesARM64.inc"
|
||||
|
||||
/************************************/
|
||||
/* Initialized data */
|
||||
/************************************/
|
||||
.data
|
||||
szMessResult: .asciz "Start array : "
|
||||
szMessResultFil: .asciz "Filter array : "
|
||||
szMessResultdest: .asciz "Same array : "
|
||||
szMessStart: .asciz "Program 64 bits start.\n"
|
||||
szCarriageReturn: .asciz "\n"
|
||||
szFiller: .asciz " "
|
||||
.align 4
|
||||
arrayNumber: .quad 1,2,3,4,5,6,7,8,9,10
|
||||
.equ LGARRAY, (. - arrayNumber) / 8
|
||||
/************************************/
|
||||
/* UnInitialized data */
|
||||
/************************************/
|
||||
.bss
|
||||
.align 4
|
||||
arrayNumberFil: .skip 8 * LGARRAY // result array
|
||||
sZoneConv: .skip 24
|
||||
/************************************/
|
||||
/* code section */
|
||||
/************************************/
|
||||
.text
|
||||
.global main
|
||||
main:
|
||||
ldr x0,qAdrszMessStart // display start message
|
||||
bl affichageMess
|
||||
ldr x0,qAdrszMessResult // display message
|
||||
bl affichageMess
|
||||
ldr x5,qAdrarrayNumber // start array address
|
||||
mov x4,#0 // index
|
||||
|
||||
1:
|
||||
ldr x0,[x5,x4,lsl #3] // load a value
|
||||
ldr x1,qAdrsZoneConv
|
||||
bl conversion10 // décimal conversion
|
||||
ldr x0,qAdrsZoneConv
|
||||
bl affichageMess // display value
|
||||
ldr x0,qAdrszFiller
|
||||
bl affichageMess
|
||||
add x4,x4,#1 // increment index
|
||||
cmp x4,#LGARRAY // end array ?
|
||||
blt 1b // no -> loop
|
||||
ldr x0,qAdrszCarriageReturn
|
||||
bl affichageMess
|
||||
|
||||
ldr x6,qAdrarrayNumberFil // adrress result array
|
||||
mov x4,#0 // index
|
||||
mov x3,#0 // index result
|
||||
2:
|
||||
ldr x0,[x5,x4,lsl #3] // load a value
|
||||
tst x0,#1 // odd ?
|
||||
bne 3f
|
||||
str x0,[x6,x3,lsl #3] // no -> store in result array
|
||||
add x3,x3,#1 // and increment result index
|
||||
3:
|
||||
add x4,x4,#1 // increment array index
|
||||
cmp x4,#LGARRAY // end ?
|
||||
blt 2b // no -> loop
|
||||
|
||||
ldr x0,qAdrszMessResultFil
|
||||
bl affichageMess
|
||||
mov x4,#0 // init index
|
||||
|
||||
4: // display filter result array
|
||||
ldr x0,[x6,x4,lsl #3]
|
||||
ldr x1,qAdrsZoneConv
|
||||
bl conversion10
|
||||
ldr x0,qAdrsZoneConv
|
||||
bl affichageMess
|
||||
ldr x0,qAdrszFiller
|
||||
bl affichageMess
|
||||
add x4,x4,#1
|
||||
cmp x4,x3
|
||||
blt 4b
|
||||
ldr x0,qAdrszCarriageReturn
|
||||
bl affichageMess
|
||||
|
||||
// array destruction
|
||||
mov x4,#0 // index
|
||||
mov x3,#0 // index result
|
||||
5:
|
||||
ldr x0,[x5,x4,lsl #3] // load a value
|
||||
tst x0,#1 // odd ?
|
||||
bne 7f
|
||||
cmp x3,x4 // index = no store
|
||||
beq 6f
|
||||
str x0,[x5,x3,lsl #3] // store in free item on same array
|
||||
6:
|
||||
add x3,x3,#1 // and increment result index
|
||||
7:
|
||||
add x4,x4,#1 // increment array index
|
||||
cmp x4,#LGARRAY // end ?
|
||||
blt 5b // no -> loop
|
||||
|
||||
ldr x0,qAdrszMessResultdest
|
||||
bl affichageMess
|
||||
mov x4,#0 // init index
|
||||
|
||||
8: // display array
|
||||
ldr x0,[x5,x4,lsl #3]
|
||||
ldr x1,qAdrsZoneConv
|
||||
bl conversion10
|
||||
ldr x0,qAdrsZoneConv
|
||||
bl affichageMess
|
||||
ldr x0,qAdrszFiller
|
||||
bl affichageMess
|
||||
add x4,x4,#1
|
||||
cmp x4,x3
|
||||
blt 8b
|
||||
ldr x0,qAdrszCarriageReturn
|
||||
bl affichageMess
|
||||
|
||||
|
||||
100: // standard end of the program
|
||||
mov x0, #0 // return code
|
||||
mov x8, #EXIT // request to exit program
|
||||
svc 0 // perform the system call
|
||||
qAdrszCarriageReturn: .quad szCarriageReturn
|
||||
qAdrszMessStart: .quad szMessStart
|
||||
qAdrarrayNumber: .quad arrayNumber
|
||||
qAdrszMessResult: .quad szMessResult
|
||||
qAdrarrayNumberFil: .quad arrayNumberFil
|
||||
qAdrszMessResultFil: .quad szMessResultFil
|
||||
qAdrszMessResultdest: .quad szMessResultdest
|
||||
qAdrsZoneConv: .quad sZoneConv
|
||||
qAdrszFiller: .quad szFiller
|
||||
/***************************************************/
|
||||
/* ROUTINES INCLUDE */
|
||||
/***************************************************/
|
||||
/* for this file see task include a file in language AArch64 assembly*/
|
||||
.include "../includeARM64.inc"
|
||||
144
Task/Filter/ARM-Assembly/filter.arm
Normal file
144
Task/Filter/ARM-Assembly/filter.arm
Normal file
|
|
@ -0,0 +1,144 @@
|
|||
/* ARM assembly Raspberry PI */
|
||||
/* program filterdes.s */
|
||||
|
||||
/************************************/
|
||||
/* Constantes */
|
||||
/************************************/
|
||||
/* for constantes see task include a file in arm assembly */
|
||||
.include "../constantes.inc"
|
||||
|
||||
/************************************/
|
||||
/* Initialized data */
|
||||
/************************************/
|
||||
.data
|
||||
szMessResult: .asciz "Start array : "
|
||||
szMessResultFil: .asciz "Filter array : "
|
||||
szMessResultdest: .asciz "Same array : "
|
||||
szMessStart: .asciz "Program 32 bits start.\n"
|
||||
szCarriageReturn: .asciz "\n"
|
||||
.align 4
|
||||
arrayNumber: .int 1,2,3,4,5,6,7,8,9,10
|
||||
.equ LGARRAY, (. - arrayNumber) / 4
|
||||
/************************************/
|
||||
/* UnInitialized data */
|
||||
/************************************/
|
||||
.bss
|
||||
.align 4
|
||||
arrayNumberFil: .skip 4 * LGARRAY @ result array
|
||||
sZoneConv: .skip 24
|
||||
/************************************/
|
||||
/* code section */
|
||||
/************************************/
|
||||
.text
|
||||
.global main
|
||||
main:
|
||||
ldr r0,iAdrszMessStart @ display start message
|
||||
bl affichageMess
|
||||
ldr r0,iAdrszMessResult @ display message
|
||||
bl affichageMess
|
||||
ldr r5,iAdrarrayNumber @ start array address
|
||||
mov r4,#0 @ index
|
||||
|
||||
1:
|
||||
ldr r0,[r5,r4,lsl #2] @ load a value
|
||||
ldr r1,iAdrsZoneConv
|
||||
bl conversion10 @ décimal conversion
|
||||
add r1,r1,r0 @ compute address end number
|
||||
add r1,#2 @ add two characters
|
||||
mov r0,#0 @ for limit the size of display number
|
||||
strb r0,[r1] @ to store a final zero
|
||||
ldr r0,iAdrsZoneConv
|
||||
bl affichageMess @ display value
|
||||
add r4,r4,#1 @ increment index
|
||||
cmp r4,#LGARRAY @ end array ?
|
||||
blt 1b @ no -> loop
|
||||
ldr r0,iAdrszCarriageReturn
|
||||
bl affichageMess
|
||||
|
||||
ldr r6,iAdrarrayNumberFil @ adrress result array
|
||||
mov r4,#0 @ index
|
||||
mov r3,#0 @ index result
|
||||
2:
|
||||
ldr r0,[r5,r4,lsl #2] @ load a value
|
||||
tst r0,#1 @ odd ?
|
||||
streq r0,[r6,r3,lsl #2] @ no -> store in result array
|
||||
addeq r3,r3,#1 @ and increment result index
|
||||
add r4,r4,#1 @ increment array index
|
||||
cmp r4,#LGARRAY @ end ?
|
||||
blt 2b @ no -> loop
|
||||
|
||||
ldr r0,iAdrszMessResultFil
|
||||
bl affichageMess
|
||||
mov r4,#0 @ init index
|
||||
|
||||
3: @ display filter result array
|
||||
ldr r0,[r6,r4,lsl #2]
|
||||
ldr r1,iAdrsZoneConv
|
||||
bl conversion10
|
||||
add r1,r1,r0
|
||||
add r1,#2
|
||||
mov r0,#0
|
||||
strb r0,[r1]
|
||||
ldr r0,iAdrsZoneConv
|
||||
bl affichageMess
|
||||
add r4,r4,#1
|
||||
cmp r4,r3
|
||||
blt 3b
|
||||
ldr r0,iAdrszCarriageReturn
|
||||
bl affichageMess
|
||||
|
||||
@ array destruction
|
||||
mov r4,#0 @ index
|
||||
mov r3,#0 @ index result
|
||||
4:
|
||||
ldr r0,[r5,r4,lsl #2] @ load a value
|
||||
tst r0,#1 @ even ?
|
||||
bne 6f
|
||||
cmp r3,r4 @ index = no store
|
||||
beq 5f
|
||||
str r0,[r5,r3,lsl #2] @ store in free item on same array
|
||||
5:
|
||||
add r3,r3,#1 @ and increment result index
|
||||
6:
|
||||
add r4,r4,#1 @ increment array index
|
||||
cmp r4,#LGARRAY @ end ?
|
||||
blt 4b @ no -> loop
|
||||
|
||||
ldr r0,iAdrszMessResultdest
|
||||
bl affichageMess
|
||||
mov r4,#0 @ init index
|
||||
|
||||
7: @ display array
|
||||
ldr r0,[r5,r4,lsl #2]
|
||||
ldr r1,iAdrsZoneConv
|
||||
bl conversion10
|
||||
add r1,r1,r0
|
||||
add r1,#2
|
||||
mov r0,#0
|
||||
strb r0,[r1]
|
||||
ldr r0,iAdrsZoneConv
|
||||
bl affichageMess
|
||||
add r4,r4,#1
|
||||
cmp r4,r3
|
||||
blt 7b
|
||||
ldr r0,iAdrszCarriageReturn
|
||||
bl affichageMess
|
||||
|
||||
|
||||
100: @ standard end of the program
|
||||
mov r0, #0 @ return code
|
||||
mov r7, #EXIT @ request to exit program
|
||||
svc 0 @ perform the system call
|
||||
iAdrszCarriageReturn: .int szCarriageReturn
|
||||
iAdrszMessStart: .int szMessStart
|
||||
iAdrarrayNumber: .int arrayNumber
|
||||
iAdrszMessResult: .int szMessResult
|
||||
iAdrarrayNumberFil: .int arrayNumberFil
|
||||
iAdrszMessResultFil: .int szMessResultFil
|
||||
iAdrszMessResultdest: .int szMessResultdest
|
||||
iAdrsZoneConv: .int sZoneConv
|
||||
/***************************************************/
|
||||
/* ROUTINES INCLUDE */
|
||||
/***************************************************/
|
||||
/* for this file see task include a file in language ARM assembly*/
|
||||
.include "../affichage.inc"
|
||||
Loading…
Add table
Add a link
Reference in a new issue