🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.asm
30 messages
30 total messages Started by PioM Wed, 08 Nov 2006 14:08
problem pamieci
#794
Author: PioM
Date: Wed, 08 Nov 2006 14:08
15 lines
1103 bytes
Witam

Witam

Dlaczego nie dziala
mov [b8000000],3007

a dziala
ds=b8000
mov ds:[0000],3007?

Wyglada na to samo i powinno dzialac w 32 bitowym adresowaniu.

--
PioM 
Re: problem pamieci
#795
Author: Michal Schulz
Date: Wed, 08 Nov 2006 14:26
23 lines
1150 bytes
PioM wrote:

> Dlaczego nie dziala
> mov [b8000000],3007

mov [0b8000h],3007h

> 
> a dziala
> ds=b8000

ds=0b800h

> mov ds:[0000],3007?
> 
> Wyglada na to samo i powinno dzialac w 32 bitowym adresowaniu.

nie wyglada na to samo

adres 32-bitowy == (segment << 4) + offset

-- 
Michal Schulz
Re: problem pamieci
#807
Author: Remek
Date: Wed, 08 Nov 2006 14:28
19 lines
1186 bytes
Użytkownik "PioM" napisał:

> Dlaczego nie dziala
> mov [b8000000],3007
>
> a dziala
> ds=b8000
> mov ds:[0000],3007?
>
> Wyglada na to samo i powinno dzialac w 32 bitowym adresowaniu.


Jaki asembler? W Tasm i Masm żaden z tych przykładów nie zostanie
zaakceptowany.

-- 
Pozdrawiam Remek
K7S5A, Duron 1,1
Windows98 SE, IE6, OE6
Re: problem pamieci
#796
Author: PioM
Date: Wed, 08 Nov 2006 14:39
8 lines
1108 bytes
nie ma to sensu
> nie wyglada na to samo
>
> adres 32-bitowy == (segment << 4) + offset
>
> -- 
> Michal Schulz
> 
Re: problem pamieci
#797
Author: Michal Schulz
Date: Wed, 08 Nov 2006 15:02
9 lines
1016 bytes
PioM wrote:

> nie ma to sensu

co nie ma sensu? sposob, w jaki z kombinacji segment:offset wyliczany jest
32-bitowy adres? Nic na to nie poradze.

-- 
Michal Schulz
Re: problem pamieci
#798
Author: Michal Schulz
Date: Wed, 08 Nov 2006 15:15
8 lines
1046 bytes
Michal Schulz wrote:

> co nie ma sensu? sposob, w jaki z kombinacji segment:offset

Mam tu na mysli oczywiscie kombinacje segment:offset w real mode.

-- 
Michal Schulz
Re: problem pamieci
#810
Author: Bogdan (bogdro)
Date: Wed, 08 Nov 2006 16:56
29 lines
1651 bytes
PioM napisał(a):
> Witam
> 
> Witam
> 
> Dlaczego nie dziala
> mov [b8000000],3007
> 
> a dziala
> ds=b8000

 Nie załadujesz tyle do DS. Co najwyżej b800.

> mov ds:[0000],3007?

 Jeśli mamy tryb rzeczywisty, to adres = segment*16+offset = b800*16+0
= b8000, a nie b8000000.
 Po drugie, może DS nieustawiony przed pierwszym MOV?

> Wyglada na to samo i powinno dzialac w 32 bitowym adresowaniu.

 Tryb rzeczywisty czy chroniony? Co do rzeczywistego masz wyjaśnienie
powyżej

