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 types of data entry services do you perform, What types of data entry ...

What types of data entry services do you perform? Our business is to understand what data you require entered and in what particular format. After an initial analysis is perfor

Interpreted language and a compiled language, Difference between an interpr...

Difference between an interpreted language and a compiled language? Ans) A compiled language is written and then run by a compiler which checks its syntax and compresses it int

What is building and running mpi programs, Q. What is Building and Running ...

Q. What is Building and Running MPI Programs? MPI parallel programs are written using conventional languages such as FORTRAN and C. One or more header files like 'mpi.h' may be

Pulse train, brief explanation on pulse train

brief explanation on pulse train

What are the graphics adapters, Graphics adapters: Video card converts...

Graphics adapters: Video card converts digital output from computer into an analog video signal and transmits the signal through a cable to monitor also known as a graphics ca

Explain complex instruction set computer, CISC (Complex Instruction Set Com...

CISC (Complex Instruction Set Computer) CISC stands for Complex Instruction Set Computer. If the control unit having a number of micro-electronic circuitry to make a set of con

What is a subroutine, What is a subroutine? A subroutine is a named, in...

What is a subroutine? A subroutine is a named, independent section of C code that performs a particular task and optionally returns a value to the calling program.

Returns the information about tasks running, Returns the information about ...

Returns the information about tasks running int info = pvm_tasks( int where, int *ntask, struct pvmtaskinfo **taskp ) struct pvmtaskinfo {  int ti_tid; int ti_pt

Define word/byte rotation and xor bit masking encryption, Define Word/byte ...

Define Word/byte rotation and XOR bit masking encryption technique to make sure secured transactions on the net? Word/byte rotation and XOR bit masking: In this process t

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