🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: de.comp.sys.ibm
Article #237

Re: komische Speicheradressen

#237
From: Josef Moellers
Date: Tue, 04 Aug 1992 06:38
52 lines
2731 bytes
In <BsB3EF.42p@birnehh.mali.sub.org> bit@birnehh.mali.sub.org (Mike Hoehn) writes:

>Ich habe folgendes Problem:

>Ich muss in einem C-Programm unter DOS den Speicherinhalt an der
>Adresse 0040:00F0 auslesen.
>Dummerweise habe ich keine Ahnung von diesem Intel-basierten
>Muell.
>Wie soll das funktionieren? Was hat der Doppelpunkt da zu suchen?

Intel unterteil den Speicher in ueberlappende Segmente. Jedes Segment
ist (im Prinzip, wir reden hier 'mal nicht vom protected 286 mode) 64KB
gross und beginnt auf einer Adresse, die ein Vielfaches von 16 ist.
Die "physikalische" Speicheradresse setzt sich nun aus einer Segmentadresse
und einem Offset zusammen, und zwar nach folgender Regel:
	Segmentadresse * 16 + Offset
Wird die Adresse als numerische Adresse angegeben, steht die
Segmentadresse vor, der Offset hinter dem Doppelpunkt.

Beim Programmieren steht die "Basisadresse" eines Segments, na?, ...
klar, in einem Segmentregister. Derer gibt es vier: Code- (CS), Daten-
(DS), Stack- (SS) und Extra- (ES) Segmentregister. Diese sind 16 bit
"breit" (hoch/tief/lang). Der Offset steht in einem oder zwei Registern
(bie zwei: Offset = Summe der beiden), optional durch einen konstantes
"Displacement" (ich wollte nicht noch 'mal "Offset" schreiben)
erweitert.

Somit entspricht Deinem 0040:00F0 eine "physikalische" Adresse von
	004F0
Diese laesst sich uebrigens auch als "004F:0000", oder "004E:0010", ...
schreiben B-{)

Auf den Adressen 0040:0000 bis 0040:00FF liegt der BIOS-Datenbereich.
0040:00F0 bis 0040:00FF ist ein "Kommunikationsbereich fuer
Anwendungsprogramme (nutzbar fuer Parameteruebergabe)", was immer das
bedeuten mag!

>Ich will wieder auf Motorola-Prozessoren programmieren <heul>...

>Naja, ich hoffe mir kann jemand helfen.
>  Mike

Ich offe, ich hab's getan.

Josef

PS Ich hab' meinen PC auch nur zum Pac-Man spielen. Sonst programmiere
ich auf richtigen Prozessoren, Motorola, National Semiconductor, MIPS!
-- 
| Josef Moellers		| c/o Siemens Nixdorf Informationssysteme AG  |
|  USA: mollers.pad@sni-usa.com	| Abt. STO-XS 113	   | Riemekestrasse   |
| !USA: mollers.pad@sni.de	| Phone: (+49) 5251 835124 | D-4790 Paderborn |
Technical Details
Message-ID: <josef.712910305@uranium>
Path: arc1-ca.pugleaf.net!sparky!uunet!europa.asd.contel.com!darwin.sura.net!jvnc.net!yale.edu!ira.uka.de!math.fu-berlin.de!zrz.tu-berlin.de!news.netmbx.de!Germany.EU.net!nixpbe!uranium!josef
References: <BsB3EF.42p@birnehh.mali.sub.org>

Show Full Headers
Complete Article Headers
Newsgroups: de.comp.sys.ibm
Path: arc1-ca.pugleaf.net!sparky!uunet!europa.asd.contel.com!darwin.sura.net!jvnc.net!yale.edu!ira.uka.de!math.fu-berlin.de!zrz.tu-berlin.de!news.netmbx.de!Germany.EU.net!nixpbe!uranium!josef
From: Josef Moellers <mollers.pad@sni.de>
Subject: Re: komische Speicheradressen
Sender: josef@nixpbe.sni.de (Moellers)
Message-ID: <josef.712910305@uranium>
Date: Tue, 4 Aug 1992 06:38:25 GMT
References: <BsB3EF.42p@birnehh.mali.sub.org>
Organization: Siemens Nixdorf Info.Sys. AG, Paderborn, Germany
Lines: 52