Example on public divisor, Computer Engineering

Assignment Help:

Q. Example on PUBLIC DIVISOR?

Linker appends all segments having the same name and PUBLIC directive with segment name into one segment. Their contents are pulled together in consecutive memory locations.

The subsequent statement to be noted is PUBLIC DIVISOR. It tells the assembler and linker that this variable can be legally accessed by other assembly modules. Whereas EXTRN SMART_DIV: FAR conveys the assembler that this module will access a label or a procedure of type FAR in some assembly module. Please also note that EXTRN definition is enclosed within the PROCEDURES ENDS andPROCEDURES SEGMENT PUBLIC to tell the assembler and linker that procedure SMART_DIV is located within the segment PROCEDURES and all such PROCEDURES segments are required to be combined in one. Let's now define the PROCEDURE module:  

; PROGRAM MODULE PROCEDURES

 

; INPUT                      : Dividend - low word in AX, high word in DX, Divisor in CX

; OUTPUT                  : Quotient - low word in AX, high word in DX. Remainder in CX

; Carry                         - carry flag is set if try to divide by zero

; DESTROYS: AX, BX, CX, DX, BP, FLAGS

DATA_SEG SEGMENT   PUBLIC; this block tells the assembler that

EXTRN DIVISOR: WORD                          ; the divisor is a word variable and is

DATA_SEG   ENDS                         ; external to this procedure. It would be 

                                                            ; found in segment named DATA_SEG

PUBLIC SMART_DIV                     ; SMART_DIV is available to

                                                            ; Other modules. It is now being defined 

                                                            ; In PROCEDURES SEGMENT.

PROCEDURES   SEGMENT PUBLIC

SMART_DIV PROC FAR

                                 ASSUME CS: PROCEDURES, DS: DATA_SEG

                                 CMP DIVISOR, 0; this is just to demonstrate the use of 

                                                                        ; External variable, otherwise we can 

                                                                        ; Check it through CX register which

                                                                        ; contains the divisor.

JE        ERROR_EXIT   ; IF divisor = 0, exit procedure

MOV  BX, AX   ; Save low order of dividend

MOV  AX, DX; Position high word for 1st divide

MOV  DX, 0000h; Zero DX

DIV     CX; DX: AX/CX, quotient in AX,

                                 ; Remainder in DX

MOV BP, AX                  ; transfer high order of final result to BP

MOV AX, BX                 ; Get back low order of dividend. Note 

                                         ; DX contains remainder so DX: AX is 

                                         ; The actual number

DIV CX; DX: AX/CX, quotient in AX,

                                         ; 2nd remainder that is final remainder 

                                         ; in DX

MOV CX, DX                 ; Pass final remainder in CX

MOV DX, BP                  ; Pass high order of quotient in DX

                                         ; AX contains lower word of quotient

CLC                                 ; Clear carry to indicate valid result

JMP EXIT                        ; Finished

 

ERROR_EXIT: STC   ; Set carry to indicate divide by zero

EXIT:   RET 

SMART_DIV   ENDP 

PROCEDURES   ENDS 

END 

Discussion: 

Procedure accesses the data item named DIVISOR that is defined in the main consequently the statement EXTRN DIVISOR: WORD is essential for informing assembler that this data name is found in some other segment. Data-type is defined to be of word type. Please consider that DIVISOR is enclosed in same segment name as that of main which is DATA_SEG and procedure is in a PUBLIC segment.


Related Discussions:- Example on public divisor

Diffeomorphism, A different smooth structure on R: Show that (U, f) given b...

A different smooth structure on R: Show that (U, f) given by U = R, f : x -> x3, is a local chart of the topological manifold M = R which is not a member of the standard smoo

Discuss the concept of segmentation, Discuss the concept of segmentation? ...

Discuss the concept of segmentation? Segmentation is method for the non contiguous storage allocation. This is different from paging as this supports user's view of his program

What are sequential algorithms, What are Sequential Algorithms? The cen...

What are Sequential Algorithms? The central assumption of the RAM model is that instructions are implemented one after   another, one operation at a time. Accordingly, algorith

Move a layout cell, If you need to line up the cells next to each other you...

If you need to line up the cells next to each other you can resize and move layout cells as you need. You can change size of a layout cell by using one of its resize handles. Yo

Explain definition of fibonacci, Explain definition of fibonacci Where ...

Explain definition of fibonacci Where an input value gives a trivial result, it is returned directly, otherwise the function calls itself, passing a changed version of the inpu

Discuss the advantages of firewalls, Discuss the advantages of Firewalls ...

Discuss the advantages of Firewalls Firewalls also offer additional protection to local users who like to browse or surf out from the Intranet to the Internet, by acting as pro

In which network configuration all data/information pass, A distributed net...

A distributed network configuration in which all data/information pass through a central computer is (A)  Bus network                            (B) Star network (C)  Rin

What is the maximum number of fragments, What is the maximum number of frag...

What is the maximum number of fragments that can result from a single IP Datagram? Explain. To fragment a datagram for transmission across a network, a router utilizes the netw

Describe about sole access protocol, Q. Describe about Sole Access Protocol...

Q. Describe about Sole Access Protocol? The atomic operations that have conflicts are handled with the help of sole access protocol. The method used for synchronization in this

How are control signals achieve the particular operation, Q. How are contro...

Q. How are control signals achieve the particular operation? The control signals are applied directly as binary inputs to the logic gates of the logic circuits. All these input

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