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 the exceptions encountered for fp operation, What are the exceptio...

What are the exceptions encountered for FP operation? The exceptions encountered for FP operation are overflow, underflow. /0, inexact and invalid values.

Explain an expression tree with a suitable example, What is an expression t...

What is an expression tree? How an expression is evaluated using an expression tree? Algebraic expressions is as given here a/b+(c-d)e That has an inherent tree-like structure

Syntax of $display and $strobe, Syntax of $display and $strobe -  $disp...

Syntax of $display and $strobe -  $display ("format_string", par_1, par_2, ... ); -  $strobe ("format_string", par_1, par_2, ... ); -  $monitor ("format_string", par_1, p

What is block scope, What is Block scope Block scope: The variables w...

What is Block scope Block scope: The variables with block scope appear in a block or within the list of formal parameter declarations in a function definition. It is visible

Importance of decentralization, What are the importance of Decentralization...

What are the importance of Decentralization? a) Self responsibility b) Work autonomy c) Quick decisions d) Continuous involvement and e) Better control. What are the differe

Define is a personality, Define is a Personality. In order to allow pro...

Define is a Personality. In order to allow programs coming other operating system to be run in Linux, Linux supports the idea of personalities. Every method is assign to an imp

Explain the feasibility study, Explain the Feasibility Study This inclu...

Explain the Feasibility Study This includes writing a report to convince management of the merits of adopting proposed new system. Some features of the study comprise: T

What is application software, What is application software? Give example. ...

What is application software? Give example. Application programs are usually written in a high level programming language, in which the programmer states mathematical or text p

Overcoming global issues in e-commerce, E-commerce advance tremendous chanc...

E-commerce advance tremendous chance by permitting industrialist to buy Materials at a low price internationally. Also they give companies the opportunity to sell to universal stor

What is rational robot, Rational Robot is a whole set of components for aut...

Rational Robot is a whole set of components for automating the testing of Microsoft Windows client/server and Internet applications. The major component of Robot lets you start

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