Программные прирывания + Microsoft
От: Аноним  
Дата: 22.06.09 12:08
Оценка:
Имеется простейшая прога на Асме которая успешно компилится и линкуется ml'ем образуя .ехе файл. Но при запуске вываливается ошибка. Вижла при этом пишет:

Unhandled exception at 0x008b1009 in hello.exe: 0xC0000005: Access violation reading location 0xffffffff, указывая на int 21h.

Код следующий:

     .486
        
     .model flat
        
.data

     message db      "Hello, World!", 0

.code

main:

     assume    ds:@data, cs:@code
     mov    dx, word ptr message
     mov    ah, 9
     int    21h
     mov    ah, 4ch
     int    21h
        
end        main
Re: Программные прирывания + Microsoft
От: Сергей Мухин Россия  
Дата: 22.06.09 12:12
Оценка:
Здравствуйте, Аноним, Вы писали:

а где вопрос?

попробуй вместо
mov dx, word ptr message
что-нибудь такое написать:
lea dx, word ptr message
---
С уважением,
Сергей Мухин
Re: Программные прирывания + Microsoft
От: Alexius-R СССР  
Дата: 22.06.09 12:14
Оценка: 3 (2) :)
Здравствуйте, Аноним, Вы писали:

А>Имеется простейшая прога на Асме которая успешно компилится и линкуется ml'ем образуя .ехе файл. Но при запуске вываливается ошибка. Вижла при этом пишет:


Запускаешь небось из винды (защищенный режим к тому же), а пример вызывает DOS прерывание . Чтобы заработало придется сносить винду и ставить DOS ))
Re: Программные прирывания + Microsoft
От: Аноним  
Дата: 22.06.09 12:25
Оценка:
А собственно не ясно почему ошибка происходит. Объясните в чем дело плз. На самом деле я был бы счастлив увидеть рабочий код такого приложения но не просто с выводом строки в консоль а с вызывом прирывания 21h, который компилился бы в ml.exe (9.0). Заранее спасибо.
Re[2]: Программные прирывания + Microsoft
От: Аноним  
Дата: 22.06.09 12:33
Оценка: 1 (1)
А>А собственно не ясно почему ошибка происходит. Объясните в чем дело плз. На самом деле я был бы счастлив увидеть рабочий код такого приложения но не просто с выводом строки в консоль а с вызывом прирывания 21h, который компилился бы в ml.exe (9.0). Заранее спасибо.
В win32 нету int 21h
Re[2]: Программные прирывания + Microsoft
От: arty_ayreon  
Дата: 22.06.09 12:36
Оценка:
Здравствуйте, Alexius-R, Вы писали:

AR>Здравствуйте, Аноним, Вы писали:


А>>Имеется простейшая прога на Асме которая успешно компилится и линкуется ml'ем образуя .ехе файл. Но при запуске вываливается ошибка. Вижла при этом пишет:


AR>Запускаешь небось из винды (защищенный режим к тому же), а пример вызывает DOS прерывание . Чтобы заработало придется сносить винду и ставить DOS ))


Было у меня такое предположение, спасибо большое. А можно посмотреть какой-нить код с выводом строки на экран и каким-нить вин-прерыванием.
Re[3]: Программные прирывания + Microsoft
От: _Nkey_ Беларусь  
Дата: 22.06.09 13:03
Оценка: 2 (1)
_>Было у меня такое предположение, спасибо большое. А можно посмотреть какой-нить код с выводом строки на экран и каким-нить вин-прерыванием.


На самом деле так нельзя. И прерывания из режима пользователя(это в этом режиме работает твоя программа) давно не используются(заменены SYSENTER и трогать их не надо).
Ты компилируешь и линкуешь как Windows приложение. Собери под DOS — будет работать(даже под виндой(запуститься виртуальная машина)).
Re: Программные прирывания + Microsoft
От: arty_ayreon  
Дата: 23.06.09 08:19
Оценка:
Всем спасибо!
Re[4]: Программные прирывания + Microsoft
От: IID Россия  
Дата: 24.06.09 06:32
Оценка:
Здравствуйте, _Nkey_, Вы писали:

_N_> Собери под DOS — будет работать(даже под виндой(запуститься виртуальная машина)).


Под x64 работать не будет Там больше нету ntvdm, т.к. в longmode процессора эмуляция x86 real mode отсутствует.
kalsarikännit
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.