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 is application analysis, What is application analysis? The purpose...

What is application analysis? The purpose of analysis is to understand the problem so that a correct design can be constructed. The application analysis focuses on major applic

EDC, Conparision of masfet and jfet

Conparision of masfet and jfet

Explain the application of e-commerce in home banking, Explain the applicat...

Explain the application of E-Commerce in Home Banking. Home Banking: E-commerce is employed in Home Banking like one call or one click. Internet banking or online bank

Define race condition, Define race condition.  When several process acc...

Define race condition.  When several process access and manipulate similar data concurrently, then the outcome of the implementation depends on particular order in which the ac

What is tape backup, Q. What is Tape Backup? Magnetic tapes are used th...

Q. What is Tape Backup? Magnetic tapes are used these days in computers for the below purposes: Backing up data stored in disks. It is essential to regularly save data s

Slower layer to a faster layer, Given a four level hierarchical storage sys...

Given a four level hierarchical storage system consisting of: cache,  primary storage, secondary storage, and tertiary storage. Suppose the following:  programs may be executed on

Define a register, Define a register. Ans:  Register:   A register...

Define a register. Ans:  Register:   A register contain a group of flip-flops and gates which effect their transition. The flip flops hold the binary information and the g

Define the key features of hop field neural networks, a. Define the Key fea...

a. Define the Key features of Hop field Neural Networks. b. Compare and contrast among Neural Networks and Expert systems in terms of knowledge representation, acquisition and e

CONVERT NUMBER TO ALPHABET, HOW TO CONVERT THE NUMBER INTO ALPHABET USING C...

HOW TO CONVERT THE NUMBER INTO ALPHABET USING C/C++ PROGRAM

Compare memory mapped i/o with i/o mapped i/o, Compare memory mapped I/O wi...

Compare memory mapped I/O with I/O mapped I/O. Memory Mapped I/O Scheme: In this scheme there is only one address space. Address space is stated as all possible addresses tha

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