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 are the 3 things that are needed to specify a route, 1. URL Pattern - ...

1. URL Pattern - You can contain placeholders in a URL pattern so that variable data can be passed to the request handler without having a query string. 2. Handler - The handle

What is the meaining of action implementing instruction, Action implementin...

Action implementing instruction's meaning are a actually carried out by ? Ans. By instruction execution, the meaning of action implementing instruction is actually carried out.

Phython, super ascii string checker

super ascii string checker

Create a complete mp3 player, Write a GUI/MP3 program called MP3Random that...

Write a GUI/MP3 program called MP3Random that reads all MP3 les in a directory and plays them in random order. The GUI should have a little window with: 1. A button Next that s

Minimization of the logic function using NORgates, Minimize the logic funct...

Minimize the logic function F(A, B, C, D) = ∑ m(1,3,5,8,9,11,15) + d(2,13) using NOR gates with help of K-map. Ans. Realization of given expression by using NOR gates: In POS

Advntages of parallel processing oversequential computation, Advntages of p...

Advntages of parallel processing oversequential computation Parallel computing has the following benefits over sequential computing: i)    Accumulate time ii)   Solves b

Types of port, Define port? Give types of port available? Ans: An I/O in...

Define port? Give types of port available? Ans: An I/O interface consists of circuitry needed to connect an I/O device to computer bus. One side consists of a data path contain

Give the decription of user case, Give the decription of user case A us...

Give the decription of user case A use case is a description of the set of the sequence of actions which a system performs to produce an observable result which is of a value t

Where particular header ends & next item begins of ipv6, As IPV6 contain mu...

As IPV6 contain multiple headers, how does it know where particular header ends and next item begins? Several headers types contain fixed size. For illustration a base header h

DBMS, what is dbms goal?

what is dbms goal?

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