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

Define organizing, Q. Define Organizing? Grouping of related activities...

Q. Define Organizing? Grouping of related activities together, Identification of required activities and forming departments and coordinating various departments with the estab

Explain about the various uses of artificial intelligence, Discuss the use ...

Discuss the use of Artificial intelligence techniques in E-Commerce applications. Explain about the various uses of Artificial Intelligence in Medicine field. Justify it with pr

There no polymorphic-type response, Why is there no polymorphic-type respon...

Why is there no polymorphic-type response from a create() or find() method? Ans) The EJB Specification forbids this behavior, and the weblogic.ejbc compiler checks for this beha

Explain call and return statements, Q. Explain Call and Return Statements? ...

Q. Explain Call and Return Statements? CALL:       CALL X    Procedure Call to procedure/function named X   CALL instruction causes the following to happen:  1.  Decre

Bidirectional search, Bidirectional Search: We've concentrated so far ...

Bidirectional Search: We've concentrated so far on the searches where the point of view for the search is to find a solution, but not the path to the solution. Like any other

Bresenham''s line drawing algorithm, what are advantages and disadvantages ...

what are advantages and disadvantages of bresenham''s line drawing algorithm?

Determine the framed data including a parity bit, Determine the Framed data...

Determine the Framed data including a parity bit   For illustration when even parity is chosen, parity bit is transmitted with a value of 0 if the number of preceding

Find out how many words can be formed from daughter, Find out how many word...

Find out how many words can be formed out of the letters of the word DAUGHTER such that (i)  The vowels are all time together. (ii)  The vowels occupy even places.   Ans:

Explain the scan code, What is meant by scan code?  When a key is press...

What is meant by scan code?  When a key is pressed on the keyboard, the keyboard controller places a code take to the key pressed into a part of the memory known as the keyboar

Applications of electronic data interchange in business, What are the appli...

What are the applications of Electronic Data Interchange in business? The applications of Electronic Data Interchange are as given below: 1. Organisations that use EDI 2

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