Thread View: pl.comp.lang.asm
8 messages
8 total messages
Started by yesma
Wed, 22 Sep 2010 18:15
Pytanie o Porty Procesora
Author: yesma
Date: Wed, 22 Sep 2010 18:15
Date: Wed, 22 Sep 2010 18:15
7 lines
974 bytes
974 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 16:57
Date: Thu, 23 Sep 2010 16:57
16 lines
1640 bytes
1640 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 19:17
Date: Thu, 23 Sep 2010 19:17
21 lines
1741 bytes
1741 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 11:23
Date: Fri, 24 Sep 2010 11:23
14 lines
1494 bytes
1494 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 17:34
Date: Fri, 24 Sep 2010 17:34
19 lines
1727 bytes
1727 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 18:59
Date: Fri, 24 Sep 2010 18:59
41 lines
2495 bytes
2495 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 08:21
Date: Sat, 25 Sep 2010 08:21
25 lines
2127 bytes
2127 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 18:40
Date: Sat, 25 Sep 2010 18:40
72 lines
2672 bytes
2672 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