Thread View: pl.comp.lang.asm
7 messages
7 total messages
Started by aa
Fri, 21 Dec 2007 16:30
MS VirtualPC i problem z iret
Author: aa
Date: Fri, 21 Dec 2007 16:30
Date: Fri, 21 Dec 2007 16:30
11 lines
1367 bytes
1367 bytes
Witam Korzystam z MS Virtual PC, aby testować programy w trybie chronionym. Do tej pory wszystko działało dobrze, ale napotkałem teraz problem z instrukcją "iret" przy powrocie z zadania. Zadanie wywołuję poprzez CALL do bramki TSS. W normalnym komputerze i w Virtual Box program działa prawidłowo, a w Virtual PC wywala się na tej instrukcji :-\ BTW: korzystam z VPC bo umożliwia korzystanie z folderów dzielonych pod czystym dos'em. Andy
Re: MS VirtualPC i problem z iret
Author: Michal Schulz
Date: Fri, 21 Dec 2007 19:58
Date: Fri, 21 Dec 2007 19:58
12 lines
1209 bytes
1209 bytes
aa wrote: > Korzystam z MS Virtual PC, aby testować programy w trybie chronionym. Do > tej pory wszystko działało dobrze, ale napotkałem teraz problem z > instrukcją "iret" przy powrocie z zadania. Zadanie wywołuję poprzez CALL > do bramki TSS. W normalnym komputerze i w Virtual Box program działa > prawidłowo, a w Virtual PC wywala się na tej instrukcji :-\ Troche za malo konkretow podales a fusy w kubku sie skonczyly -- Michal Schulz
Re: MS VirtualPC i problem z iret
Author: aa
Date: Fri, 21 Dec 2007 22:46
Date: Fri, 21 Dec 2007 22:46
103 lines
3156 bytes
3156 bytes
Użytkownik "Michal Schulz" <michal.schulz@onet.eu> napisał w wiadomości
news:fkh5tv$k5v$1@news.onet.pl...
> aa wrote:
>
> Troche za malo konkretow podales a fusy w kubku sie skonczyly
>
Mam wyjątek 13 (ogólny) z adresem EIP = adresowi "iret". Nawet jak w tasku
jest tylko iret to wyjątek jest generowany i wskazuje na eip=0 (czyli iret).
Jezeli jest wypisywanie na ekran to napis pojawia się a potem jest wyjątek i
wnowu wskazuje na iret.
Pytanie: czy można iret zamienić na coś innego? Bo widać VPC sobie z nim nie
radzi.
Poniżej zamieszczam skórcony listing.
Andy
--------------
...
data segment use16
; Tablica GDT
gdt_null descr <>
gdt_data descr <data_size-1,0,0,92h>
gdt_code descr <code_size-1,0,0,9Ah>
gdt_stack descr <599,0,0,92h,0,>
gdt_screen descr <3999,8000h,0Bh,92h>
gdt_text1 descr <text1_size-1,0,0,9Ah,0,0> ;40
gdt_text2 descr <text2_size-1,0,0,9Ah,0,0> ;48
gdt_tss0 descr <103,0,0,89h,0,0> ;56
gdt_tss1 descr <103,0,0,89h,0,0> ;64
gdt_tss2 descr <103,0,0,89h,0,0> ;72
gdt_size=$-gdt_null
...
tss0 dw 52 dup (0)
tss1 dw 52 dup (0)
tss2 dw 52 dup (0)
task1_offs dw 0
task1_sel dw 64
task2_offs dw 0
task2_sel dw 72
data_size=$-gdt_null
data ends
...
;wstawienie do GDT adres seg. text1
...
;wstawienie do GDT adres seg. text2
...
;wstawienie do GDT adres TSS0
...
;wstawienie do GDT adres TSS1
...
;wstawienie do GDT adres TSS2
...
;inicjalizacja TSS1
mov tss1+4Ch,40 ; CS
mov tss1+20h,offset task1 ; IP
mov tss1+50h,24 ; SS
mov tss1+38h,200 ; SP
mov tss1+54h,40 ; DS=CS
mov tss1+48h,32 ; ES
;inicjalizacja TSS2
....
; Przejscie do trybu chronionego
...
; przelaczanie zadania
call dword ptr task1_offs
;; TU JUZ NIE WRACA
; Powrot do trybu real
...
main endp
...
;segment rozkazow zadania 1
text1 segment use16
task1 proc
; tu: wypisywanie na ekran napisu (działa)
iret
msg db 'Task1'
task1 endp
text1_size=$-task1
text1 ends
;segment rozkazow zadania 2
text2 segment use16
....
Re: MS VirtualPC i problem z iret
Author: Bernard
Date: Sun, 23 Dec 2007 10:29
Date: Sun, 23 Dec 2007 10:29
18 lines
1528 bytes
1528 bytes
aa wrote: > Użytkownik "Michal Schulz" <michal.schulz@onet.eu> napisał w wiadomości > news:fkh5tv$k5v$1@news.onet.pl... >> aa wrote: >> >> Troche za malo konkretow podales a fusy w kubku sie skonczyly >> > > Mam wyjątek 13 (ogólny) z adresem EIP = adresowi "iret". Nawet jak w > tasku jest tylko iret to wyjątek jest generowany i wskazuje na eip=0 > (czyli iret). Jezeli jest wypisywanie na ekran to napis pojawia się a > potem jest wyjątek i wnowu wskazuje na iret. > > Pytanie: czy można iret zamienić na coś innego? Bo widać VPC sobie z nim > nie radzi. VPC napewno "radzi" sobie z iret. Problem leży zapewne w kontekście ładowanym po iret.
Re: MS VirtualPC i problem z iret
Author: aa
Date: Sun, 23 Dec 2007 14:14
Date: Sun, 23 Dec 2007 14:14
28 lines
2070 bytes
2070 bytes
Użytkownik "Bernard" <bernard@earth.net> napisał w wiadomości news:476e2e27$0$20803$f69f905@mamut2.aster.pl... > aa wrote: >> Użytkownik "Michal Schulz" <michal.schulz@onet.eu> napisał w wiadomości >> news:fkh5tv$k5v$1@news.onet.pl... >>> aa wrote: >>> >>> Troche za malo konkretow podales a fusy w kubku sie skonczyly >>> >> >> Mam wyjątek 13 (ogólny) z adresem EIP = adresowi "iret". Nawet jak w >> tasku jest tylko iret to wyjątek jest generowany i wskazuje na eip=0 >> (czyli iret). Jezeli jest wypisywanie na ekran to napis pojawia się a >> potem jest wyjątek i wnowu wskazuje na iret. >> >> Pytanie: czy można iret zamienić na coś innego? Bo widać VPC sobie z nim >> nie radzi. > > VPC napewno "radzi" sobie z iret. Problem leży zapewne w kontekście > ładowanym po iret. Może tak być. Ale TSS zadania głównego (programu) ustawiam tak jak inne TSSy :-\ Nie mam pojęcia. A gdzie mógłbym znaleźć poprawny przykład z przełączaniem zadań w asm? Andrew
Re: MS VirtualPC i problem z iret
Author: Kicer
Date: Sun, 23 Dec 2007 18:48
Date: Sun, 23 Dec 2007 18:48
25 lines
1515 bytes
1515 bytes
aa wrote: > > Może tak być. Ale TSS zadania głównego (programu) ustawiam tak jak > inne TSSy > :-\ > Nie mam pojęcia. > > A gdzie mógłbym znaleźć poprawny przykład z przełączaniem zadań w asm? na przełączaniu przy pomocy tssa mało sie znam wiec moge doradzić 2 alternatywy: 1. pobaw sie przełączaniem przy pomocy stosu 2. zobacz co na to bochs, jesli sie wywali to poda wiecej szczegółów niz virtual pc 3. gratis;): poszukaj na osdever.net ew osdev.pl, źródło jakiegos osa przejrzyj pozdro, wesołych :) -- Michał Walenciak, gg: 3729519, mail: Kicer86 na gmail kropka com http://kicer.elsat.net.pl
Re: MS VirtualPC i problem z iret
Author: Michal Schulz
Date: Sun, 23 Dec 2007 19:28
Date: Sun, 23 Dec 2007 19:28
9 lines
1148 bytes
1148 bytes
Kicer wrote: > 3. gratis;): poszukaj na osdever.net ew osdev.pl, źródło jakiegos osa > przejrzyj Wiekszosc systemow nie uzywa juz TSS do przelaczania zadan :) -- Michal Schulz
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