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 are spa/gpa parameters (sap memory), What are SPA/GPA parameters (SAP ...

What are SPA/GPA parameters (SAP memory) SPA/GPA parameters are field values saved globally in memory.  There are two ways to use SPA/GPA parmeters: By setting field attrib

Rdbms, what is physical data structure in internals of rdbms?

what is physical data structure in internals of rdbms?

Explain advantage of static storage class, Explain advantage of static stor...

Explain advantage of static storage class The second and more subtle use of 'static' is in connection with external declarations. With external constructs it provides a privacy

Data dictionary, data dictionary for online banking system in software engi...

data dictionary for online banking system in software engineering

What are the various components in sequence diagrams, ? Actor: Actor shows ...

? Actor: Actor shows an external user / end user who interact with the system. ? Object: Object is shown by one of components of the system. ? Unit: A unit is a subsystem, o

What is tcas, tCAS is the number of clock cycles required to access a parti...

tCAS is the number of clock cycles required to access a particular column of data in SDRAM. CAS latency is the column address strobe time, sometimes referred to as tCL.

Define the resolution of externally defined symbols, Resolution of external...

Resolution of externally defined symbols is performed by Ans. By Linker resolution of externally defined symbols is performed.

What is c++ reference and java final, What is C++ reference and JAVA final?...

What is C++ reference and JAVA final? Association ends must be bound at initialization and cannot be altered. C++ references can fully enforce these semantics, and the JAVA fin

What is the advantage of buffering, What is the advantage of buffering? Is ...

What is the advantage of buffering? Is buffering always effective? Justify your answer with help of an example. I/O buffer: One type of input-output requirement arises from d

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