How to resolve the algorithm Loops/N plus one half step by step in the AArch64 Assembly programming language
Published on 12 May 2024 09:40 PM
How to resolve the algorithm Loops/N plus one half step by step in the AArch64 Assembly programming language
Table of Contents
Problem Statement
Quite often one needs loops which, in the last iteration, execute only part of the loop body. Demonstrate the best way to do this. Write a loop which writes the comma-separated list using separate output statements for the number and the comma from within the body of the loop.
Let's start with the solution:
Step by Step solution about How to resolve the algorithm Loops/N plus one half step by step in the AArch64 Assembly programming language
Source code in the aarch64 programming language
/* ARM assembly AARCH64 Raspberry PI 3B */
/* program loopnplusone64.s */
/*******************************************/
/* Constantes file */
/*******************************************/
/* for this file see task include a file in language AArch64 assembly*/
.include "../includeConstantesARM64.inc"
/*********************************/
/* Initialized data */
/*********************************/
.data
szMessResult: .asciz "@" // message result
szMessComma: .asciz ", "
szCarriageReturn: .asciz "\n"
/*********************************/
/* UnInitialized data */
/*********************************/
.bss
sZoneConv: .skip 24
/*********************************/
/* code section */
/*********************************/
.text
.global main
main: // entry of program
mov x20,1 // loop counter
1: // begin loop
mov x0,x20
ldr x1,qAdrsZoneConv // display value
bl conversion10 // decimal conversion
ldr x0,qAdrszMessResult
ldr x1,qAdrsZoneConv // display value
bl strInsertAtCharInc // insert result at @ character
bl affichageMess // display message
ldr x0,qAdrszMessComma
bl affichageMess // display comma
add x20,x20,1 // increment counter
cmp x20,10 // end ?
blt 1b // no ->begin loop one
mov x0,x20
ldr x1,qAdrsZoneConv // display value
bl conversion10 // decimal conversion
ldr x0,qAdrszMessResult
ldr x1,qAdrsZoneConv // display value
bl strInsertAtCharInc // insert result at @ character
bl affichageMess // display message
ldr x0,qAdrszCarriageReturn
bl affichageMess // display return line
100: // standard end of the program
mov x0,0 // return code
mov x8,EXIT // request to exit program
svc 0 // perform the system call
qAdrsZoneConv: .quad sZoneConv
qAdrszMessResult: .quad szMessResult
qAdrszMessComma: .quad szMessComma
qAdrszCarriageReturn: .quad szCarriageReturn
/********************************************************/
/* File Include fonctions */
/********************************************************/
/* for this file see task include a file in language AArch64 assembly */
.include "../includeARM64.inc"
You may also check:How to resolve the algorithm Binary digits step by step in the FALSE programming language
You may also check:How to resolve the algorithm Loops/Break step by step in the SAS programming language
You may also check:How to resolve the algorithm Monads/Maybe monad step by step in the Perl programming language
You may also check:How to resolve the algorithm Remove duplicate elements step by step in the Frink programming language
You may also check:How to resolve the algorithm Increment a numerical string step by step in the VBA programming language