Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
88
Task/Sleep/AArch64-Assembly/sleep.aarch64
Normal file
88
Task/Sleep/AArch64-Assembly/sleep.aarch64
Normal file
|
|
@ -0,0 +1,88 @@
|
|||
/* ARM assembly AARCH64 Raspberry PI 3B */
|
||||
/* program sleep64.s */
|
||||
|
||||
/*******************************************/
|
||||
/* Constantes file */
|
||||
/*******************************************/
|
||||
/* for this file see task include a file in language AArch64 assembly */
|
||||
.include "../includeConstantesARM64.inc"
|
||||
|
||||
.equ SLEEP, 0x65 // Linux syscall
|
||||
|
||||
|
||||
.equ BUFFERSIZE, 100
|
||||
/*******************************************/
|
||||
/* Initialized data */
|
||||
/*******************************************/
|
||||
.data
|
||||
szMessQuest: .asciz "Enter the time to sleep in seconds : "
|
||||
szMessError: .asciz "Error occured.\n"
|
||||
szMessSleep: .asciz "Sleeping Zzzzzzz.\n"
|
||||
szMessAwake: .asciz "Awake!!!\n"
|
||||
|
||||
szCarriageReturn: .asciz "\n"
|
||||
/*******************************************/
|
||||
/* UnInitialized data */
|
||||
/*******************************************/
|
||||
.bss
|
||||
.align 4
|
||||
ZonesAttente:
|
||||
qSecondes: .skip 8
|
||||
qMicroSecondes: .skip 8
|
||||
ZonesTemps: .skip 16
|
||||
sBuffer: .skip BUFFERSIZE
|
||||
/*******************************************/
|
||||
/* code section */
|
||||
/*******************************************/
|
||||
.text
|
||||
.global main
|
||||
main:
|
||||
ldr x0,qAdrszMessQuest // display invite message
|
||||
bl affichageMess
|
||||
mov x0,STDIN // input standard linux
|
||||
ldr x1,qAdrsBuffer
|
||||
mov x2,BUFFERSIZE
|
||||
mov x8,READ // read input string
|
||||
svc 0
|
||||
cmp x0,0 // read error ?
|
||||
ble 99f
|
||||
//
|
||||
ldr x0,qAdrsBuffer // buffer address
|
||||
bl conversionAtoD // conversion string in number in x0
|
||||
|
||||
ldr x1,qAdrqSecondes
|
||||
str x0,[x1] // store second number in area
|
||||
ldr x0,qAdrszMessSleep // display sleeping message
|
||||
bl affichageMess
|
||||
ldr x0,qAdrZonesAttente // delay area
|
||||
ldr x1,qAdrZonesTemps //
|
||||
mov x8,#SLEEP // call system SLEEP
|
||||
svc 0
|
||||
cmp x0,#0 // error sleep ?
|
||||
blt 99f
|
||||
ldr x0,qAdrszMessAwake // display awake message
|
||||
bl affichageMess
|
||||
mov x0, #0 // return code
|
||||
b 100f
|
||||
99: // display error message
|
||||
ldr x0,qAdrszMessError
|
||||
bl affichageMess
|
||||
mov x0, 1 // return code
|
||||
|
||||
100: // standard end of the program
|
||||
mov x8,EXIT // request to exit program
|
||||
svc 0 // perform system call
|
||||
qAdrszMessQuest: .quad szMessQuest
|
||||
qAdrszMessError: .quad szMessError
|
||||
qAdrszMessSleep: .quad szMessSleep
|
||||
qAdrszMessAwake: .quad szMessAwake
|
||||
qAdrqSecondes: .quad qSecondes
|
||||
qAdrZonesAttente: .quad ZonesAttente
|
||||
qAdrZonesTemps: .quad ZonesTemps
|
||||
qAdrsBuffer: .quad sBuffer
|
||||
qAdrszCarriageReturn: .quad szCarriageReturn
|
||||
/********************************************************/
|
||||
/* File Include fonctions */
|
||||
/********************************************************/
|
||||
/* for this file see task include a file in language AArch64 assembly */
|
||||
.include "../includeARM64.inc"
|
||||
Loading…
Add table
Add a link
Reference in a new issue