Find the average of two values, Computer Engineering

Assignment Help:

Q. Find the average of two values?

Find the average of two values which are stored in 

; Memory locations named FIRST and SECOND 

; And puts result in memory location AVGE.

; Input:  Two memory variables stored in memory locations FIRST and SECOND

; REGISTERS            ; Uses DS, CS, AX, BL

; PORTS                      ; None used

DATA             SEGMENT

FIRST             DB   90h         ; FIRST number,                      90h is a sample value

SECOND        DB   78h         ; SECOND number,                 78h is a sample value

AVGE             DB   ?              ; Store average here

DATA ENDS

CODE   SEGMENT

                        ASSUME CS:CODE, DS: DATA

START:           MOV    AX, DATA               ; Initialise data segment, i.e. set

                        MOV    DS, AX                     ; Register DS to point to Data Segment

                        MOV    AL, FIRST                            ; Get first number

                        ADD    AL, SECOND           ; add second to it 

                        MOV    AH, 00h                     ; Clear all of AH register

                        ADC    AH, 00h                     ; Put carry in LSB of AH

                        MOV    BL, 02h                     ; Load divisor in BL register

                        DIV      BL                             ; Divide AX by BL. Quotient in AL,

                                                                        ; And remainder in AH

                        MOV    AVGE, AL                ; Copy result to memory

CODE ENDS

END START

Discussion: 

An add instruction can't add two memory locations directly so we moved a single value in AL first and added the second value to it.

Please consider on adding the two values there is a possibility of carry bit. (The values here are being considered as unsigned binary numbers). Now problem is how to putcarry bit in the AH register in such a way that AX(AH:AL) reflects added value. This is done employing ADC instruction.

ADC AH,00h instruction would add immediate number 00h to contents of carry flag and contents of AH register. The result will be left in AH register. As we had cleared AH to all zeros before the add we actually are adding 00h + 00h + CF. Result of all this is the carry flag bit is put in AH register that was anticipated by us.

Lastly to get the average we divide the sum given in AX by 2. A more universal program would need negative and positive numbers. After division 8-bit quotient would be left in AL register that can then be copied in the memory location called as AVGE.


Related Discussions:- Find the average of two values

Technical Support Engineer, I''m seeking a challenging professional working...

I''m seeking a challenging professional working position in the field of Information Technology,where I’ll be given the chance to enhance & expand the skills & experience

Distinguish between how ntfs and fat store time, Problem (a) Distingu...

Problem (a) Distinguish between how NTFS and FAT store time. Describe your answer. (b) Unix epoch starts as from January 1, 1970, 00:00:00 GMT. Provide that Unix stores

Translate the sentences into predicate calculus, Translate each of the foll...

Translate each of the following sentences into predicate calculus, conceptual dependencies, and conceptual graphs: 1. Bill sold the book to the book store." 2. "John borrowed

Why cmos circuits are extensively used for On-chip computers, CMOS circuits...

CMOS circuits are extensively used for ON-chip computers mainly because of their extremely ? Ans. Since CMOS circuits have large packing density, so these are extensively use

Transport protocol you use to call a web service soap, What is the transpor...

What is the transport protocol you use to call a Web service SOAP? Http is preferred for Soap whereas tcp for binary i.e. HTTP is used in web services and tcp works well in rem

Why echo suppressor is detrimental to full duplex operation, Echo suppresso...

Echo suppressor is detrimental to full duplex operation because? This disables one of the two pairs in a four-wire trunk line while a signal is detected upon another pair.

What is said to be side effect, What is said to be side effect? When a ...

What is said to be side effect? When a location other than one explicitly named in an instruction as a destination operand is affected, the instruction is said to have a side e

Pc configuration and troubleshooting, You have been asked to become the con...

You have been asked to become the consulting technician for MobTex, a local auto servicing centre. The general manager (Jo) realises that the IT system has evolved over time with l

The number of control lines for a 8 – to – 1 multiplexer, What is the numbe...

What is the number of control lines for a 8 - to - 1 multiplexer ? Ans. There are 3 control lines, for an 8 to 1 Multiplexer. The control signals are utilized to steer any one

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

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