/* ARM assembly AARCH64 Raspberry PI 3B */ /* program commandLine64.s */ /************************************/ /* Constantes */ /************************************/ /* for this file see task include a file in language AArch64 assembly*/ .include "../includeConstantesARM64.inc" /************************************/ /* Initialized data */ /************************************/ .data szCarriageReturn: .asciz "\n" /************************************/ /* UnInitialized data */ /************************************/ .bss .align 4 /************************************/ /* code section */ /************************************/ .text .global main main: // entry of program mov fp,sp // fp <- start address ldr x4,[fp] // number of Command line arguments add x5,fp,#8 // first parameter address mov x2,#0 // init loop counter 1: ldr x0,[x5,x2,lsl #3] // string address parameter bl affichageMess // display string ldr x0,qAdrszCarriageReturn bl affichageMess // display carriage return add x2,x2,#1 // increment counter cmp x2,x4 // number parameters ? blt 1b // loop 100: // standard end of the program mov x0, #0 // return code mov x8,EXIT svc 0 // perform the system call qAdrszCarriageReturn: .quad szCarriageReturn /***************************************************/ /* ROUTINES INCLUDE */ /***************************************************/ /* for this file see task include a file in language AArch64 assembly*/ .include "../includeARM64.inc"