Obsah fóra www.hojko.com
Aukro.sk
Hľadať  •  FAQ  •  IP  •  CS  •  Zoznam užívateľov  •  Karma  •  Závisláci  •  Registrácia
 Prihlásiť sa pre kontrolu súkromných správ  •  Prihlásenie





Assembler - Rezidentny program
Odoslať novú tému   Odpovedať na tému    Obsah fóra www.hojko.com -> Programovanie  
 Moje príspevky :: Zobraziť predchádzajúcu tému :: Zobraziť nasledujúcu tému  
Autor Správa
Anti
Expert
Expert


Pohlavie: Pohlavie:Muž
Stav: Odhlásený
Založený: 16.02.2006
Príspevky: 156
Bydlisko: Kosice
Karma:  Odobrať Kladná karma Pridať

PríspevokZaslal: 29 Máj 2008, 21:05    Predmet: Assembler - Rezidentny program Odpovedať s citátom  

Snazim sa napisat rezidentny program, ktory obsadi INT 5 (PrtScr) ale nefunguje to.. mam v tom trosku zmazok.. mohol by sa na to niekto prosim pozriet?

Kód:
bits 16
org 0x0100

[SEGMENT .text]

; ---------------------
; |  REZIDENTNA CAST   |
; ---------------------

  jmp START                     

NOVA_OBSLUHA:
  push ax
  push dx
  push cx
  mov ah, $2b                                     
  mov cx, 1999
  mov dh, 1
  mov dl, 1     
  int 21h                                         ; zmenime cas
  pop cx
  pop dx
  pop ax
  jmp far [cs:int_x05_offset]                     ; a predame riadenie povodnej obsluhe
;END NOVA_OBSLUHA

; -----------------------
; |  NEREZIDENTNA CAST   |
; -----------------------

START:
  call SETUP                                      ; nastavime premenne a vektory
  mov ah, 31h                                     ; fcia 31h - stay resident
  mov dx, START                                   ; offset konca rezidentnej casti
  shr dx, 4                                       ; delime 16 - rozdelime na paragrafy
  inc dx                                          ; pre istotu pripocitame jednotku
  int 21h                                         ; ukonci program a ostan rezidentny     
;END START

SETUP:
  cli
  xor ax, ax
  mov es, ax                                      ; segment tabulky vektorov je 0
  mov ax, [es:0x5*4]                              ;
  mov word [int_x05_offset], ax                   ; offsetova adresa stareho perusenia
  mov ax, [es:(0x5*4)+2]                          ;
  mov word [int_x05_segment], ax                  ; segmentova adresa stareho prerusenia
 
  mov ax, NOVA_OBSLUHA                            ; offsetova adresa novej obsluhy prerusenia
  mov [es:int_x05_offset], ax                     ;
  mov ax, cs                                      ; segmentova adresa novej obsluhy prerusenia
  mov [es:int_x05_segment], ax                    ;
  sti
  ret 
;END SETUP

[SEGMENT .data]
     
int_x05_offset        dw    ''
int_x05_segment       dw    ''
Návrat hore
Zobraziť informácie o autorovi Odoslať súkromnú správu Odoslať e-mail Zobraziť autorove WWW stránky MSN Messenger
chrono
VIP
VIP


Pohlavie: Pohlavie:Muž
Stav: Odhlásený
Založený: 25.12.2006
Príspevky: 5585

Karma:  Odobrať Kladná karma Pridať

PríspevokZaslal: 29 Máj 2008, 22:25    Predmet: Odpovedať s citátom  

Nie je chyba v tomto?
Kód:
  mov ax, NOVA_OBSLUHA                            ; offsetova adresa novej obsluhy prerusenia
  mov [es:0x5*4], ax                     ;
  mov ax, cs                                      ; segmentova adresa novej obsluhy prerusenia
  mov [es:(0x5*4)+2], ax                    ;
Návrat hore
Zobraziť informácie o autorovi Odoslať súkromnú správu
Anti
Expert
Expert


Pohlavie: Pohlavie:Muž
Stav: Odhlásený
Založený: 16.02.2006
Príspevky: 156
Bydlisko: Kosice
Karma:  Odobrať Kladná karma Pridať

