www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1996/02/13/04:21:43

Xref: news2.mv.net comp.os.msdos.djgpp:1058
From: Fabrice Frances <frances AT ensica DOT fr>
Newsgroups: comp.os.msdos.djgpp
Subject: Re: masm's coff output
Date: Tue, 06 Feb 1996 17:22:07 +0100
Organization: Ecole Nationale Superieure d'Ingenieurs des Constructions Aeronautiques
Lines: 29
Message-ID: <3117802F.7CBA126D@ensica.fr>
References: <311381ff DOT 355150 AT news>
NNTP-Posting-Host: linuxfly.ensica.fr
To: dave AT davemac DOT demon DOT co DOT uk
DJ-Gateway: from newsgroup comp.os.msdos.djgpp

Dave McNeill wrote:
> .386
> .model flat
> 
> .code
> 
> __go32_conventional_mem_selector proto
> _fill_screen proto
> 
> _fill_screen proc
> 
>         call __go32_conventional_mem_selector
> ...
> _fill_screen():
> 00001528: e8db080000     call    __go32_conventional_mem_selector+5
              **                                                   **

Maybe I'm missing the point (I've not used M$ products for quite a long
time), but it seems the 'proto' keyword generates an additional jmp
to allow both near and far calls to routines. As __go32_conventional_mem_selector
doesn't have such a jmp, the call generated with masm points to 5 bytes
after the real start of the routine... so you shouldn't declare the
external __go32_conventional_mem_selector routine with the 'proto' keyword
Best regards,
-- 
                       main(){int i,j,k,l,m,n,p;char
*s="@_DO AT AJQ@AQQ AT OQO@A_Q AT AQQ@AQO@@@@ONN_QDQAQDAAODAOEDAAIDQAQNN_@@@@";for(j=0
;j<16;j++)for(l=0;p=j%8,m=l-7+p,i=m/6,n=j*4+i,k=1<<m%6,l<32-p;l++)putchar(l<7-
p?' ':l==31-p?'\n':s[n]&k?(j==6||!(s[n+4]&k)?'_':' '):k/2&&s[n]&k/2?'/':' ');}

- Raw text -


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