Count Number Of Ones In Array Of Integers In 8085

Posted by admin

We have already discussed that the data definition directives to the assembler are used for allocating storage for variables. The variable could also be initialized with some specific value. The initialized value could be specified in hexadecimal, decimal or binary form.For example, we can define a word variable 'months' in either of the following way −MONTHSDW12MONTHSDW0CHMONTHSDW0110BThe data definition directives can also be used for defining a one-dimensional array.

Let us define a one-dimensional array of numbers.NUMBERSDW 34, 45, 56, 67, 75, 89The above definition declares an array of six words each initialized with the numbers 34, 45, 56, 67, 75, 89. This allocates 2x6 = 12 bytes of consecutive memory space. The symbolic address of the first number will be NUMBERS and that of the second number will be NUMBERS + 2 and so on.Let us take up another example. You can define an array named inventory of size 8, and initialize all the values with zero, as −INVENTORY DW 0DW 0DW 0DW 0DW 0DW 0DW 0DW 0Which can be abbreviated as −INVENTORY DW 0, 0, 0, 0, 0, 0, 0, 0The TIMES directive can also be used for multiple initializations to the same value. Using TIMES, the INVENTORY array can be defined as:INVENTORY TIMES 8 DW 0ExampleThe following example demonstrates the above concepts by defining a 3-element array x, which stores three values: 2, 3 and 4.

Now we will write another Assembly program for finding the largest number in array of 10 elements.First variables will be the one which will hold the value discovered as the Largest of All the Numbers in Array list and it will be LARGE and Second will be the one which will hold the values present in the Given Numbers in Array list and it will be array ARR. Other variables will be holding Length of the Array and it will be LEN, So in all Two variables.The identified variables are ARR, LEN and LARGE.First Line – DATA SEGMENTDATA SEGMENT is the starting point of the Data Segment in a Program and DATA is the name given to this segment and SEGMENT is the keyword for defining Segments, Where we can declare our variables.Next Line – ARR DB 1,4,2,3,9,8,6,7,5,10LEN DW $-ARRLARGE DB?ARR DB 1,4,2,3,9,8,6,7,5,10 this line is a declaration of 8-bit Numbers Array initialized with 1,4,2,3,9,8,6,7,5,10 the numbers are seperated by Comma (,). LEN DW $-ARR is used to Save the Length of the Array which will be generated by $-Name of the array i.e. We are initializing LARGE DB? Stands for blank value). Detailed explanation is given below.Next Line – DATA ENDSDATA ENDS is the End point of the Data Segment in a Program.

We can write just ENDS But to differentiate the end of which segment it is of which we have to write the same name given to the Data Segment.Now, Selection of data type is DB data type the numbers which we are adding will be integers so DB is sufficient. DATA SEGMENTARR DB 1,4,2,3,9,8,6,7,5,10LEN DW $ -ARRLARGE DB?DATA ENDS CODE SEGMENT ASSUME DS: DATA CS: CODESTART: MOV AX, DATA MOV DS, AX LEA SI,ARRMOV AL,ARR SI MOV LARGE, AL MOV CX,LENREPEAT: MOV AL,ARR SI CMP LARGE, AL JG NOCHANGEMOV LARGE, ALNOCHANGE: INC SI LOOP REPEAT MOV AH,4CHINT 21HCODE ENDS END STARTExplanation:In this Assembly Language Programming, A single program is divided into four Segments which are 1.

Count Number Of Ones In Array Of Integers In 8085 1

Math

Data Segment, 2. Code Segment, 3.

Count Number Of Ones In Array Of Integers In 8085 Math

Stack Segment, and 4. Extra Segment. Now, from these one is compulsory i.e.

Code Segment if at all you don’t need variable(s) for your program.if you need variable(s) for your program you will need two Segments i.e.