Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
100
Task/Van-Eck-sequence/AArch64-Assembly/van-eck-sequence.aarch64
Normal file
100
Task/Van-Eck-sequence/AArch64-Assembly/van-eck-sequence.aarch64
Normal file
|
|
@ -0,0 +1,100 @@
|
|||
/* ARM assembly AARCH64 Raspberry PI 3B */
|
||||
/* program vanEckSerie64.s */
|
||||
|
||||
/*******************************************/
|
||||
/* Constantes file */
|
||||
/*******************************************/
|
||||
/* for this file see task include a file in language AArch64 assembly */
|
||||
.include "../includeConstantesARM64.inc"
|
||||
|
||||
.equ MAXI, 1000
|
||||
|
||||
/*********************************/
|
||||
/* Initialized data */
|
||||
/*********************************/
|
||||
.data
|
||||
sMessResultElement: .asciz " @ "
|
||||
szCarriageReturn: .asciz "\n"
|
||||
|
||||
/*********************************/
|
||||
/* UnInitialized data */
|
||||
/*********************************/
|
||||
.bss
|
||||
sZoneConv: .skip 24
|
||||
TableVanEck: .skip 8 * MAXI
|
||||
/*********************************/
|
||||
/* code section */
|
||||
/*********************************/
|
||||
.text
|
||||
.global main
|
||||
main: // entry of program
|
||||
mov x2,#0 // begin first element
|
||||
mov x3,#0 // current counter
|
||||
ldr x4,qAdrTableVanEck // table address
|
||||
str x2,[x4,x3,lsl 3] // store first zéro
|
||||
1: // begin loop
|
||||
mov x5,x3 // init current indice
|
||||
2:
|
||||
sub x5,x5,1 // decrement
|
||||
cmp x5,0 // end table ?
|
||||
blt 3f
|
||||
ldr x6,[x4,x5,lsl 3] // load element
|
||||
cmp x6,x2 // and compare with the last element
|
||||
bne 2b // not equal
|
||||
sub x2,x3,x5 // else compute gap
|
||||
b 4f
|
||||
3:
|
||||
mov x2,#0 // first, move zero to next element
|
||||
4:
|
||||
add x3,x3,#1 // increment counter
|
||||
str x2,[x4,x3,lsl 3] // and store new element
|
||||
cmp x3,MAXI
|
||||
blt 1b
|
||||
|
||||
mov x2,0
|
||||
5: // loop display ten elements
|
||||
ldr x0,[x4,x2,lsl 3]
|
||||
ldr x1,qAdrsZoneConv
|
||||
bl conversion10 // call décimal conversion
|
||||
ldr x0,qAdrsMessResultElement
|
||||
ldr x1,qAdrsZoneConv // insert conversion in message
|
||||
bl strInsertAtCharInc
|
||||
mov x1,0 // final zéro
|
||||
strb w1,[x0,5] //
|
||||
bl affichageMess // display message
|
||||
add x2,x2,1 // increment indice
|
||||
cmp x2,10 // end ?
|
||||
blt 5b // no -> loop
|
||||
ldr x0,qAdrszCarriageReturn
|
||||
bl affichageMess
|
||||
|
||||
mov x2,MAXI - 10
|
||||
6: // loop display ten elements 990-999
|
||||
ldr x0,[x4,x2,lsl 3]
|
||||
ldr x1,qAdrsZoneConv
|
||||
bl conversion10 // call décimal conversion
|
||||
ldr x0,qAdrsMessResultElement
|
||||
ldr x1,qAdrsZoneConv // insert conversion in message
|
||||
bl strInsertAtCharInc
|
||||
mov x1,0 // final zéro
|
||||
strb w1,[x0,5] //
|
||||
bl affichageMess // display message
|
||||
add x2,x2,1 // increment indice
|
||||
cmp x2,MAXI // end ?
|
||||
blt 6b // no -> loop
|
||||
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
|
||||
qAdrsMessResultElement: .quad sMessResultElement
|
||||
qAdrsZoneConv: .quad sZoneConv
|
||||
qAdrTableVanEck: .quad TableVanEck
|
||||
/********************************************************/
|
||||
/* File Include fonctions */
|
||||
/********************************************************/
|
||||
/* for this file see task include a file in language AArch64 assembly */
|
||||
.include "../includeARM64.inc"
|
||||
Loading…
Add table
Add a link
Reference in a new issue