12,897,830 members (68,258 online)
alternative version

#### Stats

51.3K views
12 bookmarked
Posted 15 Jun 2005

# Convert Float to Int using Assembly Language Programming

, 15 Jun 2005 CPOL
 Rate this:
An article on Converting Float value to an integer value trimming off the decimal part

## Introduction

This program takes a floating point value as input and converts it into an integer by trimming the decimal point. Please e-mail your suggestion to Jayadev at jayadevmv@rediffmail.com.

## Background

The code uses the tag `_asm `in VC++. Using the assembly code, the floating point value is converted into an integer value.

## Using the Code

The code is very simple and it can be plugged into any other code easily.

The function `ftoi `looks like this:

```int ftoi(float flt)
{
int i;
_asm
{
mov  eax,flt; //loaded mem to acc

rcl  eax,1;   //left shift acc to remove the sign

mov  ebx,eax; //save the acc

mov  edx,4278190080; //clear reg edx;

and  eax,edx; //and acc to retrieve the exponent

shr  eax,24;
sub  eax,7fh; //subtract 7fh(127) to get the actual power

mov  edx,eax; //save acc val power

mov  eax,ebx; //retrieve from ebx

rcl  eax,8;     //trim the left 8 bits that contain the power

mov  ebx,eax; //store

mov  ecx, 1fh; //subtract 17 h

sub  ecx,edx;
mov  edx,00000000h;
cmp  ecx,0;
je   loop2;
shr  eax,1;
or   eax,80000000h;
loop1:
shr  eax,1; //shift (total bits - power bits);

sub  ecx,1;
cmp  ecx,0;
ja   loop1;
loop2:
mov  i, eax;

//check sign +/-

sign:
mov  eax,flt;
and  eax,80000000h;
cmp  eax,80000000h;
je     putsign;
}

return i;

putsign:
return -i;
}```

## History

• 15th June, 2005: Initial version

## Share

 Web Developer India
Hi.. I have been working on C/C++ for more than 2 years. My areas of interest are Network programming and System Level programming.
I work with C/C++ over Windows and Solaris.

## You may also be interested in...

 Pro

 View All Threads First Prev Next
 Problem with conversion of float to int using C++ Kishore JP3-Mar-08 1:25 Kishore JP 3-Mar-08 1:25
 Last Visit: 31-Dec-99 18:00     Last Update: 30-Apr-17 7:42 Refresh 1