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

Accept commands from the user, Your shell must accept commands from the use...

Your shell must accept commands from the user. The first step to implement this will be reading a line of input. This section will focus on what to do with the line of input after

Using library methods returns number of threads, Q. Using Library methods r...

Q. Using Library methods returns number of threads? #include void subdomain(float x[ ], int istart, int ipoints) { int i; for (i = 0; i x[istart+i] = 123.456;

Define the thread libraries, Q. Define the Thread libraries? The most d...

Q. Define the Thread libraries? The most distinctive representatives of shared memory programming models are thread libraries present in most of modern operating systems. Illus

Difference among the static rams and dynamic ram, Difference among the Stat...

Difference among the Static rams and dynamic rams. Static RAM: It is costly as each bit of memory will take around 6 CMOS transistors. More speedy as transistors are us

What is collection objects in vb, Likewise to arrays but is preferred over ...

Likewise to arrays but is preferred over an array due to of the following reasons. 1. A collection objects uses less Memory than an array. 2. It gives methods to add and dele

Perceptrons in artificial neural network, Perceptrons in artificial neural ...

Perceptrons in artificial neural network- Artificial intelligence: The weights in any ANN are always only real numbers and the learning problem boils down to selecting the best

Online Library management system, Please help me to do mini Project about t...

Please help me to do mini Project about this by creating simple front and back end by using html and css and any programming language like python,php to connect those front end and

Data can be moved using a ''write:'' statement, Data can be moved from one ...

Data can be moved from one field to another using a 'Write:' Statement and stored in the desired format.  Write: Date_1 to Date_2 format DD/MM/YY.

Data structure, Sort the following list using selection sort technique, dis...

Sort the following list using selection sort technique, displaying each step. 20,12,25,6,10,15,13

Java, what is inheritence and all types in java?

what is inheritence and all types in java?

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