|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
|
Puntatori far e huge in C e GCC...Possibile?
Ciao , ho un problema con i puntatori HUGE e FAR in GCC , sono relativamente nuovo al mondo del C, e stavo giocherellando coi puntatori , in particolare nella trasformazione degli indirizzi Seg:off in indirizzi normalizzati con questo codice :
Codice:
#include <stdio.h>
#include <dos.h>
int main();
int main() {
char far *cfPtr;
char huge *chPtr;
chPtr = (char huge *)(((long)FP_SEG(cfPtr)) << 16)+
(((long)(FP_OFF(cfPtr) >> 4)) << 16)+(FP_OFF(cfPtr) & 0xF);
}
Qualcuno mi sa dire perchè?? Ciao
__________________
GPU Compiler Engineer |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Perchè mi risulta che il gcc produca solo codice a 32 bit; i puntatori "far" sono un mostruoso ricordo delle modalità a 16 bit.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
|
Quote:
Quindi far e huge ora sono in disuso, giusto? Quindi basta che dichiaro il puntatore normalmente e via. Un altra cosa, e per le macro contenute in "dos.h" ? in GCC non c'è questa libreria? Grazie ilsensine CIao
__________________
GPU Compiler Engineer |
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Non mi risulta, ma potrei sbagliarmi.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
|
Ho fatto una ricerchina su google e mi ha portato alla conclusione che in linux dos.h non si usa, perchè dappertutto dice che non è inserita, grazie
Ciao
__________________
GPU Compiler Engineer |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Ad occhio in dos.h c'erano le primitive e le strutture del sistema operativo...quelle di Linux dovrebbero essere tutti gli include sys/*.h
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 22:38.



















