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

Excess 3 codes, Explain Excess 3 Codes Ans. Excess 3 Codes 1....

Explain Excess 3 Codes Ans. Excess 3 Codes 1. This is the other form of BCD code. All decimal digits are coded in 4 bit binary code. 2. The code for all decimal di

Define sr flip flop - sr latch with nor gate, Define SR Flip Flop - SR latc...

Define SR Flip Flop - SR latch with NOR Gate? The SR Flip flop neither is a circuit with two cross-coupled NOR gates or two cross-coupled NAND gates. SR

Which transistor is used in every cell of eprom, Floating gate Avalanche In...

Floating gate Avalanche Injection MOS (FAMOS) transistor is used in every cell of EPROM.

Mobile cameras, Mobile cameras are characteristically low-resolution Digita...

Mobile cameras are characteristically low-resolution Digital cameras integrated in mobile set. Photographs are characteristically only good enough to show on low resolution mobile

Bounded rationality in decision making, Q.What do you mean by the term 'bou...

Q.What do you mean by the term 'bounded rationality in decision making'? Maximizing the outcomes of a decision is an ideal stage. Habitually it is an impossible thing. The caus

What is a thread, What is a thread? A thread otherwise called a lightwe...

What is a thread? A thread otherwise called a lightweight process (LWP) is a basic unit of CPU utilization, it comprises of a thread id, a program counter, a register set and a

Incorporating vbscript into htmlpage, To add scripts into your Web pages ta...

To add scripts into your Web pages tag is used. The tag signifies the start of the script section, whereas marks the end. An example of this is d

What are the advantages of interviewing, What are the Advantages of Intervi...

What are the Advantages of Interviewing - Opportunity to motivate interviewee to give open and free answers to analyst's questions    -  allows analyst to probe for more f

What is the purpose of iop, What is the purpose of IOP. The purpose of ...

What is the purpose of IOP. The purpose of IOP is to given an independent path way for transfer of information among external and internal memory.

State the protected mode interrupt, State the Protected mode interrupt ...

State the Protected mode interrupt In protected mode, interrupts have exactly same assignments just like in real mode though the interrupt vector table is different.  Instead

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