Thread View: pl.comp.lang.asm
30 messages
30 total messages
Started by PioM
Wed, 08 Nov 2006 14:08
problem pamieci
Author: PioM
Date: Wed, 08 Nov 2006 14:08
Date: Wed, 08 Nov 2006 14:08
15 lines
1103 bytes
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
Author: Michal Schulz
Date: Wed, 08 Nov 2006 14:26
Date: Wed, 08 Nov 2006 14:26
23 lines
1150 bytes
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
Author: Remek
Date: Wed, 08 Nov 2006 14:28
Date: Wed, 08 Nov 2006 14:28
19 lines
1186 bytes
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
Author: PioM
Date: Wed, 08 Nov 2006 14:39
Date: Wed, 08 Nov 2006 14:39
8 lines
1108 bytes
1108 bytes
nie ma to sensu > nie wyglada na to samo > > adres 32-bitowy == (segment << 4) + offset > > -- > Michal Schulz >
Re: problem pamieci
Author: Michal Schulz
Date: Wed, 08 Nov 2006 15:02
Date: Wed, 08 Nov 2006 15:02
9 lines
1016 bytes
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
Author: Michal Schulz
Date: Wed, 08 Nov 2006 15:15
Date: Wed, 08 Nov 2006 15:15
8 lines
1046 bytes
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
Author: Bogdan (bogdro)
Date: Wed, 08 Nov 2006 16:56
Date: Wed, 08 Nov 2006 16:56
29 lines
1651 bytes
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
Author: Bernard
Date: Wed, 08 Nov 2006 17:32
Date: Wed, 08 Nov 2006 17:32
16 lines
1099 bytes
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
Author: Wiktor S.
Date: Thu, 09 Nov 2006 10:29
Date: Thu, 09 Nov 2006 10:29
25 lines
1692 bytes
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
Author: PioM
Date: Thu, 09 Nov 2006 14:07
Date: Thu, 09 Nov 2006 14:07
8 lines
1254 bytes
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
Author: Michal Schulz
Date: Thu, 09 Nov 2006 14:35
Date: Thu, 09 Nov 2006 14:35
18 lines
1501 bytes
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
Author: PioM
Date: Thu, 09 Nov 2006 18:34
Date: Thu, 09 Nov 2006 18:34
12 lines
1320 bytes
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
Author: Remek
Date: Sat, 11 Nov 2006 05:27
Date: Sat, 11 Nov 2006 05:27
10 lines
1155 bytes
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
Author: PioM
Date: Sun, 12 Nov 2006 13:31
Date: Sun, 12 Nov 2006 13:31
31 lines
2223 bytes
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
Author: PioM
Date: Sun, 12 Nov 2006 13:36
Date: Sun, 12 Nov 2006 13:36
32 lines
1797 bytes
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
Author: PioM
Date: Sun, 12 Nov 2006 13:37
Date: Sun, 12 Nov 2006 13:37
21 lines
1534 bytes
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
Author: PioM
Date: Sun, 12 Nov 2006 13:42
Date: Sun, 12 Nov 2006 13:42
30 lines
2135 bytes
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
Author: Bogdan (bogdro)
Date: Sun, 12 Nov 2006 16:43
Date: Sun, 12 Nov 2006 16:43
35 lines
2455 bytes
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
Author: Bogdan (bogdro)
Date: Sun, 12 Nov 2006 16:49
Date: Sun, 12 Nov 2006 16:49
27 lines
1864 bytes
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
Author: Bogdan (bogdro)
Date: Sun, 12 Nov 2006 16:54
Date: Sun, 12 Nov 2006 16:54
17 lines
1747 bytes
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
Author: Bernard
Date: Sun, 12 Nov 2006 17:05
Date: Sun, 12 Nov 2006 17:05
24 lines
1571 bytes
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
Author: Maciej Oszutowski
Date: Sun, 12 Nov 2006 17:26
Date: Sun, 12 Nov 2006 17:26
15 lines
1500 bytes
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
Author: Stachu 'Dozzie' K.
Date: Sun, 12 Nov 2006 17:42
Date: Sun, 12 Nov 2006 17:42
20 lines
1770 bytes
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
Author: Lopez
Date: Sun, 12 Nov 2006 18:27
Date: Sun, 12 Nov 2006 18:27
21 lines
1653 bytes
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
Author: PioM
Date: Mon, 13 Nov 2006 14:33
Date: Mon, 13 Nov 2006 14:33
25 lines
2193 bytes
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
Author: PioM
Date: Mon, 13 Nov 2006 14:36
Date: Mon, 13 Nov 2006 14:36
30 lines
2037 bytes
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
Author: PioM
Date: Mon, 13 Nov 2006 14:40
Date: Mon, 13 Nov 2006 14:40
24 lines
1956 bytes
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
Author: PioM
Date: Sat, 18 Nov 2006 16:00
Date: Sat, 18 Nov 2006 16:00
6 lines
1382 bytes
1382 bytes
Witam http://piom28.webpark.pl/x86.htm -- PioM
Re: problem pamieci
Author: Andrzej Grażyński
Date: Tue, 21 Nov 2006 19:16
Date: Tue, 21 Nov 2006 19:16
29 lines
1276 bytes
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
Author: PioM
Date: Wed, 22 Nov 2006 14:37
Date: Wed, 22 Nov 2006 14:37
7 lines
1109 bytes
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