Имеется простейшая прога на Асме которая успешно компилится и линкуется 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
Здравствуйте, Аноним, Вы писали:
А>Имеется простейшая прога на Асме которая успешно компилится и линкуется ml'ем образуя .ехе файл. Но при запуске вываливается ошибка. Вижла при этом пишет:
Запускаешь небось из винды (защищенный режим к тому же), а пример вызывает DOS прерывание . Чтобы заработало придется сносить винду и ставить DOS ))
Re: Программные прирывания + Microsoft
От:
Аноним
Дата:
22.06.09 12:25
Оценка:
А собственно не ясно почему ошибка происходит. Объясните в чем дело плз. На самом деле я был бы счастлив увидеть рабочий код такого приложения но не просто с выводом строки в консоль а с вызывом прирывания 21h, который компилился бы в ml.exe (9.0). Заранее спасибо.
А>А собственно не ясно почему ошибка происходит. Объясните в чем дело плз. На самом деле я был бы счастлив увидеть рабочий код такого приложения но не просто с выводом строки в консоль а с вызывом прирывания 21h, который компилился бы в ml.exe (9.0). Заранее спасибо.
В win32 нету int 21h
Здравствуйте, Alexius-R, Вы писали:
AR>Здравствуйте, Аноним, Вы писали:
А>>Имеется простейшая прога на Асме которая успешно компилится и линкуется ml'ем образуя .ехе файл. Но при запуске вываливается ошибка. Вижла при этом пишет:
AR>Запускаешь небось из винды (защищенный режим к тому же), а пример вызывает DOS прерывание . Чтобы заработало придется сносить винду и ставить DOS ))
Было у меня такое предположение, спасибо большое. А можно посмотреть какой-нить код с выводом строки на экран и каким-нить вин-прерыванием.
_>Было у меня такое предположение, спасибо большое. А можно посмотреть какой-нить код с выводом строки на экран и каким-нить вин-прерыванием.
На самом деле так нельзя. И прерывания из режима пользователя(это в этом режиме работает твоя программа) давно не используются(заменены SYSENTER и трогать их не надо).
Ты компилируешь и линкуешь как Windows приложение. Собери под DOS — будет работать(даже под виндой(запуститься виртуальная машина)).