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 is morphing, What is Morphing Differences in appearance between ke...

What is Morphing Differences in appearance between key frames are automatically calculated by computer - this is called MORPHING or TWEENING. Animation is ultimately RENDERED (

Explain overlay structured program, Explain overlay structured program ? ...

Explain overlay structured program ? A program having overlays is termed as overlay structured program, here an overlay is a part of program that has similar load origin as som

Design a model for object oriented development, Design a model for object o...

Design a model for object oriented development The model for object oriented development could be shown as in Figure. It could be classified as dynamic / static and physical /

How would you kill a process, How would you kill a process? The "kill" ...

How would you kill a process? The "kill" command takes the PID as one argument; this signifies which process to terminate. The PID of a process can be got using "ps" command

Defined for a push button fields in the screen attributes, What is to be de...

What is to be defined for a push button fields in the screen attributes? A function code has to be described in the screen attributes for the push buttons in a screen.

Project cost, I need help in my M.Sc project ,but im wondering how the cost...

I need help in my M.Sc project ,but im wondering how the cost is calculated

What is functional modelling, What is  Functional Modelling  We know ...

What is  Functional Modelling  We know that Data flow modelling is an ordinary technique used for analysis of a problem in software engineering. It is very useful for analyzi

What are the major characteristics of a pipeline, What are the major charac...

What are the major characteristics of a pipeline? The major characteristics of a pipeline are: a) Pipelining cannot be executed on a single task, as it works by splitting mu

Difference between synchronous and asynchronous updates, What is the differ...

What is the difference between Synchronous and Asynchronous updates? A program asks the system to perform a particular task, and then either waits or doesn't wait for the task

What is system prompt, Q. What is System Prompt? On loading (or Switchi...

Q. What is System Prompt? On loading (or Switching to) DOS, the screen displays C :\>, C>, A :\> or a similar message. The message displayed by DOS is called DOS Prompt or Sys

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