🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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
#1643
Author: aa
Date: Fri, 21 Dec 2007 16:30
11 lines
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
#1644
Author: Michal Schulz
Date: Fri, 21 Dec 2007 19:58
12 lines
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
#1645
Author: aa
Date: Fri, 21 Dec 2007 22:46
103 lines
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
#1646
Author: Bernard
Date: Sun, 23 Dec 2007 10:29
18 lines
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
#1647
Author: aa
Date: Sun, 23 Dec 2007 14:14
28 lines
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
#1648
Author: Kicer
Date: Sun, 23 Dec 2007 18:48
25 lines
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
#1649
Author: Michal Schulz
Date: Sun, 23 Dec 2007 19:28
9 lines
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