delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1997/03/12/20:53:48

From: brennan AT news DOT rt66 DOT com (Brennan "The Rev. Bas" Underwood)
Newsgroups: comp.os.msdos.djgpp
Subject: Re: info, FAQ not enough -> GCC and ASM
Date: 12 Mar 1997 15:55:23 -0700
Organization: Acid Brain
Lines: 45
Distribution: world
Message-ID: <5g7c8r$eop$1@mack.rt66.com>
References: <5g1hv1$qtb$1 AT thor DOT atcon DOT com>
NNTP-Posting-Host: mack.rt66.com
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp

In article <5g1hv1$qtb$1 AT thor DOT atcon DOT com>,
SteelGolem  <steelgolem AT geocities DOT com> wrote:
>ok, i've read the info files on doing asm in djgpp, and the faq just 
>tells me to read the info files. i am still confused on it!
>
>i understand what the following does:
>
>asm( "mov %1, %0": "=i(var2)": "i(var1)" );
>
>it puts the integer var1 into the integer var2. (right???)
>what i don't understand is how you put them in the registers 
>ax/bx/eax/etc.. is it possible to access the registers? (i know, i know, 
>its protected mode..)

I coulda sworn there's a reference to
http://brennan.home.ml.org/djgpp/djgpp_asm.html
in the (go hanmhaith) FAQ.

>or at least, convert the following borland c function:
>
>long fixmul( long a, long b )
>{
>  long result;
>  asm mov ax, [a]
>  asm mov bx, [b]
>  asm imul ebx
>  asm shrd eax, edx, 16
>  asm mov [result], eax
>  return result;
>}
>
>this is a fixed point multiplication function.. it returns a long 
>integer with the lower 8 bits being the fractional part, (x/65536) and 
>the upper 8 bits being the actual integer. thanks for any help..

I think you mean 16 bits instead of 8 bits there. If so,
http://brennan.home.ml.org/programming/fixed.h
oughter steer you in the right direction.


Brennan
-- 
 brennan AT rt66 DOT com |  vi rules.
Riomhchlaraitheoir|  
   Rasterfarian   |  <http://brennan.home.ml.org>                          -O

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019