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

Digital forensic investigation, (a) Name five important activities invol...

(a) Name five important activities involved in a digital forensic investigation. (b) Briefly describe the three types of data that a forensic examiner has to work with. Whic

Operations from events, Operations from events During analysis, events...

Operations from events During analysis, events which are sent to target objects. An operation on these object are presented as labels on transitions and should not be explicit

Convert the following binary numbers into hexadecimal, Q. Convert the follo...

Q. Convert the following BINARY numbers into HEXADECIMAL, double check by converting the result HEXADECIMAL to BINARY. a) 1101.0110 b) 1011.11010 c) 11110.01011

Use of large register file, Generally the register storage is faster than c...

Generally the register storage is faster than cache andmain memory. Also register addressing uses much shorter addresses than addresses for cache and main memory. Though the number

What are the benefits of electronic data interchange process, What are the ...

What are the benefits of electronic data interchange process? Advantages of Electronic Data Interchange: a. EDI replaces paper transactions along with electronic transac

Define colour depth in graphic display system, Q. Define Colour Depth in gr...

Q. Define Colour Depth in graphic display system? It is clear that an image contains an array of pixels.  If we tell which pixels are 'off' and which are 'on' to the monitor, i

Explain simple interfacing, Q. Explain Simple Interfacing? The followin...

Q. Explain Simple Interfacing? The following is a sample of the coding, used for procedure interfacing: PUBLIC CUROFF             _TEXT SEGMENT WORD PUBLIC 'CODE'

Draw state diagram, Draw the state diagram of a process from its creation t...

Draw the state diagram of a process from its creation to termination, including all transitions, and briefly elaborate every state and every transition. When a process executes

What is an "on request field" statement, What is an "on request Field" stat...

What is an "on request Field" statement? ON REQUEST The ABAP/4 Module is known as only if the user has entered the value in the field value as the last screen display .Th

Participate in grid computing, Different systems that can participate in gr...

Different systems that can participate in grid computing as platform are:  Windows 3.1, 95/98, NT, 2000 XP , DOS, OS/2, , supported by  Intel ( x86); Mac OS  A/UX (Unix)  sup

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