Delete a file: Difference between revisions

Content added Content deleted
(Add task to ARM assembly Raspberry pi)
(add task to ARM64 assembly Raspberry Pi)
Line 21: Line 21:
</lang>
</lang>
The 'drop' removes the result (true or false, indicating success or failure). It is not strictly necessary to do so, but it keeps the stack clean.
The 'drop' removes the result (true or false, indicating success or failure). It is not strictly necessary to do so, but it keeps the stack clean.
=={{header|AArch64 Assembly}}==
{{works with|as|Raspberry Pi 3B version Buster 64 bits}}
<lang AArch64 Assembly>
/* ARM assembly AARCH64 Raspberry PI 3B */
/* program deleteFic64.s */


/*******************************************/
/* Constantes file */
/*******************************************/
/* for this file see task include a file in language AArch64 assembly*/
.include "../includeConstantesARM64.inc"

.equ UNLINK, 35

.equ AT_REMOVEDIR, 0x200 // flag for delete directory

/******************************************/
/* Initialized data */
/******************************************/
.data
szMessDeleteDirOk: .asciz "Delete directory Ok.\n"
szMessErrDeleteDir: .asciz "Unable delete dir. \n"
szMessDeleteFileOk: .asciz "Delete file Ok.\n"
szMessErrDeleteFile: .asciz "Unable delete file. \n"

szNameDir: .asciz "Docs"
szNameFile: .asciz "input.txt"

/******************************************/
/* UnInitialized data */
/******************************************/
.bss
/******************************************/
/* code section */
/******************************************/
.text
.global main
main: // entry of program
// delete file
mov x0,AT_FDCWD // current directory
ldr x1,qAdrszNameFile // file name
mov x8,UNLINK // code call system delete file
svc 0 // call systeme
cmp x0,0 // error ?
blt 99f
ldr x0,qAdrszMessDeleteFileOk // delete file OK
bl affichageMess
// delete directory
mov x0,AT_FDCWD // current directory
ldr x1,qAdrszNameDir // directory name
mov x2,AT_REMOVEDIR
mov x8,UNLINK // code call system delete directory
svc 0 // call systeme
cmp x0,0 // error ?
blt 98f
ldr x0,qAdrszMessDeleteDirOk // display message ok directory
bl affichageMess
// end Ok
b 100f

98: // display error message delete directory
ldr x0,qAdrszMessErrDeleteDir
bl affichageMess
b 100f
99: // display error message delete file
ldr x0,qAdrszMessErrDeleteFile
bl affichageMess
b 100f
100: // standard end of the program
mov x0,0 // return code
mov x8,EXIT // request to exit program
svc 0 // perform the system call
qAdrszMessDeleteDirOk: .quad szMessDeleteDirOk
qAdrszMessErrDeleteDir: .quad szMessErrDeleteDir
qAdrszMessDeleteFileOk: .quad szMessDeleteFileOk
qAdrszNameFile: .quad szNameFile
qAdrszMessErrDeleteFile: .quad szMessErrDeleteFile
qAdrszNameDir: .quad szNameDir
/********************************************************/
/* File Include fonctions */
/********************************************************/
/* for this file see task include a file in language AArch64 assembly */
.include "../includeARM64.inc"
</lang>
=={{header|Ada}}==
=={{header|Ada}}==
<lang ada>with Ada.Directories; use Ada.Directories;</lang>
<lang ada>with Ada.Directories; use Ada.Directories;</lang>