-- 
Pozdrawiam, Bogdan                                  (Linux i FreeDOS)
Kurs assemblera x86 (DOS i Linuks): http://rudy.mif.pg.gda.pl/~bogdro
Grupy dyskusyjne o asm:  pl.comp.lang.asm alt.pl.asm alt.pl.asm.win32
Rozmawiaj bezpiecznie: www.JabberPL.org Surfuj anonimowo: tor.eff.org
Re: problem pamieci
#813
Author: Bernard
Date: Wed, 08 Nov 2006 17:32
16 lines
1099 bytes
PioM wrote:
> Witam
> 
> Witam
> 
> Dlaczego nie dziala
> mov [b8000000],3007
> 
> a dziala
> ds=b8000
> mov ds:[0000],3007?
> 
> Wyglada na to samo i powinno dzialac w 32 bitowym adresowaniu.

A co to znaczy "działa" i "nie działa"? Jakie środowisko? DOS, Windows, 
Linux? Jaki asembler? Jakie dyrektywy asemblera z przodu?
Re: problem pamieci
#817
Author: Wiktor S.
Date: Thu, 09 Nov 2006 10:29
25 lines
1692 bytes
> Dlaczego nie dziala
> mov [b8000000],3007
>
> a dziala
> ds=b8000
> mov ds:[0000],3007?
>
> Wyglada na to samo i powinno dzialac w 32 bitowym adresowaniu.


Jeśli mowa o trybie chronionym, to wpisywanie do ds-a konkretnej wartości 
liczbowej jako części adresu jest kompletna bzdurą.

Jeśli tryb rzeczywisty - odpowiedź i sposób łączenia segmentu i ofsetu już 
dostałeś. DS jest zawsze 16-bitowy, więc wartości B8000 doń nie zapiszesz.

W trybie rzeczywistym adres = segment * 16 + ofset. Przy 16-bitowym ofsecie 
da to maksymalny adres około megabajta. Teoretycznie gdyby użyć ofsetu 
32-bitowego, można odwołać się do dalszej pamięci, ale w praktyce wywali nam 
wyjątek. Jest na to obejście, tzw. tryb "unreal", ale to jest raczej 
ciekawostka bez praktycznego zastosowania.


--
Azarien
Re: problem pamieci
#799
Author: PioM
Date: Thu, 09 Nov 2006 14:07
8 lines
1254 bytes
Witam

Segmenty powinny byc w pamieci komputera, wiec napewno mozna dostac sie do 
nich w sposob ciagly FLAT. Dla 32 bitowego procesora (4GB adresowanie) nie 
powinno to sprawiac problemow.

--
PioM 
Re: problem pamieci
#800
Author: Michal Schulz
Date: Thu, 09 Nov 2006 14:35
18 lines
1501 bytes
PioM wrote:

> Witam
> 
> Segmenty powinny byc w pamieci komputera, wiec napewno mozna dostac sie do
> nich w sposob ciagly FLAT. Dla 32 bitowego procesora (4GB adresowanie) nie
> powinno to sprawiac problemow.

Bardzo mi przykro, ale kombinacja 0xb800:0x0000 którą podałeś w twoim
przykładzie odnosi się do 16-bitowego trybu pracy procesora, w którym
maksymalny adres pamięci do jakiego można się odwołać, to 0xffff:0xffff,
czyli 0x0010ffef.

Jeśli chcesz w twoim 32-bitowym programie wypisywać znaki bezpośrednio na
ekran, spróbuj adresu, który Ci podałem - 0x000b8000.

-- 
Michal Schulz
Re: problem pamieci
#808
Author: PioM
Date: Thu, 09 Nov 2006 18:34
12 lines
1320 bytes
> Jaki asembler? W Tasm i Masm żaden z tych przykładów nie zostanie
> zaakceptowany.


Zwykly procesora z dokumentacji Intela (kody sterujace procesorem).

W x86 SIB bajt nie dziala w dokumentacji jest [reg][reg] a w rzeczywistosci 
jest [reg+reg] daje do dostep do 33 bitowej przestrzeni adresowania zamiast 
64 bitowej (tablicy 2D). To bug?


PioM 
Re: problem pamieci
#809
Author: Remek
Date: Sat, 11 Nov 2006 05:27
10 lines
1155 bytes
Użytkownik "PioM" napisał:

