Data update
This commit is contained in:
parent
61b93a2cd1
commit
5af6d93694
858 changed files with 20572 additions and 2082 deletions
84
Task/String-case/AArch64-Assembly/string-case.aarch64
Normal file
84
Task/String-case/AArch64-Assembly/string-case.aarch64
Normal file
|
|
@ -0,0 +1,84 @@
|
|||
/* ARM assembly AARCH64 Raspberry PI 3B */
|
||||
/* program strcase64.s */
|
||||
|
||||
/************************************/
|
||||
/* Constantes */
|
||||
/************************************/
|
||||
/* for this file see task include a file in language AArch64 assembly*/
|
||||
.include "../includeConstantesARM64.inc"
|
||||
|
||||
/************************************/
|
||||
/* Initialized data */
|
||||
/************************************/
|
||||
.data
|
||||
szMessResult: .asciz "Result: \n"
|
||||
szString: .asciz "alphaBETA"
|
||||
szCarriageReturn: .asciz "\n"
|
||||
szMessStart: .asciz "Program 64 bits start.\n"
|
||||
/************************************/
|
||||
/* UnInitialized data */
|
||||
/************************************/
|
||||
.bss
|
||||
sBuffer: .skip 80
|
||||
sBuffex1: .skip 80
|
||||
/************************************/
|
||||
/* code section */
|
||||
/************************************/
|
||||
.text
|
||||
.global main
|
||||
main: // entry of program
|
||||
ldr x0,qAdrszMessStart
|
||||
bl affichageMess
|
||||
ldr x1,qAdrszString
|
||||
ldr x3,qAdrsBuffer
|
||||
ldr x4,qAdrsBuffex1
|
||||
mov x6,#0b100000 // 1 -> bit 5
|
||||
mov x2,#0
|
||||
1:
|
||||
ldrb w0,[x1,x2] // load byte of string
|
||||
mov x5,x0
|
||||
cmp x0,#'A' // select alpha characters lower or upper
|
||||
blt 3f
|
||||
cmp x0,#'z'
|
||||
bgt 3f
|
||||
cmp x0,#'Z'
|
||||
ble 2f
|
||||
cmp x0,#'a'
|
||||
bge 2f
|
||||
b 3f
|
||||
2:
|
||||
orr x0,x0,x6 // converion in lower case (1 -> bit 5)
|
||||
bic x5,x0,x6 // converion in upper case (0 -> bit 5)
|
||||
3:
|
||||
strb w0,[x3,x2] // store lower character
|
||||
strb w5,[x4,x2] // store upper character
|
||||
cmp x0,#0 // end string ?
|
||||
add x2,x2,#1 // increment index character
|
||||
bne 1b // loop
|
||||
|
||||
|
||||
ldr x0,qAdrszMessResult
|
||||
bl affichageMess
|
||||
ldr x0,qAdrsBuffer
|
||||
bl affichageMess
|
||||
ldr x0,qAdrszCarriageReturn
|
||||
bl affichageMess
|
||||
ldr x0,qAdrsBuffex1
|
||||
bl affichageMess
|
||||
ldr x0,qAdrszCarriageReturn
|
||||
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
|
||||
qAdrszString: .quad szString
|
||||
qAdrsBuffer: .quad sBuffer
|
||||
qAdrsBuffex1: .quad sBuffex1
|
||||
qAdrszMessResult: .quad szMessResult
|
||||
qAdrszCarriageReturn: .quad szCarriageReturn
|
||||
qAdrszMessStart: .quad szMessStart
|
||||
/***************************************************/
|
||||
/* ROUTINES INCLUDE */
|
||||
/***************************************************/
|
||||
/* for this file see task include a file in language AArch64 assembly*/
|
||||
.include "../includeARM64.inc"
|
||||
84
Task/String-case/ARM-Assembly/string-case.arm
Normal file
84
Task/String-case/ARM-Assembly/string-case.arm
Normal file
|
|
@ -0,0 +1,84 @@
|
|||
/* ARM assembly Raspberry PI */
|
||||
/* program strcase.s */
|
||||
|
||||
/************************************/
|
||||
/* Constantes */
|
||||
/************************************/
|
||||
/* for this file see task include a file in language ARM assembly*/
|
||||
.include "../constantes.inc"
|
||||
|
||||
/************************************/
|
||||
/* Initialized data */
|
||||
/************************************/
|
||||
.data
|
||||
szMessResult: .asciz "Result: \n"
|
||||
szString: .asciz "alphaBETA"
|
||||
szCarriageReturn: .asciz "\n"
|
||||
szMessStart: .asciz "Program 32 bits start.\n"
|
||||
/************************************/
|
||||
/* UnInitialized data */
|
||||
/************************************/
|
||||
.bss
|
||||
sBuffer: .skip 80
|
||||
sBuffer1: .skip 80
|
||||
/************************************/
|
||||
/* code section */
|
||||
/************************************/
|
||||
.text
|
||||
.global main
|
||||
main: @ entry of program
|
||||
ldr r0,iAdrszMessStart
|
||||
bl affichageMess
|
||||
ldr r1,iAdrszString
|
||||
ldr r3,iAdrsBuffer
|
||||
ldr r4,iAdrsBuffer1
|
||||
mov r6,#0b100000 @ 1 -> bit 5
|
||||
mov r2,#0
|
||||
1:
|
||||
ldrb r0,[r1,r2] @ load byte of string
|
||||
mov r5,r0
|
||||
cmp r0,#'A' @ select alpha characters lower or upper
|
||||
blt 3f
|
||||
cmp r0,#'z'
|
||||
bgt 3f
|
||||
cmp r0,#'Z'
|
||||
ble 2f
|
||||
cmp r0,#'a'
|
||||
bge 2f
|
||||
b 3f
|
||||
2:
|
||||
orr r0,r0,r6 @ converion in lower case (1 -> bit 5)
|
||||
bic r5,r0,r6 @ converion in upper case (0 -> bit 5)
|
||||
3:
|
||||
strb r0,[r3,r2] @ store lower character
|
||||
strb r5,[r4,r2] @ store upper character
|
||||
cmp r0,#0 @ end string ?
|
||||
add r2,r2,#1 @ increment index character
|
||||
bne 1b @ loop
|
||||
|
||||
|
||||
ldr r0,iAdrszMessResult
|
||||
bl affichageMess
|
||||
ldr r0,iAdrsBuffer
|
||||
bl affichageMess
|
||||
ldr r0,iAdrszCarriageReturn
|
||||
bl affichageMess
|
||||
ldr r0,iAdrsBuffer1
|
||||
bl affichageMess
|
||||
ldr r0,iAdrszCarriageReturn
|
||||
bl affichageMess
|
||||
100: @ standard end of the program
|
||||
mov r0, #0 @ return code
|
||||
mov r7, #EXIT @ request to exit program
|
||||
swi 0 @ perform the system call
|
||||
iAdrszString: .int szString
|
||||
iAdrsBuffer: .int sBuffer
|
||||
iAdrsBuffer1: .int sBuffer1
|
||||
iAdrszMessResult: .int szMessResult
|
||||
iAdrszCarriageReturn: .int szCarriageReturn
|
||||
iAdrszMessStart: .int szMessStart
|
||||
/***************************************************/
|
||||
/* ROUTINES INCLUDE */
|
||||
/***************************************************/
|
||||
/* for this file see task include a file in language ARM assembly*/
|
||||
.include "../affichage.inc"
|
||||
Loading…
Add table
Add a link
Reference in a new issue