/* ARM assembly AARCH64 Raspberry PI 3B */ /* program loopwhile64.s */ /*******************************************/ /* Constantes file */ /*******************************************/ /* for this file see task include a file in language AArch64 assembly*/ .include "../includeConstantesARM64.inc" /*********************************/ /* Initialized data */ /*********************************/ .data szMessResult: .asciz "@" // message result szCarriageReturn: .asciz "\n" /*********************************/ /* UnInitialized data */ /*********************************/ .bss sZoneConv: .skip 24 /*********************************/ /* code section */ /*********************************/ .text .global main main: // entry of program mov x20,#1024 // loop counter 1: // begin loop mov x0,x20 ldr x1,qAdrsZoneConv // display value bl conversion10 // decimal conversion ldr x0,qAdrszMessResult ldr x1,qAdrsZoneConv bl strInsertAtCharInc // insert result at @ character bl affichageMess // display message ldr x0,qAdrszCarriageReturn bl affichageMess // display return line lsr x20,x20,1 // division by 2 cmp x20,0 // end ? bgt 1b // no ->begin loop one 100: // standard end of the program mov x0,0 // return code mov x8,EXIT // request to exit program svc 0 // perform the system call qAdrsZoneConv: .quad sZoneConv qAdrszMessResult: .quad szMessResult qAdrszCarriageReturn: .quad szCarriageReturn /********************************************************/ /* File Include fonctions */ /********************************************************/ /* for this file see task include a file in language AArch64 assembly */ .include "../includeARM64.inc"