Define looping in assembly language, Computer Engineering

Assignment Help:

Q. Define looping in assembly language?

LOOPING 

; Program: Assume a constant inflation factor that is added to a series of prices

; stored in the memory. The program copies the new price over the old price. It is 

; assumed that price data is available in BCD form.

; The algorithm:

; Repeat

; Read a price from the array

; Add inflation factor

; Adjust result to correct BCD

; Put result back in array

; Until all prices are inflated

; REGISTERS: Uses DS, CS, AX, BX, CX

; PORTS        : Not used

ARRAYS                   SEGMENT

                                    PRICE                        DB 36h, 55h, 27h, 42h, 38h, 41h, 29h, 39h

ARRAYS                   ENDS

CODE                         SEGMENT

                                    ASSUME CS:CODE, DS: ARRAYS

START:                       MOV AX, ARRAYS; Initialize data segment

                                    MOV DS, AX; register using AX

                                    LEA BX, PRICES; initialize pointer to base of array

                                    MOV CX, 0008h; Initialise counter to 8 as array have 8

; Values.

DO_NEXT:                MOV AL, [BX]                      ; Copy a price to AL. BX is addressed in 

; Indirect mode.

                                    ADD AL, 0Ah                        ; Add inflation factor

                                    DAA                                                   ; Make sure that result is BCD

                                    MOV [BX], AL                      ; Copy result back to the memory 

                                    INC BX                                  ; increment BX to make it point to next price 

                                    DEC CX                                 ; Decrement counter register

                                    JNZ DO_NEXT                     : If not last, (last would be when CX will 

; become 0) Loop back to DO_NEXT

                                    MOV AH, 4CH                      ; Return to DOS

                                    INT 21H

CODE ENDS  

END START

Discussion: 

Please note the use of instruction: LEA BX, PRICES: It would load BX register with offset of the array PRICES in data segment. [BX] is an indirection through BX and comprises the value stored at that element of array. PRICES. BX is incremented to point to next element of array. CX register acts as a loop counter and is decremented by one to keep a check of the bounds of array. As soon as CX register becomes zero, zero flag is set to 1. JNZ instruction keeps track of value of CX and loop terminates when zero flag is 1 as JNZ doesn't loop back. The same program can be written by LOOP instruction in such case DEC CX and JNZ DO_NEXT instructions are substituted by LOOP DO_NEXT instruction. LOOP decrements value of CX and jumps to given label only if CX isn't equal to zero.


Related Discussions:- Define looping in assembly language

Data alignment in arrays, Q. Data Alignment in Arrays? Arrays are align...

Q. Data Alignment in Arrays? Arrays are aligned to templates by ALIGN directive. ALIGN directive is used to align elements of various arrays with one another denoting that they

What is problem statement, What is problem statement The problem state...

What is problem statement The problem statement is crucial for any analysis. Problem statement is general description of the user's desires, and difficulties. The motive of pr

Which device consume minimum power, Which device consume minimum power ? ...

Which device consume minimum power ? Ans. Minimum power consume by CMOS as in its one p-MOS and one n-MOS transistors are connected in complimentary mode, so one device is ON a

Compute total and access methods, Write a program that input (from the user...

Write a program that input (from the user) the number of hours worked and hours pay rate for employees and output their total pay. The program should process an arbitrary number of

What is CRC, In a frame transmission, CRC stands for? CRC stands for Cy...

In a frame transmission, CRC stands for? CRC stands for Cyclic Redundancy Check, in a frame transmission.

Define process of instruction execution, Instruction execution is performed...

Instruction execution is performed in CPU registers. Although before we define process of instruction execution let's first give details on Registers (temporary storage location in

What is the significance of the memory table ''screen'', What is the signif...

What is the significance of the memory table 'SCREEN'? At runtime, attributes for every screen field are stored in the memory table called 'SCREEN'.  We need not declare this

What is static timing, What is Static timing a. Delays over all paths a...

What is Static timing a. Delays over all paths are added up. b. All possibilities, including false paths, verified without the need for test vectors. c. Faster than simul

Explain about the term middleware, Explain about the term Middleware. M...

Explain about the term Middleware. Middleware is the term frequently used to explain the application or business logic present within an application server. Unfortunately, simi

Application to calculate weekly payment of a company, Problem: A compa...

Problem: A company requires a software application to calculate the weekly payment for its employees. The information about the employees (employees' data) is kept in a file.

Write Your Message!

Captcha
Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd