Thread View: pl.comp.lang.asm
8 messages
8 total messages
Started by yesma
Wed, 22 Sep 2010 20:15
Pytanie o Porty Procesora
Author: yesma
Date: Wed, 22 Sep 2010 20:15
Date: Wed, 22 Sep 2010 20:15
8 lines
249 bytes
249 bytes
Jeżeli adres bazowy portu równoległego to 0x378 i jest tam rejestr ośmiobitowy , to jak to jest że pod adresem 0x379 jest następny rejestr ośmiobitowy , wydawało mi się że powinien być przynajmniej bajt dalej ? -- Pozdrawiam - Grzechu
Re: Pytanie o Porty Procesora
Author: "Bogdan (bogdro)
Date: Thu, 23 Sep 2010 18:57
Date: Thu, 23 Sep 2010 18:57
17 lines
786 bytes
786 bytes
W dniu 22.09.2010 20:15, yesma pisze: > Jeżeli adres bazowy portu równoległego to 0x378 > i jest tam rejestr ośmiobitowy , to jak to jest że pod adresem > 0x379 jest następny rejestr ośmiobitowy , wydawało mi się > że powinien być przynajmniej bajt dalej ? Dlaczego? 8 bitów = 1 bajt, 0x378 + 1 = 0x379? W zasadzie odległości między portami nie są chyba określone przez "bitowość" danego portu. Czy może coś głębszego, o czym nie pamiętam w tej chwili, jest w tym pytaniu? -- Pozdrawiam/Regards - Bogdan (GNU/Linux & FreeDOS) Kurs asemblera x86 (DOS, GNU/Linux):http://rudy.mif.pg.gda.pl/~bogdro Grupy dyskusyjne o asm: pl.comp.lang.asm alt.pl.asm alt.pl.asm.win32 www.Xiph.org www.TorProject.org Soft (EN): miniurl.pl/bogdro-soft
Re: Pytanie o Porty Procesora
Author: yesma
Date: Thu, 23 Sep 2010 21:17
Date: Thu, 23 Sep 2010 21:17
22 lines
880 bytes
880 bytes
Bogdan (bogdro) pisze: > W dniu 22.09.2010 20:15, yesma pisze: >> Jeżeli adres bazowy portu równoległego to 0x378 >> i jest tam rejestr ośmiobitowy , to jak to jest że pod adresem >> 0x379 jest następny rejestr ośmiobitowy , wydawało mi się >> że powinien być przynajmniej bajt dalej ? > > Dlaczego? 8 bitów = 1 bajt, 0x378 + 1 = 0x379? W zasadzie odległości > między portami nie są chyba określone przez "bitowość" danego portu. > Czy może coś głębszego, o czym nie pamiętam w tej chwili, jest w tym > pytaniu? > Powiedzmy że w segmencie .data jest jest dana ośmio bitowa czyli bajt to następna dana będzie miała adres jeden bajt dalej, a z tego co widzę to adresy portów są word ale adres portu następnego jest jeden bit dalej , nie wiem czy czegoś nie rozumiem czy po prostu in i out coś ukrywa. -- Pozdrawiam - Grzechu Linux x86_64
Re: Pytanie o Porty Procesora
Author: Michoo
Date: Fri, 24 Sep 2010 13:23
Date: Fri, 24 Sep 2010 13:23
15 lines
615 bytes
615 bytes
W dniu 23.09.2010 21:17, yesma pisze: > Powiedzmy że w segmencie .data jest jest dana ośmio bitowa czyli bajt > to następna dana będzie miała adres jeden bajt dalej, a z tego co widzę > to adresy portów są word ale adres portu następnego jest jeden bit dalej > , nie wiem czy czegoś nie rozumiem czy po prostu in i out coś ukrywa. Mylisz rozmiar "wskaźnika" z rozmiarem "zmiennej". Adres może być zawsze 16 bitowy, ale adresować: - kolejne bajty - zaadresujesz 65536 lokacji w pamięci i 65536 bajtów - kolejne słowa - nadal 65536 lokacji w pamięci ale 2*65536 bajtów ... -- Pozdrawiam Michoo
Re: Pytanie o Porty Procesora
Author: yesma
Date: Fri, 24 Sep 2010 19:34
Date: Fri, 24 Sep 2010 19:34
20 lines
810 bytes
810 bytes
Michoo pisze: > W dniu 23.09.2010 21:17, yesma pisze: >> Powiedzmy że w segmencie .data jest jest dana ośmio bitowa czyli bajt >> to następna dana będzie miała adres jeden bajt dalej, a z tego co widzę >> to adresy portów są word ale adres portu następnego jest jeden bit dalej >> , nie wiem czy czegoś nie rozumiem czy po prostu in i out coś ukrywa. > Mylisz rozmiar "wskaźnika" z rozmiarem "zmiennej". Może tak napisałem że tak to wygląda ale nie mylę. Wiem że adres może być np 4bajtowy i wskazywać na zmienną bajtową ale następna zmienna będzie miała adres poprzedniej zmiennej + 8 Wydaje mi się że tu chodzi o adres fizyczny i adres mapowany w pamięci I na to wygląda że adres portu równoległego jest adresem fizycznym. Dzięki za odpowiedź -- Pozdrawiam - Grzechu
Re: Pytanie o Porty Procesora
Author: "Bogdan (bogdro)
Date: Fri, 24 Sep 2010 20:59
Date: Fri, 24 Sep 2010 20:59
41 lines
1491 bytes
1491 bytes
W dniu 24.09.2010 19:34, yesma pisze: > Michoo pisze: >> W dniu 23.09.2010 21:17, yesma pisze: >>> Powiedzmy że w segmencie .data jest jest dana ośmio bitowa czyli bajt >>> to następna dana będzie miała adres jeden bajt dalej, a z tego co >>> widzę >>> to adresy portów są word ale adres portu następnego jest jeden bit >>> dalej >>> , nie wiem czy czegoś nie rozumiem czy po prostu in i out coś ukrywa. >> Mylisz rozmiar "wskaźnika" z rozmiarem "zmiennej". > > Może tak napisałem że tak to wygląda ale nie mylę. > Wiem że adres może być np 4bajtowy i wskazywać na zmienną bajtową > ale następna zmienna będzie miała adres poprzedniej zmiennej + 8 Nie. Na przykład: mov eax, offset a mov ebx, offset b ... a db 0 b db 0 Adresy w rejestrach EAX i EBX są 32-bitowe, ale adres zmiennej "b" to adres zmiennej "a" powiększony o 1 (rozmiar zmiennej "a"), a nie o 4 (rozmiar rejestru adresowego, np. EAX). > Wydaje mi się że tu chodzi o adres fizyczny i adres mapowany w pamięci > I na to wygląda że adres portu równoległego jest adresem fizycznym. Tak, adres portu równoległego to adres urządzenia fizycznego i nie działa tak jak porty mapowane do pamięci. -- Pozdrawiam/Regards - Bogdan (GNU/Linux & FreeDOS) Kurs asemblera x86 (DOS, GNU/Linux):http://rudy.mif.pg.gda.pl/~bogdro Grupy dyskusyjne o asm: pl.comp.lang.asm alt.pl.asm alt.pl.asm.win32 www.Xiph.org www.TorProject.org Soft (EN): miniurl.pl/bogdro-soft
Re: Pytanie o Porty Procesora
Author: Marek Borowski
Date: Sat, 25 Sep 2010 10:21
Date: Sat, 25 Sep 2010 10:21
29 lines
1087 bytes
1087 bytes
On 24-09-2010 19:34, yesma wrote: > Michoo pisze: >> W dniu 23.09.2010 21:17, yesma pisze: >>> Powiedzmy że w segmencie .data jest jest dana ośmio bitowa czyli bajt >>> to następna dana będzie miała adres jeden bajt dalej, a z tego co widzę >>> to adresy portów są word ale adres portu następnego jest jeden bit dalej >>> , nie wiem czy czegoś nie rozumiem czy po prostu in i out coś ukrywa. >> Mylisz rozmiar "wskaźnika" z rozmiarem "zmiennej". > > Może tak napisałem że tak to wygląda ale nie mylę. > Wiem że adres może być np 4bajtowy i wskazywać na zmienną bajtową > ale następna zmienna będzie miała adres poprzedniej zmiennej + 8 > > Wydaje mi się że tu chodzi o adres fizyczny i adres mapowany w pamięci > I na to wygląda że adres portu równoległego jest adresem fizycznym. > Chyba wiem w czym jest problem. Procesor x86 nalezy do grupy dziwnych procesorow ktore maja porty IO zaimplementowane jako inna przestrzen adresowa niz pamiec. Zwroc uwage ze dostep do portu I/O jest na x86 realizowany poprzez specjalne instrukcje. Pozdr Marek
Re: Pytanie o Porty Procesora
Author: yesma
Date: Sat, 25 Sep 2010 20:40
Date: Sat, 25 Sep 2010 20:40
73 lines
1637 bytes
1637 bytes
Bogdan (bogdro) pisze: > W dniu 24.09.2010 19:34, yesma pisze: >> Michoo pisze: >>> W dniu 23.09.2010 21:17, yesma pisze: >>>> Powiedzmy że w segmencie .data jest jest dana ośmio bitowa czyli bajt >>>> to następna dana będzie miała adres jeden bajt dalej, a z tego co >>>> widzę >>>> to adresy portów są word ale adres portu następnego jest jeden bit >>>> dalej >>>> , nie wiem czy czegoś nie rozumiem czy po prostu in i out coś ukrywa. >>> Mylisz rozmiar "wskaźnika" z rozmiarem "zmiennej". >> Może tak napisałem że tak to wygląda ale nie mylę. >> Wiem że adres może być np 4bajtowy i wskazywać na zmienną bajtową >> ale następna zmienna będzie miała adres poprzedniej zmiennej + 8 Tutaj chodziło mi + 8 bitów zamotałem się trochę. > > Nie. Na przykład: > > > mov eax, offset a > mov ebx, offset b > > .... > > a db 0 > b db 0 > > Adresy w rejestrach EAX i EBX są 32-bitowe, ale adres zmiennej "b" to > adres zmiennej "a" powiększony o 1 (rozmiar zmiennej "a"), a nie o 4 > (rozmiar rejestru adresowego, np. EAX). > Tak już sprawdziłem adresy zmieniają się co bajt ( + 1 == + 1bajt) section .data a db 0 b db 0 c dd 0 d db 0 ;a 00600198 ;b 00600199 ;c 0060019A ;d 0060019E tmp dd 0 section .text global _start _start: mov eax,a mov [tmp],eax sys_write 1,tmp,4 mov eax,b mov [tmp],eax sys_write 1,tmp,4 mov eax,c mov [tmp],eax sys_write 1,tmp,4 mov eax,d mov [tmp],eax sys_write 1,tmp,4 sys_exit -- Pozdrawiam - Grzechu Linux x86_64
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