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

A switch statement , Which is more efficient, a switch statement or an if e...

Which is more efficient, a switch statement or an if else chain? Ans) The differences, if any, are likely to be small. The switch statement was designed to be efficiently impl

What is switched mode power supply, Q. What is Switched Mode Power Supply? ...

Q. What is Switched Mode Power Supply? SMPS is the unit into which electric supply from the mains is connected to your PC and this supplies DC to internal circuits. It is more

What do you mean by work flow automation, What do you mean by work flow aut...

What do you mean by work flow automation? Work Flow Automation: Organizations frequently standardize processes across the association and encourage users to accept them. E

Vector-memory instructions-vector processing, Vector-Memory Instructions : ...

Vector-Memory Instructions : When vector operations with memory M are executed then these are vector-memory instructions. These instructions are denoted with the many function mapp

What is the use of status command, What is the use of status command, data ...

What is the use of status command, data output command, and data input command. A status command is used to test a variety of status conditions in the interface and the periphe

Vector processing, Vector Processing  A vector is an ordered set of the...

Vector Processing  A vector is an ordered set of the similar type of scalar data items. The scalar item can be a floating point number, a logical value or an integer. Vector pr

i use server session pools and connection consumers, When should I use ser...

When should I use server session pools and connection consumers? Ans) WebLogic JMS executes an optional JMS facility for defining a server-managed pool of server sessions. This

Define restoring method, Define restoring method? The hardware method j...

Define restoring method? The hardware method just explained is called the restoring method. The reason for this name is that the partial reminder is restored by adding the divi

Addition of array elements using two processors, Q. Addition of array eleme...

Q. Addition of array elements using two processors? In this example we have to find sum of all elements of an array A of size n. We will divide n elements in 2 groups of roughl

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