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

Printers, Printers are devices which put ink on paper in a controlled manne...

Printers are devices which put ink on paper in a controlled manner. They manually produce photographic images orreadable text. Printers have gone through a large transition in tech

State about the machine language programs, State about the machine language...

State about the machine language programs The computer can run only machine language programs, one needs to translate above programs to machine language programs. To translate

How can we send data to external programs, How can we send data to external...

How can we send data to external programs? Using SPA/GPA parameters(SAP memory). Using EXPORT/IMPORT data (ABAP/4 memory)

Vector-vector instructions-vector processing, Vector-Vector Instructions ...

Vector-Vector Instructions In this type, vector operands are fetched by the vector register and saved in another vector register. These instructions are indicated with the foll

What is web mail services, What is Web Mail Services? Web-based email s...

What is Web Mail Services? Web-based email services are also called as web mail or HTTP email. Unlike traditional POP email, web mail can be accessed from any PC using any web

Registers - processor, These will be independent of each other and will not...

These will be independent of each other and will not affect to each other, and so they can be fed into two different implementations units and run in parallel. The ability to remov

What are the phases of video production, Question 1: a) What are the p...

Question 1: a) What are the phases of video production? b) What do you mean by storyboards? c) What are the differences between Point and Area (or Paragraph) Text?

Fundamental issues of concerns for instruction set design, Q. Fundamental i...

Q. Fundamental issues of concerns for instruction set design? A number of fundamental issues of concerns for instruction set design are: Completeness: For an early design

Explain a macro, Explain a macro Macro is a preprocessor directive, als...

Explain a macro Macro is a preprocessor directive, also called as macro definition takes the following general form:  #define identifier string

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