60 lines
2.6 KiB
Plaintext
60 lines
2.6 KiB
Plaintext
/* ARM assembly AARCH64 Raspberry PI 3B */
|
|
/* program variable64.s */
|
|
|
|
/*******************************************/
|
|
/* Constantes file */
|
|
/*******************************************/
|
|
/* for this file see task include a file in language AArch64 assembly*/
|
|
.include "../includeConstantesARM64.inc"
|
|
/*********************************/
|
|
/* Initialized data */
|
|
/*********************************/
|
|
.data
|
|
szString: .asciz "String définition"
|
|
sArea1: .fill 11, 1, ' ' // 11 spaces
|
|
// or
|
|
sArea2: .space 11,' ' // 11 spaces
|
|
|
|
cCharac: .byte '\n' // character
|
|
cByte1: .byte 0b10101 // 1 byte binary value
|
|
|
|
hHalfWord1: .hword 0xFF // 2 bytes value hexa
|
|
.align 4
|
|
iInteger1: .int 123456 // 4 bytes value decimal
|
|
iInteger3: .short 0500 // 4 bytes value octal
|
|
iInteger5: .int 0x4000 // 4 bytes value hexa
|
|
|
|
iInteger7: .word 0x4000 // 4 bytes value hexa
|
|
iInteger6: .int 04000 // 4 bytes value octal
|
|
|
|
TabInteger4: .int 5,4,3,2 // Area of 4 integers = 4 * 4 = 16 bytes
|
|
|
|
dDoubleInt1: .quad 0xFFFFFFFFFFFFFFFF // 8 bytes value hexa
|
|
|
|
dfFLOAT1: .double 0f-31415926535897932384626433832795028841971.693993751E-40 // Float 8 bytes
|
|
sfFLOAT2: .float 0f-31415926535897932384626433832795028841971.693993751E-40 // Float 4 bytes (or use .single)
|
|
|
|
/*********************************/
|
|
/* UnInitialized data */
|
|
/*********************************/
|
|
.bss
|
|
sBuffer: .skip 500 // 500 bytes values zero
|
|
iInteger2: .skip 4 // 4 bytes value zero
|
|
dDoubleint2: .skip 8 // 8 bytes value zero
|
|
/*********************************/
|
|
/* code section */
|
|
/*********************************/
|
|
.text
|
|
.global main
|
|
main: // entry of program
|
|
ldr x0,qAdriInteger2 // load variable address
|
|
mov x1,#100
|
|
str x1,[x0] // init variable iInteger2
|
|
|
|
100: // standard end of the program
|
|
mov x0, 0 // return code
|
|
mov x8, EXIT // request to exit program
|
|
svc 0 // perform the system call
|
|
|
|
qAdriInteger2: .quad iInteger2 // variable address iInteger2
|