• XSS.stack #1 – первый литературный журнал от юзеров форума

Ассемблер Для Начинающих

привет всем! хочу поблагодарить ,,BUG(O)R,, за то что он в подробностях рассказал с чего начинать изучение асма, и также хочу всем кто только начинает изучать асемблер сказать что рассылка Калашникова на самом деле хорошая, я ничего не понимаю в програмировании , но когда начал читать там и правда все ясно , так что думаю с нее начинать очень полезно, спасибо!!!!
 
Впринципе все уже сказано, могу добавить лишь совет - есть хороший справочник по командам асма вместе с их машинными кодами - В.Юров "Assembler. Специальный справочник". Так же рекомендую учебник того же автора
Добавлено в [time]1132155553[/time]
Их нет. Апи
я по какому поводу вопрос задала :
При чём тут ВинАпи, я тебе говорю про стандартный метод открытия файлов!


Маринка

я имел ввиду стандартные функции языков выского уровня.

Если под "стандартным" методом понимать fopen() и т.п. (для Си), то это не функции языка, а подключаемых к екзешнику БИБЛИОТЕК. В сам язык никакие функции не входят. Тоже самое и в асме. Хочешь файлы открывать - либо юзай CreateFile/OpenFile (WinAPI), либо линкуй с стандартной библиотекой языка Си, про которую я уже говорил, и юзай fopen()
Добавлено в [time]1132155736[/time]
В винде нет прерываний, тут нам предлагается использовать АПИ, вот тебе пример обычного месаджбокса:
BUG(O)R, тут ты, мягко говоря, ошибаешься. Таблицу прерываний в защищенном режиме работы процессора никто не отменял. Поэтому, правильней написать, что прерывания ДОСа в винде недоступны.
 
Если под "стандартным" методом понимать fopen() и т.п. (для Си), то это не функции языка, а подключаемых к екзешнику БИБЛИОТЕК. В сам язык никакие функции не входят. Тоже самое и в асме. Хочешь файлы открывать - либо юзай CreateFile/OpenFile (WinAPI), либо линкуй с стандартной библиотекой языка Си, про которую я уже говорил, и юзай fopen()

А на Си что мир клином сошёлся? Т.к. Си не знаю подразумевал Бейсик и Делфи.
Я и не говорил, что CreateFile стандартная функция или точнее оператор асма, просто я имел ввиду, что будучи я кодером на делфи или вб я бы не стал заморачиваться над апи, а юзал бы стандартные функции, которые в свою очередь пройдя сотню проверок приходят в ntdll.


BUG(O)R, тут ты, мягко говоря, ошибаешься. Таблицу прерываний в защищенном режиме работы процессора никто не отменял. Поэтому, правильней написать, что прерывания ДОСа в винде недоступны.

Честно скажу: на момент написания поста не знал о существовании прерываний в винде, позже, когда работал с DebugAPI познакомился с ними.

Да и ты сформулировал неверно, они недоступны в приложениях, которые разрабатывались не на платформе досовских, потому что если поднимать под виндой платформу, то вообщем-то прерывания ведь она выполнит точно так же, как выполнил бы их ДОС.
 
Код:
The GetFileAttributes function returns attributes for a specified file or directory. 

DWORD GetFileAttributes(

    LPCTSTR lpFileName  // address of the name of a file or directory  
   );

Если в eax после вызова 0FFFFFFFFh, то файла не существует.
 
А как бы мне выводить графику через LFB?Как узнать его адрес?

[mod] Great: перенес пост в соотв. тему.[/mod]
 
Погодь 32-битные проги можно клавишевать и в дос!Я знал чуваков кторые смутили ОС в DOS!:)И вообще чем отличается кодинг 16-битной проги от 32-битной?

[mod] Great: и снова ты не в тему[/mod]
 
Exs42
Погодь 32-битные проги можно клавишевать и в дос!
можно. Никто не спорит.
Я знал чуваков кторые смутили ОС в DOS!:)
гг. Как это операционная система в операционной системе... тогда уж это будет надстройка над ДОС.
И вообще чем отличается кодинг 16-битной проги от 32-битной?
Используется 32-битная адресация и 32-битные операнды.

кстати, опять ты не в ту тему.
 
Знаю, знаю...Буду внимательнее!
Как вообще графика выводится под дос?Через банки видеопамяти или же через LFB?А то, редактор спрайтов бы хотелось наклавешивать!:)
 
Инициируешь графический режим с помошью прерывания 10h, потом выводишь графику попиксельно с помощью того же прерывания. Список прерываний Ральфа Брауна рулит, там все есть. Достаточно только знание английского.
 
Я пытался выводит графику в режиме 800*600 32 бит.Чего-то не получается!Если не трудно расскажи алгоритм вывода точки на экран в этом режиме!
 
Ты сам пробовал через 0Сh выводить изображение?Закрашивание экрана у меня заняло примерно 10 секунд!И это на асме!
Ты немного не допонял, я имел ввиду прямое обращение к видеопамяти, использование банков, спецификации VBE и т.п.
 
Exs42
Ты сам пробовал через 0Сh выводить изображение?
Пробовал
Ты немного не допонял, я имел ввиду прямое обращение к видеопамяти, использование банков, спецификации VBE и т.п.
Ну обращайся - кто тебе мешает. Вроде, c000:0000 -отображение видеопамяти в RAM. Но могу ошибаться, точно не помню.
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх