Новичок

Assembler programming questions
  • Tain_Play wrote:Тогда еще вопрос: а драйвер что это и как он пишеться? ссылку не можете полезную дать?
    Драйвер - это 300 строчек кода вместо 3 :-) Вот определение драйвера из Википедии.
    Вот пример из KolibriOS - драйвер для видеокарт Intel GMA, который читает правильное разрешение через EDID, и устанавливает его сам: http://websvn.kolibrios.org/filedetails ... dintel.asm
    Может быть, ты сможешь воспользоваться им в своей ОС, если видеокарта тоже Intel GMA.
  • Драйвером называют код, который пофиг ядру и мешает программе.
  • ну у меня джифорс 2
  • Tain_Play wrote:Я для конкурса пишу графическую ос, ...
    Tain_Play wrote:... еще вопрос: а драйвер что это и как он пишеться?
    :lol:
  • У меня еще 4 месяца! и я без них хаороше справлялся(драйвер мыши к примеру я не зная как он называеться написал с подсказками) я не втирал ведь что это "драйвер" а про работу с видюхой это вообще мне не скоро понять
  • Подскажите как может влиять nop на выполнение кода, голову сломал почему

    работает:

    Code: Select all

    .1000160F: 6800300010                     push        010003000 ;'► 0 '
    .10001614: FF1518200010                   call        LoadLibraryW
    .1000161A: 85C0                           test        eax,eax
    .1000161C: E975000000                     jmp        .010001696 --↓4
    .10001621: 9090                           nop
    и не работает:

    Code: Select all

    .1000160F: 9090                           nop
    .10001611: 6800300010                     push        010003000 ;'► 0 '
    .10001616: FF1518200010                   call        LoadLibraryW
    .1000161C: 85C0                           test        eax,eax
    .1000161E: E973000000                     jmp        .010001696 --↓4
    логичных причин почему не работает второй вариант не вижу
  • Unduing
    Такая информация без контекста малоинформативна. Лучше показать все исходники, потому что причина может быть совсем не в nop.
    Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!
  • Unduing

    имхо баг может быть только внутри LoadLibraryW - что-то портит бит1 (и возможно, не только его) в адресе возврата.
    В первом примере этот бит 1 (1000161A), во втором 0 (1000161С).
    Других отличий отсюда не видно.

    Смотри что там внутри обращается к [entry_esp+4]
  • Unduing, а почему так сильно изменилось значение смещения перехода в jmp?

    Code: Select all

    E975000000                     jmp        .010001696 --↓4

    Code: Select all

    E973000000                     jmp        .010001696 --↓4
  • 0CodErr
    Абсолютный адрес перехода остался прежним.
    Last edited by Unduing on Thu Sep 19, 2013 7:44 am, edited 1 time in total.
  • art_zh
    Спасибо, такой момент не учел, но ещё не разу не видел чтобы в коде процедуры использовался адрес вызова.
  • Mario_r4
    Были бы исходники, думаю вопрос не возник.
  • Unduing wrote:логичных причин почему не работает второй вариант не вижу
    Проверка целостности кода где-то в другом месте.
    Сделаем мир лучше!
  • Who is online

    Users browsing this forum: No registered users and 3 guests