> Zwykly procesora z dokumentacji Intela (kody sterujace procesorem).

W takim razie sorry. Na temat składni Intel'a nie potrafię się wypowiedzieć.

-- 
Pozdrawiam Remek
K7S5A, Duron 1,1
Windows98 SE, IE6, OE6
Re: problem pamieci
#801
Author: PioM
Date: Sun, 12 Nov 2006 13:31
31 lines
2223 bytes
Dziala, dziekuje za pomoc.
To troche nielogiczne, ze dziala.

Te segmenty to chyba oszustwo. Logicznie wychodzi 4GB, ale w tym komputerze 
nie ma tyle pamieci.
Moze jest adres=adres%1000 0000 (256 MB, % to mod)? Mozna by polaczyc pamiec 
wielu komputerow, zeby uzyskac taka przestrzen adresowania (co na to tp 
sa?).
Widze, ze tu jest to rozwiazanie przez jakies dziwne adresowane (modyfikacja 
adresu).


>> Witam
>>
>> Segmenty powinny byc w pamieci komputera, wiec napewno mozna dostac sie 
>> do
>> nich w sposob ciagly FLAT. Dla 32 bitowego procesora (4GB adresowanie) 
>> nie
>> powinno to sprawiac problemow.
>
> Bardzo mi przykro, ale kombinacja 0xb800:0x0000 którą podałeś w twoim
> przykładzie odnosi się do 16-bitowego trybu pracy procesora, w którym
> maksymalny adres pamięci do jakiego można się odwołać, to 0xffff:0xffff,
> czyli 0x0010ffef.
>
> Jeśli chcesz w twoim 32-bitowym programie wypisywać znaki bezpośrednio na
> ekran, spróbuj adresu, który Ci podałem - 0x000b8000.
>
> -- 
> Michal Schulz
> 
Re: problem pamieci
#811
Author: PioM
Date: Sun, 12 Nov 2006 13:36
32 lines
1797 bytes
Użytkownik "Bogdan (bogdro)" <bogdan@bogdan.pl> napisał w wiadomości 
news:eit2d7$n48$1@nemesis.news.tpi.pl...
> PioM napisał
>> Witam
>>
>> Dlaczego nie dziala
>> mov [b8000000],3007
>>
>> a dziala
>> ds=b8000
>
> Nie załadujesz tyle do DS. Co najwyżej b800.

To UPA niezidentyfikowane zjawisko psychologiczne zwane bledem.

>> mov ds:[0000],3007?
>
> Jeśli mamy tryb rzeczywisty, to adres = segment*16+offset = b800*16+0
> = b8000, a nie b8000000.
> Po drugie, może DS nieustawiony przed pierwszym MOV?

32 bitowym adresowaniu moze byc bezwzglednie.

>> Wyglada na to samo i powinno dzialac w 32 bitowym adresowaniu.
> Tryb rzeczywisty czy chroniony? Co do rzeczywistego masz wyjaśnienie
> powyżej

Komputery powinny byc logiczne

--
PioM 
Re: problem pamieci
#814
Author: PioM
Date: Sun, 12 Nov 2006 13:37
21 lines
1534 bytes
Użytkownik "Bernard" <bernard@earth.net> napisał w wiadomości 
news:eit4bg$o05$1@achot.icm.edu.pl...
> PioM wrote:
>> Witam
>>
>> Witam
>>
>> Dlaczego nie dziala
>> mov [b8000000],3007
>>
>> a dziala
>> ds=b8000
>> mov ds:[0000],3007?
>>
>> Wyglada na to samo i powinno dzialac w 32 bitowym adresowaniu.
>
> A co to znaczy "działa" i "nie działa"? Jakie środowisko? DOS, Windows, 
> Linux? Jaki asembler? Jakie dyrektywy asemblera z przodu?

