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

Illustrate third generation computers, Q. Illustrate third Generation Compu...

Q. Illustrate third Generation Computers? The third generation has fundamental hardware technology: Integrated Circuits (ICs). To understand what are Integrated circuits let's

Illustrate about the problem statement, Illustrate about the Problem statem...

Illustrate about the Problem statement Problem statement would not be incomplete, inconsistent and ambiguous. Try to state the requirements precisely and point to point. Do no

Pebble merchant, There is a pebble merchant.He sells the pebbles,that are u...

There is a pebble merchant.He sells the pebbles,that are used for shining the floor.His main duty is to take length of the room''s sides. program 1 : package test.padovanstring

Spmd model for programming, Q. SPMD model for programming? A normal ass...

Q. SPMD model for programming? A normal assumption was that it must be possible and not too hard to capture the SPMD model for programming MIMD computers in data parallel langu

C PROGAMM, CODING FOR...WHAT IS THE PROBABILITY THAT A CARD DRAWN FROM A PA...

CODING FOR...WHAT IS THE PROBABILITY THAT A CARD DRAWN FROM A PACK OF 52 CARDS WILL BE A DIAMOND OR A KING .

Where can i find my user preferences?, Customized User Preferences offer tr...

Customized User Preferences offer tremendous versatility to your individual Bugzilla experience. Let's plunge into what you can do! The first step is to click the "Edit prefs" link

What is file scope, Explain File scope File scope: The variables and ...

Explain File scope File scope: The variables and functions with file scope appear outside any block or list of parameters and are accessible from any place in the translation

Explain about candidate check, The process which is underlined throughout t...

The process which is underlined throughout the check of base data is called as candidate check. When performing candidate check performance varies either towards the positive side

A global variable is a variable, A global variable is a variable A globa...

A global variable is a variable A global variable is declared outside the body of each function.

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