Acrobase  

Καλώς ήρθατε στην AcroBase.
Δείτε εδώ τα πιο πρόσφατα μηνύματα από όλες τις περιοχές συζητήσεων, καθώς και όλες τις υπηρεσίες της AcroBase.
H εγγραφή σας είναι γρήγορη και εύκολη.

Επιστροφή   Acrobase > Υπολογιστές και Τεχνολογία > Πληροφορική και Επικοινωνία
Ομάδες (Groups) Τοίχος Άρθρα acrobase.org Ημερολόγιο Φωτογραφίες Στατιστικά

Notices

Δεν έχετε δημιουργήσει όνομα χρήστη στην Acrobase.
Μπορείτε να το δημιουργήσετε εδώ

Απάντηση στο θέμα
 
Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 19-11-07, 16:44
Το avatar του χρήστη Archmage
Archmage Ο χρήστης Archmage δεν είναι συνδεδεμένος
Μέλος
 

Τελευταία φορά Online: 14-03-18 00:30
Φύλο: Άντρας
Πρόσβαση στη μνήμη με C

Ερώτηση για γνώστες C σε DOS (Turbo C): Θέλω να γράψω μια τιμή (πχ 65) σε κάποια συγκεκριμένη, σταθερή, δεδομένη εκ των προτέρων διεύθυνση μνήμης, έστω την 888.

Μπορεί κάποιος να μου πει πώς θα το κάνω; Έχω την εντύπωση ότι το:
Κώδικας:
unsigned char *address;
address=888;
*address=65;
δε δουλεύει..

Αν βοηθάει, σε qbasic κάνω αυτή τη δουλειά με την εντολή: out 888, 65
__________________
may you live in interesting times
Απάντηση με παράθεση
  #2  
Παλιά 19-11-07, 17:38
Το avatar του χρήστη Cyberpunk
Cyberpunk Ο χρήστης Cyberpunk δεν είναι συνδεδεμένος
Mέλος
 

Τελευταία φορά Online: 26-01-17 19:18
Φύλο: Άντρας
Η διαθεσή μου τώρα:
Αν θυμάμαι καλά...

int *ptr = 0x318(absolute address) - μάλλον εκεί είναι το θέμα σου, θέλει hex
*ptr = 10;

Δεν ξέρω τι θέλεις να κάνεις ακριβώς, αλλά το malloc() είναι φίλος σου.
__________________
μη πσικ ήνγκλαντ βέρη μπεστ
Απάντηση με παράθεση
  #3  
Παλιά 19-11-07, 17:48
Το avatar του χρήστη Archmage
Archmage Ο χρήστης Archmage δεν είναι συνδεδεμένος
Μέλος
 

Τελευταία φορά Online: 14-03-18 00:30
Φύλο: Άντρας
Αρχική Δημοσίευση από Cyberpunk Εμφάνιση μηνυμάτων
int *ptr = 0x318(absolute address) - μάλλον εκεί είναι το θέμα σου, θέλει hex
*ptr = 10;

Δεν ξέρω τι θέλεις να κάνεις ακριβώς, αλλά το malloc() είναι φίλος σου.
Όχι δε δουλεύει ούτε έτσι. Το ίδιο πρόγραμμα με μένα γράφεις, απλά εγώ το έσπασα σε δύο γραμμές.

Βασικά .. θέλω να γράψω μια τιμή (65='A') στην παράλληλη θύρα (888=0x378) με portable μέθοδο. Το malloc() δεν έχει σχέση προφανώς.

Όπως είπα, το έχω ήδη κάνει σε qbasic, οπότε είμαι σίγουρος ότι το υπόλοιπο σύστημα δουλεύει. Άρα το πρόβλημά μου είναι κάποιο ηλίθιο semantic της C στο DOS.
__________________
may you live in interesting times
Απάντηση με παράθεση
  #4  
Παλιά 19-11-07, 18:02
Το avatar του χρήστη Cyberpunk
Cyberpunk Ο χρήστης Cyberpunk δεν είναι συνδεδεμένος
Mέλος
 

Τελευταία φορά Online: 26-01-17 19:18
Φύλο: Άντρας
Η διαθεσή μου τώρα:
Ναι, ένα γρήγορο google επί του θέματος αναφέρει ότι η συγκεκριμένη τεχνική δεν δουλεύει για I/O operations.

Τώρα για περαιτέρω δεν ξέρω και εγώ τι να πω, αν θες κάποια πιο high level λύση με WinApi ή .Net να τσεκάρω να σου πω
__________________
μη πσικ ήνγκλαντ βέρη μπεστ
Απάντηση με παράθεση
  #5  
Παλιά 19-11-07, 18:06
Το avatar του χρήστη teo64x
teo64x Ο χρήστης teo64x δεν είναι συνδεδεμένος
Mέλος
 

Τελευταία φορά Online: 27-05-08 15:49
Φύλο: Άντρας
Η διαθεσή μου τώρα:
Κοίτα που φτάσαμε, να θέλουμε χρήση WinAPI και .NET για να αλλάξουμε μια θέση μνήμης...

Ε ρε πριόνισμα που μας χρειάζεται όλων μας...
__________________
http://www.musicwave.gr/tc64/Scent of the sea, before the waking of the world...
Brings me to thee, into the blue memory...
Απάντηση με παράθεση
Απάντηση στο θέμα


Συνδεδεμένοι χρήστες που διαβάζουν αυτό το θέμα: 1 (0 μέλη και 1 επισκέπτες)
 
Εργαλεία Θεμάτων
Τρόποι εμφάνισης

Δικαιώματα - Επιλογές
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is σε λειτουργία
Τα Smilies είναι σε λειτουργία
Ο κώδικας [IMG] είναι σε λειτουργία
Ο κώδικας HTML είναι σε λειτουργία

Που θέλετε να σας πάμε;


Όλες οι ώρες είναι GMT +3. Η ώρα τώρα είναι 04:53.



Forum engine powered by : vBulletin Version 3.8.2
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.