PríspevokZaslal: 01 Jún 2008, 10:57    Predmet: Odpovedať s citátom  

skusal som aj bez tych premennych, ale stale to nejde..
Návrat hore
Zobraziť informácie o autorovi Odoslať súkromnú správu Odoslať e-mail Zobraziť autorove WWW stránky MSN Messenger
chrono
VIP
VIP


Pohlavie: Pohlavie:Muž
Stav: Odhlásený
Založený: 25.12.2006
Príspevky: 5585

Karma:  Odobrať Kladná karma Pridať

PríspevokZaslal: 01 Jún 2008, 15:41    Predmet: Odpovedať s citátom  

Tá chyba, čo som ti písal ja spôsobovala to, že si neprepísal odkaz na tvoju obsluhu prerušenia (len si prepísal uložené hodnoty) a teda sa tá tvoja obsluha ani nevolala.
Návrat hore
Zobraziť informácie o autorovi Odoslať súkromnú správu
Anti
Expert
Expert


Pohlavie: Pohlavie:Muž
Stav: Odhlásený
Založený: 16.02.2006
Príspevky: 156
Bydlisko: Kosice
Karma:  Odobrať Kladná karma Pridať

PríspevokZaslal: 01 Jún 2008, 16:49    Predmet: Odpovedať s citátom  

este raz sa pozri na moj zdrojak v prvom prispevku Smile asi si prehliadol es
Návrat hore
Zobraziť informácie o autorovi Odoslať súkromnú správu Odoslať e-mail Zobraziť autorove WWW stránky MSN Messenger
chrono
VIP
VIP


Pohlavie: Pohlavie:Muž
Stav: Odhlásený
Založený: 25.12.2006
Príspevky: 5585

Karma:  Odobrať Kladná karma Pridať

PríspevokZaslal: 01 Jún 2008, 17:05    Predmet: Odpovedať s citátom  

Myslíš si, že es:int_x05_offset je správna adresa? (v pamäti prepisuješ úplne náhodné miesto)
Návrat hore
Zobraziť informácie o autorovi Odoslať súkromnú správu
Anti
Expert
Expert


Pohlavie: Pohlavie:Muž
Stav: Odhlásený
Založený: 16.02.2006
Príspevky: 156
Bydlisko: Kosice
Karma:  Odobrať Kladná karma Pridať

PríspevokZaslal: 02 Jún 2008, 16:56    Predmet: Odpovedať s citátom  

preco nahodne? ved do premennej si predsa ulozim vypocitany offset 05h*4 a spolu s es=0 to ukazuje presne na offsetovu adresu INT 5
Návrat hore
Zobraziť informácie o autorovi Odoslať súkromnú správu Odoslať e-mail Zobraziť autorove WWW stránky MSN Messenger
chrono
VIP
VIP


Pohlavie: Pohlavie:Muž
Stav: Odhlásený
Založený: 25.12.2006
Príspevky: 5585

Karma:  Odobrať Kladná karma Pridať

PríspevokZaslal: 02 Jún 2008, 22:42    Predmet: Odpovedať s citátom  

es:int_x05_offset znamená, že sa použije segment ES a ako offset sa použije offset toho int_x05_offset (nepoužije sa obsah premennej, použije sa adresa). mov [es:0x5*4], ax robí to, čo sa robiť má.
Návrat hore
Zobraziť informácie o autorovi Odoslať súkromnú správu
Zobraziť príspevky z predchádzajúcich:    Časy uvádzané v GMT + 1 hodina
Odoslať novú tému   Odpovedať na tému    Obsah fóra www.hojko.com -> Programovanie
Strana 1 z 1

 
Prejdi na:  
Nemôžete odosielať nové témy do tohto fóra
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre
Nemôžete hlasovať v tomto fóre
Nemôžete pripájať súbory do tohto fóra
Môžete sťahovať súbory v tomto fóre


Powered by phpBB © 2005 phpBB Group, phpBB SEO, © Hojko 2004-2008

[ Vygenerované za: 0.1s ] :: [ 16 Queries ] :: [ 12,787 stránok za dnes ] :: [ Dnes DB: 216,750 ] :: [ Max DB: 3,232,735 Queries ]