Use of delay loops, Computer Engineering

Assignment Help:

A very useful application of assembly is to generate delay loops. These loops are used for waiting for some time before execution of subsequent instruction.

However how to find time for the delay? The rate at which instructions are executed is determined by clock frequency. Every instruction occupies a certain number of clock cycles to execute. This multiplied by clock frequency of microprocessor gives actual time of execution of an instruction. For illustration MOV instruction occupies four clock cycles. This instruction when run on a microprocessor with a 4 MHz clock occupies 4/4 which means 1 microsecond. NOP is an instruction which is used to produce the delay without affecting actual running of program.

Time-delay of 1 ms on a microprocessor having a clock frequency of 5 MHz will necessitate:

1419_Use of delay loops.png

Thus, a 1-millisecond delay will require:

1588_Use of delay loops1.png

The subsequent program section can be used to produce the delay with counter value correctly initialised.

MOV CX, N    ; 4 clock cycles N will vary depending on

                        ; The amount of delay required

DELAY:         NOP                ; 3 cycles

                        NOP                ; 3 cycles

                        LOOP DELAY; 17 or 5

LOOP instruction occupies 17 clock cycles when condition is true and 5 clock cycles otherwise. Condition will be true 'N' number of times and false just once when control comes out of loop.

To calculate 'N':

  Total clock cycles    = clock cycles for MOV + N (2*NOP clock cycles + 17) - 12 (when CX = 0)

5000 = 4 + N (6 + 17) - 12 

 N = 5000/23 = 218 = 0DAh

So the counter CX must be initialized by 0DAh in order to get delay of 1 millisecond.


Related Discussions:- Use of delay loops

Oo modelling, We might model such a scenario using three types of object: o...

We might model such a scenario using three types of object: one for Customers, one for BankAccounts and another for Transactions. In terms of data required, for Customers assume we

Hybrid model, The hybrid models are mostly tailormade models suiting to exa...

The hybrid models are mostly tailormade models suiting to exact applications. Actually these fall in the category of mixed models. Such type of application-oriented models keep cro

Explain possible attacks on the wired equivalent privacy, Question : (a...

Question : (a) IEEE802.11 supports two types of network architecture, describe these architectures with the support of diagrams detailing the network components. (b) IEEE80

What is a shell, What is a shell? A shell is an interactive user interf...

What is a shell? A shell is an interactive user interface to an operating system services that permits an user to enter commands as character strings or by a graphical user int

Performance and issues in pipelining-speedup, Performance and Issues in Pip...

Performance and Issues in Pipelining Speedup:   Firstly, we get the speedup factor that is we see how much speed up performance we get through pipelining. First we get the

How to upgrade to the latest version using magento connect, Upgrading Magen...

Upgrading Magento to the latest version is a fairly easy task. Copy and Paste this key magento-core/Mage_All_Latest VIA Magento Connect where it states Paste extension key to insta

Performance and issues in pipelining-efficiency, Performance and Issues in ...

Performance and Issues in Pipelining Efficiency:  The efficiency of a pipeline can be calculated as the ratio of busy time span to the entire time span including the idle time

Create perl scripts, Create Perl scripts as required below: a) Create a ...

Create Perl scripts as required below: a) Create a script named select_by_attribute.pl that accepts the name of a LibML documentand the name of a particular attribute from the c

# real life business subsystem, Is production, marketing, personal, materia...

Is production, marketing, personal, material, finance are the real life business subsystems? if yes, then how?

what is lrd_stmt?, The lrd_stmt function associates a character string (ge...

The lrd_stmt function associates a character string (generally a SQL statement) with a cursor. This function sets a SQL statement to be processed.

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