Data update
This commit is contained in:
parent
61b93a2cd1
commit
5af6d93694
858 changed files with 20572 additions and 2082 deletions
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