RosettaCodeData/Task/Null-object/AArch64-Assembly/null-object.aarch64

47 lines
2.0 KiB
Plaintext

/* ARM assembly AARCH64 Raspberry PI 3B */
/* program nullobj64.s */
/*******************************************/
/* Constantes file */
/*******************************************/
/* for this file see task include a file in language AArch64 assembly*/
.include "../includeConstantesARM64.inc"
/*******************************************/
/* Initialized data */
/*******************************************/
.data
szCarriageReturn: .asciz "\n"
szMessResult: .asciz "Value is null.\n" // message result
qPtrObjet: .quad 0 // objet pointer
/*******************************************/
/* UnInitialized data */
/*******************************************/
.bss
/*******************************************/
/* code section */
/*******************************************/
.text
.global main
main: // entry of program
ldr x0,qAdrqPtrObjet // load pointer address
ldr x0,[x0] // load pointer value
cbnz x0,100f // is null ?
ldr x0,qAdrszMessResult // yes -> display message
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
qAdrszMessResult: .quad szMessResult
qAdrszCarriageReturn: .quad szCarriageReturn
qAdrqPtrObjet: .quad qPtrObjet
/********************************************************/
/* File Include fonctions */
/********************************************************/
/* for this file see task include a file in language AArch64 assembly */
.include "../includeARM64.inc"