что такое int 0x80 на самом деле ?

Тема в разделе "WASM.BEGINNERS", создана пользователем jimie, 18 авг 2006.

  1. jimie

    jimie New Member

    Публикаций:
    0
    Регистрация:
    18 авг 2006
    Сообщения:
    2
    Собственно, начал немного писать на асме под бсд, и вот стало интерестно, что это за вещь такая int 0x80 ?

    Допустим такой код:

    msg db "fuck",0xa
    len equ $ - msg

    ...

    push len
    push msg
    push 1
    mov eax,4
    push eax
    int 0x80

    Что происходит, когда выполняется int ? ведь это НЕ инструкция проца ? это, что call куда-то... куда ?

    Если кто знает может подскажете?
     
  2. nobodyzzz

    nobodyzzz New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2005
    Сообщения:
    475
    int - это таки инструкция проца
    при выполнении вызываеться обработчик прерывания за номером 0x80
    короче кури какой-нибудь док =)))
    вот хотя бы этот http://sasm.narod.ru/docs/pm/pm_int/main.htm
     
  3. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    Именно инструкция. Вызывающая прерывание под номером 80h, которое обрабатывается уже в ядре специальной функцией - обработчиком прерывания. Советую почитать книгу о процессоре или ассемблере.

    Применительно к ОС, обработчик прерывания смотрит, какой номер функции ( в данном случае, он передаётся в eax (4)), и вызывает уже другую функцию, соответствующую номеру. Она уже занимается тем, чем и положено ей (открывает файл, печатает на экран и т.п.)
     
  4. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    на месте администрации я бы вынес замечание
     
  5. jimie

    jimie New Member

    Публикаций:
    0
    Регистрация:
    18 авг 2006
    Сообщения:
    2
    не надо замечания, изменил на
    msg db "hi !",0xa
    ))

    спасибо за ссылку, всё пошёл читать...