Let’s see how write a ARM assembly code to find number of odd numbers in an array.
- Load the base address of array.
- Initialize a counter register to number of elements in array.
- Initialize a register(Rd) to zero to store number of odd numbers.
- Load the value from array to a temporary register.
- AND the value in temporary register with 0x01.
- If zero flag is not set, increment to register Rd.
- Else decrement the counter register and jump to step 5.
Here is a example code to find number of odd numbers in an array.
Note: initialize the array at the end of program without fail, before execution.
<br /> AREA program,CODE,READONLY<br /> ENTRY<br /> MOV R0,#01 ; Storing 0x01 for AND operation<br /> LDR R1,=array ; Storing base address of array<br /> MOV R2,#0X09 ; Initializing counter<br />lbl AND R0,[R1],#4 ; 'AND'ing to check whether number is odd or even<br /> ADDNE R3,R3,#O1 ; R3 register will have count of number of odd numbers.<br /> SUBS R2,R2,#01<br /> BPL lbl<br />array DCD 0x11223343, 0x12345672, 0x002917BD3, 0x00000A01, 0x62398746, 0xAB56E3CE, 0x0A761AC7, 0x623ABC46, 0xAB86E3BD, 0x0A762DE8, <br /> END<br />