Testowanie w DOSie, w Windows moze dzialac w konsoli. 
Re: problem pamieci
#818
Author: PioM
Date: Sun, 12 Nov 2006 13:42
30 lines
2135 bytes
Użytkownik "Wiktor S." <azi@daleko.N0SPAM.be> napisał w wiadomości 
news:eiuvuu$9cf$1@news.onet.pl...
>> Dlaczego nie dziala
>> mov [b8000000],3007
>>
>> a dziala
>> ds=b8000
>> mov ds:[0000],3007?

>> Wyglada na to samo i powinno dzialac w 32 bitowym adresowaniu.

> Jeśli mowa o trybie chronionym, to wpisywanie do ds-a konkretnej wartości 
> liczbowej jako części adresu jest kompletna bzdurą.
>
> Jeśli tryb rzeczywisty - odpowiedź i sposób łączenia segmentu i ofsetu już 
> dostałeś. DS jest zawsze 16-bitowy, więc wartości B8000 doń nie zapiszesz.
>
> W trybie rzeczywistym adres = segment * 16 + ofset. Przy 16-bitowym 
> ofsecie da to maksymalny adres około megabajta. Teoretycznie gdyby użyć 
> ofsetu 32-bitowego, można odwołać się do dalszej pamięci, ale w praktyce 
> wywali nam wyjątek. Jest na to obejście, tzw. tryb "unreal", ale to jest 
> raczej ciekawostka bez praktycznego zastosowania.

standardowo powinno byc adres = segment * 65536 to pewnie FLAT model od 4 GB 
w 16 bitach do ponad 262 TB w 32 bitach.
adres = segment * 16 + ofset to smieszny pomysl i marnotrastwo.

--
PioM 
Re: problem pamieci
#802
Author: Bogdan (bogdro)
Date: Sun, 12 Nov 2006 16:43
35 lines
2455 bytes
PioM napisał(a):
> Dziala, dziekuje za pomoc.
> To troche nielogiczne, ze dziala.
> 
> Te segmenty to chyba oszustwo. Logicznie wychodzi 4GB, ale w tym komputerze 
> nie ma tyle pamieci.

 No to co? Części systemu, niektóre biblioteki mogą być pod takimi
adresami, których nie ma. Od tego jest mechanizm stronicowania.
 Żaden z komputerów 64-bitowych nie ma 18 trylionów bajtów
zainstalowanej pamięci RAM.

> Moze jest adres=adres%1000 0000 (256 MB, % to mod)?

 Nie. Jak masz 256MB, a jakiś program chce sięgać do pamięci logicznej
powyżej 1GB, to system sprawdza, gdzie ten adres logiczny jest
fizycznie (w dostępnej pamięci lub na dysku).

> Mozna by polaczyc pamiec 
> wielu komputerow, zeby uzyskac taka przestrzen adresowania (co na to tp 
> sa?).

 Ja widziałem laptopa z 2GB pamięci. Ile twoim zdaniem mają serwery?

> Widze, ze tu jest to rozwiazanie przez jakies dziwne adresowane (modyfikacja 
> adresu).

 Jeśli adres nie istnieje, to tak. Ale "modyfikacja" jest przez
system, nie przez kompilator czy cokolwiek innego.

-- 
Pozdrawiam, Bogdan                                  (Linux i FreeDOS)
Kurs assemblera x86 (DOS i Linuks): http://rudy.mif.pg.gda.pl/~bogdro
Grupy dyskusyjne o asm:  pl.comp.lang.asm alt.pl.asm alt.pl.asm.win32
Rozmawiaj bezpiecznie: www.JabberPL.org Surfuj anonimowo: tor.eff.org
Re: problem pamieci
#812
Author: Bogdan (bogdro)
Date: Sun, 12 Nov 2006 16:49
27 lines
1864 bytes
PioM napisał(a):
> Użytkownik "Bogdan (bogdro)" <bogdan@bogdan.pl> napisał w wiadomości 
>> Po drugie, może DS nieustawiony przed pierwszym MOV?
> 
> 32 bitowym adresowaniu moze byc bezwzglednie.

 32-bitowe adresowanie może być też w programie 16-bitowym. A
