
Null (or nil) is the computer science concept of an undefined or unbound object.
Some languages have an explicit way to access the null object, and some don't.
Some languages distinguish the null object from undefined values, and some don't.



Task

Show how to access null in your language by checking to see if an object is equivalent to the null object.


This task is not about whether a variable is defined. The task is about "null"-like values in various languages, which may or may not be related to the defined-ness of variables in your language.

 
/* 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"
 