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

Explain deadlock detection algorithm for single instance, Explain deadlock ...

Explain deadlock detection algorithm for single instance of each resource type. For single instance of each resource type the deadlock detection algorithm: (i) Maintain a wa

Verilog, http://www.cse.psu.edu/~dheller/cmpen331/Homework/Homework4.htmlwo...

http://www.cse.psu.edu/~dheller/cmpen331/Homework/Homework4.htmlwords accepted#

Illustrate what is pascal''s principle, Illustrate what is pascal's princip...

Illustrate what is pascal's principle? Answer:- Pascal's Principle declares that the pressure is transmitted evenly through a liquid. That's why when you pump up a balloon

Basic characteristics of an experts system, An experts systems must perform...

An experts systems must perform well that is achieve the same levels of performance in the domain of interest that human experts can achieve. But simply producing good so

Explain about the acoustic tablet, Explain about the Acoustic tablet Ac...

Explain about the Acoustic tablet Acoustic (or sonic) tablet use sound waves to detect a stylus position. Either strip microphones or point microphones can be used to detect th

Table - tr and td tags, Table, TR and TD Tags Three tags form the essen...

Table, TR and TD Tags Three tags form the essential ingredients for creating a table. TABLE: This is the main tag. It tells the browser that a table follows. It has attrib

Define opcode and operands, Q. Define Opcode and Operands? The most com...

Q. Define Opcode and Operands? The most common fields which are found in instruction formats are: Opcode: (What operation to perform?)  An operation code field cal

What is load-through or early restart, What is load-through or early restar...

What is load-through or early restart? When a read miss happens for a system with cache the needed word may be sent to the processor as soon as it is read from the main memory

How to make a datapool, When producing a datapool, you state the kinds of d...

When producing a datapool, you state the kinds of data (called data types) that the script will send for example, customer names, addresses, and unique order numbers or product nam

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