wnioskując po twoim skrawku kodu, piszesz program 16-bitowy. Wtedy
każdy adres zależy od reejstrów segmentowych, stąd moja uwaga.

 Wykonaj (w programie 16-bitowym):
	mov	ebx, 1234
	xor	ax, ax
	mov	ds, ax
	mov	dword [ebx], "ABCD"
	mov	ax, 1000
	mov	ds, ax
	cmp	dword [ebx], "ABCD"
	je	przypadek_1_na_zyliard
	jne	w_programie_16b_DS_robi_wielka_roznice


-- 
Pozdrawiam, Bogdan                                  (Linux i FreeDOS)
Kurs assemblera x86 (DOS i Linuks): http://rudy.mif.pg.gda.pl/~bogdro
Grupy dyskusyjne o asm:  pl.comp.lang.asm alt.pl.asm alt.pl.asm.win32
Rozmawiaj bezpiecznie: www.JabberPL.org Surfuj anonimowo: tor.eff.org
Re: problem pamieci
#819
Author: Bogdan (bogdro)
Date: Sun, 12 Nov 2006 16:54
17 lines
1747 bytes
PioM napisał(a):
> standardowo powinno byc adres = segment * 65536 to pewnie FLAT model od 4 GB 
> w 16 bitach do ponad 262 TB w 32 bitach.
> adres = segment * 16 + ofset to smieszny pomysl i marnotrastwo.

 Tak, ale 16-bitowe procki nie miały 32-bitowej szyny adresowej...
 Tak to kiedyś zrobiono, a współczesne procesory muszą być z tamtymi
zgodne.
 Model Flat polega na tym, że wszystkie segmenty mają adres bazowy
zero i długość 4GB, a nie że zawartość rejestru segmentowego mnoży się
przez cokolwiek.

-- 
Pozdrawiam, Bogdan                                  (Linux i FreeDOS)
Kurs assemblera x86 (DOS i Linuks): http://rudy.mif.pg.gda.pl/~bogdro
Grupy dyskusyjne o asm:  pl.comp.lang.asm alt.pl.asm alt.pl.asm.win32
Rozmawiaj bezpiecznie: www.JabberPL.org Surfuj anonimowo: tor.eff.org
Re: problem pamieci
#815
Author: Bernard
Date: Sun, 12 Nov 2006 17:05
24 lines
1571 bytes
PioM wrote:
> Użytkownik "Bernard" <bernard@earth.net> napisał w wiadomości 
> news:eit4bg$o05$1@achot.icm.edu.pl...
>> PioM wrote:
>>> Witam
>>>
>>> Witam
>>>
>>> Dlaczego nie dziala
>>> mov [b8000000],3007
>>>
>>> a dziala
>>> ds=b8000
>>> mov ds:[0000],3007?
>>>
>>> Wyglada na to samo i powinno dzialac w 32 bitowym adresowaniu.
>> A co to znaczy "działa" i "nie działa"? Jakie środowisko? DOS, Windows, 
>> Linux? Jaki asembler? Jakie dyrektywy asemblera z przodu?
> 
> Testowanie w DOSie, w Windows moze dzialac w konsoli. 

Oczekujesz podobno pomocy, a na proste pytanie nie chcesz odpowiedzieć. 
O co właściwie Ci chodzi - chcesz się czegoś nauczyć, czy pomarudzić i 
powymądrzać?
Re: problem pamieci
#803
Author: Maciej Oszutowski
Date: Sun, 12 Nov 2006 17:26
15 lines
1500 bytes
Dnia Sun, 12 Nov 2006 17:43:50 +0100, Bogdan (bogdro) napisał(a):

>> Widze, ze tu jest to rozwiazanie przez jakies dziwne adresowane (modyfikacja 
>> adresu).
> 
>  Jeśli adres nie istnieje, to tak. Ale "modyfikacja" jest przez
> system, nie przez kompilator czy cokolwiek innego.

