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

How to load dos from hard disk, Q. How to Load DOS from Hard Disk? To L...

Q. How to Load DOS from Hard Disk? To Load DOS from the Hard Disk of your computer, follow these steps: 1. Turn on the power ON/OFF switch of the CPU unit of your PC the pow

Explain the structure of virtual enterprise, Explain the Structure of Virtu...

Explain the Structure of Virtual Enterprise. The effective enterprise can be a suitable structure to explore the emerging opportunities for creating value within the informatio

Strategy used for the project design, This project is divided to two parts ...

This project is divided to two parts (hardware and software) each with is subtask and consideration was given in all areas in order to meet the target specification. Solutions are

What does the term entrepreneurship mean, 1) What does the term entrepreneu...

1) What does the term entrepreneurship mean to you?  What are some basic characteristics of entrepreneurs? 2) What is e-commerce?  Why are the Internet economy and e-commerce he

Explain about hybrid model, Q. Explain about Hybrid model? Hybrid model...

Q. Explain about Hybrid model? Hybrid models are normally tailor-made models suiting to particular applications. In fact these fall in category of mixed models. These type of a

What is null pointer, What is NULL POINTER Inside main, a FILE * called...

What is NULL POINTER Inside main, a FILE * called file. Afterwards, the fopen function, passing it the path to data file, as well as "r", only intending to read from the file.

Why is translation look-aside buffers important, Why is Translation Look-as...

Why is Translation Look-aside Buffers (TLBs) important? The implementation of page-table is completed in the following manner: Page table is maintained in main memory.

Define grammar of a language, Define Grammar of a language. A formal la...

Define Grammar of a language. A formal language grammar is a set of formation rules which describe that strings formed from the alphabet of a formal language are syntactically

What is the session, What is the session.  Session is a collection of v...

What is the session.  Session is a collection of various groups of method. Every session is assigned to a single control terminal. This terminal is either a pseudo-device. or a

Implement or, Q. Write a program to implement OR, NOR, AND and NAND gates ...

Q. Write a program to implement OR, NOR, AND and NAND gates using and without using Bit wise operator. The menu should be as follows: I. Using Bit Wise operator II. Withou

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