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 open database connectivity, What is Open Database Connectivity (ODB...

What is Open Database Connectivity (ODBC) It happens that in addition to conventional or most popular database management systems, many companies go for proprietary software c

How many input ANDand OR gates are required, How many two input AND gates a...

How many two input AND gates and two input OR gates are required to realize Y = BD+CE+AB ? Ans. Here three product terms, therefore three AND gates of two inputs are needed.

What is interactive reporting, What is interactive reporting? It helps ...

What is interactive reporting? It helps you to make easy-to-read lists.  You can view an overview list first that having general information and give the user with the possibil

What is a table attribute, What is a Table attribute? The table's attr...

What is a Table attribute? The table's attributes verifies who is responsible for maintaining a table and which types of access are permitted for the table.  The most signific

What is parsing, What is parsing? Parsing is the process of analyzing a...

What is parsing? Parsing is the process of analyzing a text, formed of a sequence of tokens, to find out its grammatical structure regarding a specified formal grammar. Parsing

Determining the error models that affect program execution, In critical com...

In critical computer applications the correctness of a delivered output and the continuity of the required service beside the speed of the used CPU are the most important measures

What is ordered directive, Q. What is Ordered directive? This directive...

Q. What is Ordered directive? This directive is used in combination with for and parallel for directives to cause an iteration to be executed in order that it would have been h

What are the categories of radio communication, What are the categories of ...

What are the categories of Radio communication 1.  Sky wave or ionosphere communication 2.  Line-of-sight (LOS) microwave communication limited by horizon 3.  Troposphere

VLSI implementation of control unit, Q. VLSI Implementation of Control Unit...

Q. VLSI Implementation of Control Unit? A main potential advantage of RISC is VLSI implementation of microprocessor. VLSI Technology has decreased the delays of transfer of inf

What are the "field" and "chain" statements, What are the "field" and "chai...

What are the "field" and "chain" Statements? The FIELD and CHAIN flow logic statements let you Program your own checks. FIELD and CHAIN tell the system which fields you are ch

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