Nie martw się. PioM już chyba nie raz udowodnił że nie ma pojęcia o czymś
takim jak architektura komputerów ani o tym jak działają systemy
operacyjne...

-- 
|   Maciej Oszutowski   | Mowa jest srebrem  |
| imagiATpsytranceDOTpl | a milczenie owiec. |
Re: problem pamieci
#804
Author: Stachu 'Dozzie' K.
Date: Sun, 12 Nov 2006 17:42
20 lines
1770 bytes
On 12.11.2006, Maciej Oszutowski <look@my.sig> wrote:
> Dnia Sun, 12 Nov 2006 17:43:50 +0100, Bogdan (bogdro) napisał(a):
>
>>> Widze, ze tu jest to rozwiazanie przez jakies dziwne adresowane (modyfikacja 
>>> adresu).
>> 
>>  Jeśli adres nie istnieje, to tak. Ale "modyfikacja" jest przez
>> system, nie przez kompilator czy cokolwiek innego.
>
> Nie martw się. PioM już chyba nie raz udowodnił że nie ma pojęcia o czymś
> takim jak architektura komputerów ani o tym jak działają systemy
> operacyjne...

Żeby tylko o tym...
<e70knn$mu5$1@nemesis.news.tpi.pl>

-- 
<Kosma> Niektórzy lubią dozziego...
<Kosma> Oczywiście szanujemy ich.
Stanislaw Klekot
Re: problem pamieci
#820
Author: Lopez
Date: Sun, 12 Nov 2006 18:27
21 lines
1653 bytes
Bogdan (bogdro) napisał(a):
> PioM napisał(a):
>> standardowo powinno byc adres = segment * 65536 to pewnie FLAT model od 4 GB 
>> w 16 bitach do ponad 262 TB w 32 bitach.
>> adres = segment * 16 + ofset to smieszny pomysl i marnotrastwo.
> 
>  Tak, ale 16-bitowe procki nie miały 32-bitowej szyny adresowej...
>  Tak to kiedyś zrobiono, a współczesne procesory muszą być z tamtymi
> zgodne.
>  Model Flat polega na tym, że wszystkie segmenty mają adres bazowy
> zero i długość 4GB, a nie że zawartość rejestru segmentowego mnoży się
> przez cokolwiek.
> 

Tak dla ścisłości dla OP, w trybie 32-bitowym ds,es,fs itd.
nie sa juz rejestrami segmentowymi, tylko selektorami
i taka arytmetyka nie ma miejsca.

-- 
Pozdrawiam
Lopez
Re: problem pamieci
#805
Author: PioM
Date: Mon, 13 Nov 2006 14:33
25 lines
2193 bytes
Użytkownik "Stachu 'Dozzie' K." <dozzie@dynamit.im.pwr.wroc.pl.nospam> 
napisał w wiadomości news:slrnelenqu.a4n.dozzie@hans.zsh.bash.org.pl...
> On 12.11.2006, Maciej Oszutowski <look@my.sig> wrote:
>> Dnia Sun, 12 Nov 2006 17:43:50 +0100, Bogdan (bogdro) napisał(a):
>>
>>>> Widze, ze tu jest to rozwiazanie przez jakies dziwne adresowane 
>>>> (modyfikacja
>>>> adresu).
>>>
>>>  Jeśli adres nie istnieje, to tak. Ale "modyfikacja" jest przez
>>> system, nie przez kompilator czy cokolwiek innego.
>>
>> Nie martw się. PioM już chyba nie raz udowodnił że nie ma pojęcia o czymś
>> takim jak architektura komputerów ani o tym jak działają systemy
>> operacyjne...
>
> Żeby tylko o tym...

Mam jakies pojecie, choc nie jestem w tym ekspertem. Jakie wieksze pojecie 
moze miec programista w tym temacie? Moze to co napisalem to dla was sci-fi, 
ale wydaje sie logiczne.

