Rules for calling assembly subroutines from, Computer Engineering

Assignment Help:

Q. Rules for calling assembly subroutines from?

The rules for calling assembly subroutines from C are:

(i)  Memory model: The calling program and called assembly programs should be defined with the same memory model. One of the most common convention which makes NEAR calls is .MODEL SMALL, C.

(ii) The naming convention generally involve an underscore (_) character preceding the segment or function name. However this underscore is not used while making a call from C function. Please be careful about Case-sensitivity.

You should give a specific segment name to code segment of your assembly language subroutine. The name differs from compiler to compiler. Microsoft C and Turbo C need the code segment name to be_TEXT or a segment name with suffix_TEXT. Also it needs the segment name _DATA for data segment.

(iii)  Arguments from C to assembly language are passed through stack.

For illustration a function call in C:

function_name (arg1, arg2, ..., argn) ;

Would push the value of every argument on the stack in reverse order. Which is, the argument argn is pushed first and arg1 is pushed last on stack. A pointer or a value to a variable can also be passed on the stack. Because the stack in 8086 is a word stack thuspointers and values are stored as words on stack or multiples of the word size in case value exceeds 16 bits.

(iv) Youmust remember to save any special purpose registers (like CS, DS, SS, ES, BP, SI or DI) which may be modified by the assembly language routine. If you fail to save them then you might have unexplainable / undesirable consequences when control is returned to C program. Though there is no need to save AX, BX, CX or DX registers as they are considered volatile.

(v)   Please note the compatibility of data-types:

            char Byte (DB)

            int Word (DW)

            long Double Word (DD)

(vi) Returned value: The called assembly routine uses the followed registers for returned values:

            char   AL

            Near/ int   AX

            Far/ long DX: AX


Related Discussions:- Rules for calling assembly subroutines from

What is model, What is model?  A universe together with an assignment o...

What is model?  A universe together with an assignment of relations to relation symbol is known as a model.  A model M is a tuple (U, P1, P2..Pk), where U is the universe and P

Define strategy procedure, Q. Define Strategy Procedure? The strategy p...

Q. Define Strategy Procedure? The strategy procedure is called when loaded into memory by DOS or whenever controlled device request service. The major purpose of the strategy i

Describe all elements of a state-chart diagram, a. Initial State: The first...

a. Initial State: The first or the default state the object is in. It is indicated by a solid circle. b. State: All the states an object can go in are mentioned in this. It is

Difference between shadow and override in programming, Overriding tell us o...

Overriding tell us only the methods, but shadowing tells us the entire element.

In what way the protection fault handler concludes, In what way the protect...

In what way the protection fault handler concludes? After finishing the implementation of the fault handler, it sets the change and protection bits and clears the copy on write

What layers are covered under end to end layer connectivity, What layers ar...

What layers are covered under end to end layer connectivity? The layers 4 to 7 of ISO-OSI reference model communicate along with peer entities into the end systems. There is n

What are the basic components of an expert system, Q. What are the basic co...

Q. What are the basic components of an expert system? ANSWER: There are three components of components: Information, people, and IT components. Information kinds are domain exp

Flow charts, n=(x*2)/(1=0) the value x=0 and is used to stop the algerithin...

n=(x*2)/(1=0) the value x=0 and is used to stop the algerithin.The calculation is repeated using values of x=0 is input. There is only a need to check for error positions. The va

What are the objectives of usb, What are the objectives of USB? a) Simp...

What are the objectives of USB? a) Simple b) Low cost c) Easy to use d) Supports wide range of data transfer characteristics e) Plug and play mode of operation

Define router, A router is used to Distributes information among networ...

A router is used to Distributes information among networks.

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