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 about karnaugh maps, Q. Explain about Karnaugh Maps? Karnaugh m...

Q. Explain about Karnaugh Maps? Karnaugh maps are a suitable way of expressing and simplifying Boolean function of 2 to 6 variables. The stepwise process for Karnaugh map is.

List out the evaluation order for the expression tree, Draw an expression t...

Draw an expression tree for the string. f + (x+y) *((a+b)/(c-d)). Indicate the register requirement for each node and list out the evaluation order for the expression tree. For

Illustrate the following list of consideration of Laptop, Illustrate the fo...

Illustrate the following list of consideration of laptop computers The following is a list for consideration: -  The processor must consume as little power as possible thus

Storing a word in memory - computer architecture, Storing a word in Memory:...

Storing a word in Memory: That is similar process with fetching a word from memory. The required address is loaded into the MAR After that data to be written are lo

Decision tree learning, Decision Tree Learning: Furthermore there is s...

Decision Tree Learning: Furthermore there is specified in the last lecture such as the representation scheme we choose to represent our learned solutions and the way that we l

Define rom, Define ROM? It is a non-volatile memory. It includes only r...

Define ROM? It is a non-volatile memory. It includes only reading of stored data.

Advanced microprocessor, Write a program to mask bits D3D2D1D0 and to set ...

Write a program to mask bits D3D2D1D0 and to set bits D5D4 and to invert bits D7D6 of the AX register.

What search method would be most appropriate and why, (a) Describe fully in...

(a) Describe fully in your own words the following terms: (i) Turing Test (ii) Agent (iii) Utility-based agent (b) A Mars rover has to leave the lander, collect rock sample

Develop the website, In this part you are required to develop the website t...

In this part you are required to develop the website that you designed in Your written report must describe any changes that you make to theoriginal plan with justification.

Describe _blank, Q. Describe _blank, _self, _parent and _top tags? Thes...

Q. Describe _blank, _self, _parent and _top tags? These all are attributes of tag. The below example describes each of these attributes. <

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