--
PioM 
Re: problem pamieci
#816
Author: PioM
Date: Mon, 13 Nov 2006 14:36
30 lines
2037 bytes
Użytkownik "Bernard" <bernard@earth.net> napisał w wiadomości 
news:4557457a$0$17961$f69f905@mamut2.aster.pl...
> PioM wrote:
>> Użytkownik "Bernard" <bernard@earth.net> napisał w wiadomości 
>> news:eit4bg$o05$1@achot.icm.edu.pl...
>>> PioM wrote:
>>>> Witam
>>>>
>>>> Witam
>>>>
>>>> Dlaczego nie dziala
>>>> mov [b8000000],3007
>>>>
>>>> a dziala
>>>> ds=b8000
>>>> mov ds:[0000],3007?
>>>>
>>>> Wyglada na to samo i powinno dzialac w 32 bitowym adresowaniu.
>>> A co to znaczy "działa" i "nie działa"? Jakie środowisko? DOS, Windows, 
>>> Linux? Jaki asembler? Jakie dyrektywy asemblera z przodu?
>>
>> Testowanie w DOSie, w Windows moze dzialac w konsoli.
>
> Oczekujesz podobno pomocy, a na proste pytanie nie chcesz odpowiedzieć. O 
> co właściwie Ci chodzi - chcesz się czegoś nauczyć, czy pomarudzić i 
> powymądrzać?

Mowi sie prefixy. Uzylem 32 bitowych. Testowalem w natywnym jezyku 
procesorow. 
Re: problem pamieci
#821
Author: PioM
Date: Mon, 13 Nov 2006 14:40
24 lines
1956 bytes
Użytkownik "Lopez" <rtlopezREMOVE@gazeta.pl> napisał w wiadomości 
news:ej7p2h$sq8$1@inews.gazeta.pl...
> Bogdan (bogdro) napisał(a):
>> PioM napisał(a):
>>> standardowo powinno byc adres = segment * 65536 to pewnie FLAT model od 
>>> 4 GB w 16 bitach do ponad 262 TB w 32 bitach.
>>> adres = segment * 16 + ofset to smieszny pomysl i marnotrastwo.
>>
>>  Tak, ale 16-bitowe procki nie miały 32-bitowej szyny adresowej...
>>  Tak to kiedyś zrobiono, a współczesne procesory muszą być z tamtymi
>> zgodne.
>>  Model Flat polega na tym, że wszystkie segmenty mają adres bazowy
>> zero i długość 4GB,

Mozna sie domyslec.

>> a nie że zawartość rejestru segmentowego mnoży się
>> przez cokolwiek.

Wczesniej czytalem cos innego. Po co za duzo mieszac z segmentami?

--
PioM 
Re: problem pamieci
#806
Author: PioM
Date: Sat, 18 Nov 2006 16:00
6 lines
1382 bytes
Witam

http://piom28.webpark.pl/x86.htm

--
PioM 
Re: problem pamieci
#822
Author: Andrzej Grażyński
Date: Tue, 21 Nov 2006 19:16
29 lines
1276 bytes
PioM napisał(a):
> Witam
> 
> Witam
> 
> Dlaczego nie dziala
> mov [b8000000],3007
> 
> a dziala
> ds=b8000
> mov ds:[0000],3007?
> 
> Wyglada na to samo i powinno dzialac w 32 bitowym adresowaniu.
> 
> --
> PioM 
> 
> 

mov [b8000000],3007

to to samo co

mov ds:[b8000000],3007




A co jest w rejestrze ds?
Re: problem pamieci
#823
Author: PioM
Date: Wed, 22 Nov 2006 14:37
7 lines
1109 bytes
> mov [b8000000],3007
>
> mov ds:[b8000000],3007
>

> A co jest w rejestrze ds?
pewnie 4 (nie 16) bitow :(( 
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads