How to resolve the algorithm Loops/While step by step in the AArch64 Assembly programming language
Published on 12 May 2024 09:40 PM
How to resolve the algorithm Loops/While step by step in the AArch64 Assembly programming language
Table of Contents
Problem Statement
Start an integer value at 1024. Loop while it is greater than zero. Print the value (with a newline) and divide it by two each time through the loop.
Let's start with the solution:
Step by Step solution about How to resolve the algorithm Loops/While step by step in the AArch64 Assembly programming language
Source code in the aarch64 programming language
/* ARM assembly AARCH64 Raspberry PI 3B */
/* program loopwhile64.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
szCarriageReturn: .asciz "\n"
/*********************************/
/* UnInitialized data */
/*********************************/
.bss
sZoneConv: .skip 24
/*********************************/
/* code section */
/*********************************/
.text
.global main
main: // entry of program
mov x20,#1024 // loop counter
1: // begin loop
mov x0,x20
ldr x1,qAdrsZoneConv // display value
bl conversion10 // decimal conversion
ldr x0,qAdrszMessResult
ldr x1,qAdrsZoneConv
bl strInsertAtCharInc // insert result at @ character
bl affichageMess // display message
ldr x0,qAdrszCarriageReturn
bl affichageMess // display return line
lsr x20,x20,1 // division by 2
cmp x20,0 // end ?
bgt 1b // no ->begin loop one
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
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 Pinstripe/Display step by step in the Sinclair ZX81 BASIC programming language
You may also check:How to resolve the algorithm Bulls and cows step by step in the M2000 Interpreter programming language
You may also check:How to resolve the algorithm Even or odd step by step in the PowerShell programming language
You may also check:How to resolve the algorithm Delegates step by step in the Kotlin programming language
You may also check:How to resolve the algorithm Pointers and references step by step in the Phix programming language