Thread View: pl.comp.lang.asm
21 messages
21 total messages
Started by PioM
Fri, 15 Sep 2006 13:31
dokumentacja p4
Author: PioM
Date: Fri, 15 Sep 2006 13:31
Date: Fri, 15 Sep 2006 13:31
20 lines
1444 bytes
1444 bytes
Witam W dokumentacji od P4 zaskoczyla mnie instrukcja ENTER i jej opis make stack frame for procedure paramaters. Domyslam sie ze ma to znaczyc zrob ramke stosu dla parametrow procedury. Druga rzecz ktora wydaje sie dziwna do przerwania, ktore zwykle kojarza sie z BIOSem nie bledami. Np. po uruchomienia programu typu mov ax,0x0001 mov bx,0x0001 mov cx,0x0001 mov dx,0x0001 int 0x0 wyskakuje komunikat: typu Blad dzielenia przez zero. Skontaktuj sie z sprzedawca. -- PioM
Re: dokumentacja p4
Author: Bogdan (bogdro)
Date: Fri, 15 Sep 2006 14:38
Date: Fri, 15 Sep 2006 14:38
37 lines
2147 bytes
2147 bytes
PioM napisał(a): > Witam > > W dokumentacji od P4 zaskoczyla mnie instrukcja ENTER i jej opis make stack > frame for procedure paramaters. > Domyslam sie ze ma to znaczyc zrob ramke stosu dla parametrow procedury. Tak. Jest to wolniejszy odpowiednik sekwencji push ebp mov ebp, esp sub esp, xxx > Druga rzecz ktora wydaje sie dziwna do przerwania, ktore zwykle kojarza sie > z BIOSem nie bledami. > > Np. po uruchomienia programu typu > mov ax,0x0001 > mov bx,0x0001 > mov cx,0x0001 > mov dx,0x0001 > int 0x0 > > wyskakuje komunikat: typu Blad dzielenia przez zero. Skontaktuj sie z > sprzedawca. Mechanizm przerwania to nie tylko BIOS. To także DOS, Linux oraz nieoficjalnie Windows. Ale wracając do tematu: część przerwań jest podporządkowana pod wyjątki, np. właśnie dzielenie przez zero. Jak procesor natrafi na dzielenie przez zero (lub gdy wynik jest zbyt duży), wywoływane jest int 0. -- 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 Prawdziwy, bezpieczny komunikator: www.JabberPL.org
Re: dokumentacja p4
Author: Matuzalem
Date: Fri, 15 Sep 2006 14:50
Date: Fri, 15 Sep 2006 14:50
71 lines
3113 bytes
3113 bytes
PioM napisał(a): > Witam > > W dokumentacji od P4 zaskoczyla mnie instrukcja ENTER i jej opis make stack > frame for procedure paramaters. > Domyslam sie ze ma to znaczyc zrob ramke stosu dla parametrow procedury. Polecenie ENTER (dla proc 80286) powoduje utworzenie ramki stosu i przygotowuje procedurę do obsługi przekazanych parametrów. ENTER ma dwa operandy: 1). stała decydująca o liczbie bajtów jaka zostanie zarezerowowana na stos dla lokalnych zmiennych 2). stała decydująca o pozoimie zagnieżdżenia procedury np. MyProc proc enter 4, 0 to jest dokładnie to samo co: MyProc proc push bp mov bp, sp sub sp, 4 > Druga rzecz ktora wydaje sie dziwna do przerwania, ktore zwykle kojarza sie > z BIOSem nie bledami. > > Np. po uruchomienia programu typu > mov ax,0x0001 > mov bx,0x0001 > mov cx,0x0001 > mov dx,0x0001 > int 0x0 > > wyskakuje komunikat: typu Blad dzielenia przez zero. Skontaktuj sie z > sprzedawca. int 0h http://www.ctyme.com/intr/int-00.htm oraz RBIL: --------C-00--------------------------------- INT 00 C - CPU-generated - DIVIDE ERROR Desc: generated if the divisor of a DIV or IDIV instruction is zero or the quotient overflows the result register; DX and AX will be unchanged. Notes: on an 8086/8088, the return address points to the following instruction on an 80286+, the return address points to the divide instruction an 8086/8088 will generate this interrupt if the result of a division is 80h (byte) or 8000h (word) SeeAlso: INT 04,OPCODE "AAD" --------G-00--------------------------------- INT 00 - Zenith - ROM DEBUGGER Desc: invokes the ROM Debugger when at the BIOS level; equivalent to pressing Ctrl-Alt-Ins on booting. Note: since DOS revectors INT 00, it is necessary to restore this vector to its original ROM BIOS value in order to invoke the debugger once DOS loads SeeAlso: INT 03"Columbia" Pozdrawiam
Re: dokumentacja p4
Author: Wojciech Muła
Date: Fri, 15 Sep 2006 15:07
Date: Fri, 15 Sep 2006 15:07
8 lines
1173 bytes
1173 bytes
Bogdan (bogdro) wrote: > Ale wracając do tematu: część przerwań jest podporządkowana pod > wyjątki, Jeśli dobrze pamiętam, to Intel zarezerwował na wyjątki pierwsze 32 numery przerwań. Ale producenci BIOS to olali, niestety. w.
Re: dokumentacja p4
Author: Bernard
Date: Fri, 15 Sep 2006 15:36
Date: Fri, 15 Sep 2006 15:36
31 lines
1727 bytes
1727 bytes
PioM wrote: > Witam > > W dokumentacji od P4 zaskoczyla mnie instrukcja ENTER i jej opis make stack > frame for procedure paramaters. P4? To było już w 1979 roku w 80186. > Domyslam sie ze ma to znaczyc zrob ramke stosu dla parametrow procedury. Niezupełnie, ale niedaleko. Problem w tym, że ta instrukcja jest "przedobrzona" i począwszy od i486 (a może od Pentium) wykonuje się wolniej, niż trzy instrukcje, które zastępuje. > Druga rzecz ktora wydaje sie dziwna do przerwania, ktore zwykle kojarza sie > z BIOSem nie bledami. źle się kojarzą. > Np. po uruchomienia programu typu > mov ax,0x0001 > mov bx,0x0001 > mov cx,0x0001 > mov dx,0x0001 > int 0x0 > > wyskakuje komunikat: typu Blad dzielenia przez zero. Skontaktuj sie z > sprzedawca. To znaczy, że procesor działa poprawnie :) Kłopot byłby, gdyby w trybie rzeczywistym zareagował inaczej.
Re: dokumentacja p4
Author: Wiktor S.
Date: Fri, 15 Sep 2006 21:39
Date: Fri, 15 Sep 2006 21:39
27 lines
1582 bytes
1582 bytes
>> W dokumentacji od P4 zaskoczyla mnie instrukcja ENTER i jej opis >> make stack frame for procedure paramaters. > > P4? To było już w 1979 roku w 80186. Być to sobie było, ale jak widać autor wątku wczytywał się w tę od P4, nie od 186. >> Domyslam sie ze ma to znaczyc zrob ramke stosu dla parametrow >> procedury. > > Niezupełnie, ale niedaleko. Problem w tym, że ta instrukcja jest > "przedobrzona" i począwszy od i486 (a może od Pentium) wykonuje się > wolniej, niż trzy instrukcje, które zastępuje. zdaje się, że i coś w stylu petla: ... dec ax jnz petla jest (a przynajmniej na niektórych prockach) szybsze od loop. -- Azarien
Re: dokumentacja p4
Author: PioM
Date: Sat, 16 Sep 2006 14:52
Date: Sat, 16 Sep 2006 14:52
27 lines
1829 bytes
1829 bytes
Użytkownik "Bogdan (bogdro)" <bogdan@bogdan.pl> napisał w wiadomości news:eeedu3$k3f$1@atlantis.news.tpi.pl... > PioM napisał(a): >> Witam >> >> W dokumentacji od P4 zaskoczyla mnie instrukcja ENTER i jej opis make >> stack >> frame for procedure paramaters. >> Domyslam sie ze ma to znaczyc zrob ramke stosu dla parametrow procedury. > > Tak. Jest to wolniejszy odpowiednik sekwencji > > push ebp > mov ebp, esp > sub esp, xxx wiekszy sens mialoby pop eip i na koncu push eip przed retn > -- > 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 > Prawdziwy, bezpieczny komunikator: www.JabberPL.org Pozdrawiam PioM
Re: dokumentacja p4
Author: Maciej Oszutowski
Date: Sat, 16 Sep 2006 16:38
Date: Sat, 16 Sep 2006 16:38
15 lines
1096 bytes
1096 bytes
Dnia Sat, 16 Sep 2006 16:52:51 +0200, PioM napisał(a): >> Tak. Jest to wolniejszy odpowiednik sekwencji >> >> push ebp >> mov ebp, esp >> sub esp, xxx > > wiekszy sens mialoby pop eip i na koncu push eip przed retn To już jest zupełnie bez sensu. -- | Maciej Oszutowski | Mowa jest srebrem | | imagiATpsytranceDOTpl | a milczenie owiec. |
Re: dokumentacja p4
Author: Wojciech Muła
Date: Sat, 16 Sep 2006 18:41
Date: Sat, 16 Sep 2006 18:41
4 lines
1004 bytes
1004 bytes
PioM wrote: > wiekszy sens mialoby pop eip i na koncu push eip przed retn Że co?
Re: dokumentacja p4
Author: Wiktor S.
Date: Sat, 16 Sep 2006 18:51
Date: Sat, 16 Sep 2006 18:51
25 lines
1112 bytes
1112 bytes
>> push ebp >> mov ebp, esp >> sub esp, xxx > > wiekszy sens mialoby pop eip czyli ret i na koncu push eip czyli call here here: czyli że co? :-) -- Azarien
Re: dokumentacja p4
Author: Maciej Oszutowski
Date: Sat, 16 Sep 2006 18:59
Date: Sat, 16 Sep 2006 18:59
15 lines
1115 bytes
1115 bytes
Dnia Sat, 16 Sep 2006 20:51:03 +0200, Wiktor S. napisał(a): >> wiekszy sens mialoby pop eip > > czyli ret No, żeby było ret to jeszcze musiałoby być: jmp [esp] o ile dobrze kojarzę ;) -- | Maciej Oszutowski | Mowa jest srebrem | | imagiATpsytranceDOTpl | a milczenie owiec. |
Re: dokumentacja p4
Author: Maciej Oszutowski
Date: Sat, 16 Sep 2006 19:01
Date: Sat, 16 Sep 2006 19:01
19 lines
1265 bytes
1265 bytes
Dnia Sat, 16 Sep 2006 20:59:50 +0200, Maciej Oszutowski napisał(a): > Dnia Sat, 16 Sep 2006 20:51:03 +0200, Wiktor S. napisał(a): > >>> wiekszy sens mialoby pop eip >> >> czyli ret > > No, żeby było ret to jeszcze musiałoby być: > > jmp [esp] > > o ile dobrze kojarzę ;) Ale to to już by doszczętnie ramkę stosu popsuło... ;> -- | Maciej Oszutowski | Mowa jest srebrem | | imagiATpsytranceDOTpl | a milczenie owiec. |
Re: dokumentacja p4
Author: PioM
Date: Sun, 17 Sep 2006 13:28
Date: Sun, 17 Sep 2006 13:28
8 lines
1275 bytes
1275 bytes
>>> push ebp >>> mov ebp, esp >>> sub esp, xxx >> >> wiekszy sens mialoby pop eip i na koncu push eip przed retn > > To już jest zupełnie bez sensu. Wtedy moze byc push i pop parametrow. :-|
Re: dokumentacja p4
Author: PioM
Date: Fri, 13 Oct 2006 12:58
Date: Fri, 13 Oct 2006 12:58
8 lines
1301 bytes
1301 bytes
Witam Znalazlem tam bledy zwiazane z instrukcja SAL i SHL. Uznana jest jako taka sama instrukcja w rzeczywistosci obrot liczby w rejestrze o n bitow i jej przesuniecie o tylez samo bitow to nie to samo. Mam na mysli polecenia zgrupowane w jednym rozkazie (/0.../7). Brakuje tam tez 3 polecen. Zarezerwowane?
Re: dokumentacja p4
Author: Wojciech Muła
Date: Fri, 13 Oct 2006 13:24
Date: Fri, 13 Oct 2006 13:24
8 lines
1126 bytes
1126 bytes
PioM wrote: > Znalazlem tam bledy zwiazane z instrukcja SAL i SHL. Uznana jest jako taka > sama instrukcja w rzeczywistosci obrot liczby w rejestrze o n bitow i jej > przesuniecie o tylez samo bitow to nie to samo. Jakie obroty? w.
Re: dokumentacja p4
Author: Bogdan (bogdro)
Date: Fri, 13 Oct 2006 14:29
Date: Fri, 13 Oct 2006 14:29
22 lines
1835 bytes
1835 bytes
PioM napisał(a): > Witam > > Znalazlem tam bledy zwiazane z instrukcja SAL i SHL. Uznana jest jako taka > sama instrukcja w rzeczywistosci obrot liczby w rejestrze o n bitow i jej > przesuniecie o tylez samo bitow to nie to samo. Litera 'S' w nazwach obu tych instrukcji jest skrótem od słowa 'Shift', a obie te instrukcje służą do przesuwania bitów. Obroty są realizowane instrukcjami 'Rotate': ROL, ROR, RCL, RCR. > Mam na mysli polecenia zgrupowane w jednym rozkazie (/0.../7). Brakuje tam > tez 3 polecen. Zarezerwowane? Nie odpowiem, bo nie rozumiem pytania. Może najpierw przeczytaj legendę w manualach (bo jest). -- 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 Prawdziwy, bezpieczny komunikator: www.JabberPL.org
Re: dokumentacja p4
Author: PioM
Date: Sat, 14 Oct 2006 19:04
Date: Sat, 14 Oct 2006 19:04
10 lines
1360 bytes
1360 bytes
>> Mam na mysli polecenia zgrupowane w jednym rozkazie (/0.../7). Brakuje >> tam >> tez 3 polecen. Zarezerwowane? > > Nie odpowiem, bo nie rozumiem pytania. Może najpierw przeczytaj > legendę w manualach (bo jest). Jest o tym w dokumentacji. Ja wiem o co chodzi, wiec nie musze czytac drugi raz. Glupia sprawa.
Re: dokumentacja p4
Author: Bogdan (bogdro)
Date: Sun, 15 Oct 2006 08:32
Date: Sun, 15 Oct 2006 08:32
26 lines
2005 bytes
2005 bytes
PioM napisał(a): >>> Mam na mysli polecenia zgrupowane w jednym rozkazie (/0.../7). Brakuje >>> tam >>> tez 3 polecen. Zarezerwowane? >> Nie odpowiem, bo nie rozumiem pytania. Może najpierw przeczytaj >> legendę w manualach (bo jest). > > Jest o tym w dokumentacji. Ja wiem o co chodzi, wiec nie musze czytac drugi > raz. > Glupia sprawa. Wiem, że jest o tym w dokumentacji. Inaczej bym tego nie mówił. IASDMv2, 3-1: /digit - A digit between 0 and 7 indicates that the ModR/M byte of the instruction uses only the r/m (register or memory) operand. The reg field contains the digit that provides an extension to the instruction's opcode. Polecenia zgrupowane w jednym rozkazie? Jakich poleceń brakuje? -- 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 Prawdziwy, bezpieczny komunikator: www.JabberPL.org
Re: dokumentacja p4
Author: PioM
Date: Sun, 15 Oct 2006 15:35
Date: Sun, 15 Oct 2006 15:35
34 lines
1982 bytes
1982 bytes
>>> Nie odpowiem, bo nie rozumiem pytania. Może najpierw przeczytaj >>> legendę w manualach (bo jest). Blad, czytalem o poleceniach. Agresywna ta dokumentacja, powinna byc neutralna. >> Glupia sprawa. > Wiem, że jest o tym w dokumentacji. Inaczej bym tego nie mówił. Nie mowie ze nie ma, ale sprawa pewnie jest efektem czynnikow podswiadomych zewnetrznych. Hipnoza? > IASDMv2, 3-1: > /digit - A digit between 0 and 7 indicates that the ModR/M byte of > the instruction uses only the r/m (register or memory) operand. The > reg field contains the digit that provides an extension to the > instruction's opcode. Plonk :-) > Polecenia zgrupowane w jednym rozkazie? Jakich poleceń brakuje? C0,C1,D0,D1,D2,D3 /6 (SAL?) F6,F7 /1 (rezerwacja?) FF,FE /7 (pop?) F0 LOCK, puste F1. D5 nie widzialem ich w dokumentacji. -- Pozdrawiam PioM
Re: dokumentacja p4
Author: Wiktor S.
Date: Sun, 15 Oct 2006 18:47
Date: Sun, 15 Oct 2006 18:47
14 lines
1431 bytes
1431 bytes
>>>> Nie odpowiem, bo nie rozumiem pytania. Może najpierw przeczytaj >>>> legendę w manualach (bo jest). > > Blad, czytalem o poleceniach. Agresywna ta dokumentacja, powinna byc > neutralna. Co w niej jest agresywnego? Chociaż nie wiem czemu, ale bardziej wolę dokumentację AMD - treść praktycznie jest ta sama, ale jakoś lepszym stylem napisana. -- Azarien
Re: dokumentacja p4
Author: PioM
Date: Fri, 27 Oct 2006 13:45
Date: Fri, 27 Oct 2006 13:45
7 lines
1286 bytes
1286 bytes
> Co w niej jest agresywnego? Sprawia takie wrazenie. -- PioM
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