![]() |
|
|
![]()
|
|
| oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: 7 Всего: 34 |
запутался я господа с установкой ексцепшенов
делаю cli xor eax,eax mov ax,cs shl eax,4 mov ebx,eax add ebx,idt add eax,gdt mov [cs:gz],eax mov [cs:iz],eax lgdt [cs:metgdt] lidt [cs:idtadr] mov eax, cr0 or eax, 1 mov cr0, eax jmp 8:code32 exhandler: cli hlt metgdt: dw gdt_end - gdt-1 gz: dd 0 gdt: gdt_null: dd 0,0 gdt_code: dw 0FFFFh dw 0 db 0 db 10011010b db 11001111b db 0 gdt_data: dw 0FFFFh dw 0 db 0 db 10010010b db 11001111b db 0 gdt_end: idtadr: dw idt_end-idt-1 iz: dd 0 idt: idt_null: dd 0,0 // int 0 при делении на 0 вырабатывается dw exphandler dw 0х10 db 0 db 8Eh dw 0 idt_end: use32 code32: mov ax,10h mov ds,ax mov ss,ax mov es,ax mov gs,ax mov fs,ax mov esp,090000h xor edx,edx div edx по идеи после этого вырабатвается int 0 и управление должно перети на exhandler: на практике нифига кто знает в чем проблема? -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
| Chingachguk |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1232 Регистрация: 25.3.2002 Где: Москва Репутация: нет Всего: 18 |
Ты бы хоть отладку какую подрубил... Попадаешь ли в use32 и т.п. Объяви дескриптор на video. Сто пудов у тебя сразу эксепшен какой-то возникает.
На всякий случай кидаю свой исходник - переделанный из книги Финогенова - работа с DRx:
Это сообщение отредактировал(а) Chingachguk - 13.2.2004, 21:05 -------------------- I don't like the drugs (but the drugs like me). M.Manson. |
|||
|
||||
| oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: 7 Всего: 34 |
в use 32 попадаю 100 процентно
при записи в видео ехцепшинов нету mov [0b8000h],byte "A" работает спокойно тоесть все работает до div edx не переходит на мой хандл -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
| Chingachguk |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1232 Регистрация: 25.3.2002 Где: Москва Репутация: нет Всего: 18 |
Напиши, не поленись, обработку всех эксепшенов. С одним тока выводом - номером исключения. Я так загрузчик какой-то оси самопальной долго пытался исправить (админа codenet), пока не написал - не смог понять.
-------------------- I don't like the drugs (but the drugs like me). M.Manson. |
|||
|
||||
| oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: 7 Всего: 34 |
ты мне скажи idt правильное у меня?
-------------------- SST 465555 icq 200-512-712 |
|||
|
||||
| Chingachguk |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1232 Регистрация: 25.3.2002 Где: Москва Репутация: нет Всего: 18 |
Ну арибуты у нас точно разные ;) (8E->8F) Я счас пиво пью, много сказать не могу
-------------------- I don't like the drugs (but the drugs like me). M.Manson. |
|||
|
||||
| oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: 7 Всего: 34 |
в оригинале у меня так вот
ACC_PRESENT EQU 10000000b ; сегмент есть в памяти ACC_CSEG EQU 00011000b ; сегмент кода ACC_DSEG EQU 00010000b ; сегмент данных ACC_EXPDOWN EQU 00000100b ; сегмент расширяется вниз ACC_CONFORM EQU 00000100b ; согласованный сегмент ACC_DATAWR EQU 00000010b ; разрешена запись ACC_INT_GATE EQU 00000110b ; вентиль прерывания ACC_TRAP_GATE EQU 00000111b ; вентиль исключения idtadr: dw idt_end-idt-1 iz: dd 0 idt: dd 0,0 dw exphandler dw 0х10 db 0 db ACC_PRESENT OR ACC_TRAP_GATE dw 0 idt_end: -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
| Chingachguk |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1232 Регистрация: 25.3.2002 Где: Москва Репутация: нет Всего: 18 |
Хорошо, а стек как ? У тебя на все про все один дескриптор 0x10. А стек при исключении нужен. - ? Попробуй push. Перед div.
-------------------- I don't like the drugs (but the drugs like me). M.Manson. |
|||
|
||||
| oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: 7 Всего: 34 |
ну да один сегмент с 0 до 4гб
стек на mov esp,090000h стек тут не причем я думаю -------------------- SST 465555 icq 200-512-712 |
|||
|
||||
| Chingachguk |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1232 Регистрация: 25.3.2002 Где: Москва Репутация: нет Всего: 18 |
Стек же вниз растет. А у тебя где esp ?
-------------------- I don't like the drugs (but the drugs like me). M.Manson. |
|||
|
||||
| Chingachguk |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1232 Регистрация: 25.3.2002 Где: Москва Репутация: нет Всего: 18 |
Вот. Сделал код, переходящий в pmode (но как - то криво выходящий), ловит исключения (все), выводит номер исключения, при нажатии на клавишу показывает ее код, показывает время (таймер). При нажатии на "1" делает div 0 и показывает опкод команды, вызвавшей исключение.
-------------------- I don't like the drugs (but the drugs like me). M.Manson. |
|||
|
||||
![]()
|
| Правила форума "Asm: Общие вопросы" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Asm: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |