Отправляет email-рассылки с помощью сервиса Sendsay

Уроки ассемблеру. Быстро и просто. Урок 15

Вот что подумал, друзья. А давайте изменим нашу программу из 14 урока так, чтобы наш файл был загружен в память и там изменён. Помните, мы это проделывали в 11-м уроке? Для самых любопытных опубликую листинг программы ниже. Листинг программы, читающей файлы в память: ;Всё, что следует за значком ";" - это комментарий. .286 ;Разрешает ассемблирование непривилегированных инструкций ;процессора 80286 (реальный режим) и инструкций арифметического ;сопроцессора 80287. CSEG segment ;Даём имя сегменту, ...

2014-10-27 15:05:23 + Комментировать

Уроки ассемблеру. Быстро и просто. Урок 14

А давайте, друзья, попробуем массово поизменять какие-нибудь файлы, лежащие в текущем каталоге. Для этого нам понадобятся функции 1Ah (установка PSP, 4Eh (поиск первого файла, 4Fh (поиск следующего файла) прерывания 33 (т.е. 21h. Возьмём за основу код из 8-го урока и изменим его: ;Всё, что следует за значком ";" - это комментарий. .286 ;Разрешает ассемблирование непривилегированных инструкций ;процессора 80286 (реальный режим) и инструкций арифметического ;сопроцессора 80287. CSEG segment ;Даём и...

2014-10-20 15:19:25 + Комментировать

Уроки ассемблеру. Быстро и просто. Урок 13

Сегодня мы завершаем нашу подготовительную часть самым сложным, на мой взгляд, для новичка вопросом. Мы научимся оставлять нашу программу в памяти и перехватывать прерывания из других программ. Допустим, у нас есть программа из второго урока, выводящая на экран строку "Hello, world!". Нам нужно написать свою программу, которая бы осталась резидентной в памяти, но при этом перехватывала прерывания 21h таким образом, что при запуске первой программы (откомпилируем её как hello.com) выводилась бы ст...

2014-10-13 17:21:18 + Комментировать

Уроки ассемблеру. Быстро и просто. Урок 12

Довольно короткий урок. Давайте мы расскажем вам, друзья, о прямом отображении символов в видеобуфер. ;Всё, что следует за значком ";" - это комментарий. .286 ;Разрешает ассемблирование непривилегированных инструкций ;процессора 80286 (реальный режим) и инструкций арифметического ;сопроцессора 80287. CSEG segment ;Даём имя сегменту, а точнее определяем абсолютный ;сегмент в памяти программ по определённому адресу. ;Имя нашего сегмента будет CSEG. assume cs:CSEG, ds:CSEG, es:CSEG, ss:CSEG ;Задаём ...

2014-10-06 15:05:17 + Комментировать

Уроки ассемблеру. Быстро и просто. Урок 11

Всем доброго времени суток и хорошего настроения! В 8-м уроке мы узнали, как можно записывать информацию в файлы. Давайте попробуем создать патч для обновления нашей программы. Допустим, у нас есть программа из второго урока, выводящая на экран строчку "Hello, world!". Нам нужно написать обновление для неё. Вместо строки "Hello, world!", после выполнения нашего патча, будем выводить строку "Goodbye, world!". Из второго урока возьмём исходный код, сохраним в файле hello.asm в к...

2014-09-29 15:05:24 + Комментировать

Уроки ассемблеру. Быстро и просто. Урок 10

Сегодня мы поговорим о сегментах. Возьмём для примера программу вывода строки из урока 2: ;Всё, что следует за значком ";" - это комментарий. .286 ;Разрешает ассемблирование непривилегированных инструкций ;процессора 80286 (реальный режим) и инструкций арифметического ;сопроцессора 80287. CSEG segment ;Даём имя сегменту, а точнее определяем абсолютный ;сегмент в памяти программ по определённому адресу. ;Имя нашего сегмента будет CSEG. assume cs:CSEG, ds:CSEG, es:CSEG, ss:CSEG ;Задаём сегментные р...

2014-09-22 15:05:21 + Комментировать

Уроки ассемблеру. Быстро и просто. Урок 25

Вот и прошла встреча Нового года, друзья, а вместе с ним и новогодние каникулы. А расскажу-ка я вам теперь о простом ассембере под Windows. А также про более простой и удобный компилятор Fasm (можно скачать по ссылке. Основные отличия от Masm можно найти здесь: Сравнение MASM и FASM на самом простом примере для начинающих . Каков вывод? Fasm имеется под многие платформы, содержит меньше ошибок и главное, имеет более удобный синтаксис. Скачаем архив с сайта и установим его в папку C\Program Files\fasm. Созд...

2014-09-20 12:35:21 2 комментария

Уроки ассемблеру. Быстро и просто. Урок 9

Сегодня мы поговорим о стеке (stack. Что же это такое? Если просто - это выделенная область памяти для хранения произвольных данных. Мы помещаем туда на какое-то время значения, содержащиеся в регистрах, например, если необходимо туда загрузить какое-то другое значение, а потом можем его вернуть назад, причём не обязательно в этот регистр. Если мы откроем программу AFDPro, в самом верху (чуть правее середины) мы увидим надпись "Stack", а под ним - его первые значения (верхушку. По мере того, как ...

2014-09-15 15:05:21 + Комментировать

Уроки ассемблеру. Быстро и просто. Урок 8

А не пора ли нам, друзья, замахнуться на что-либо более серьёзное? Я имею в виду запись в файл. Впрочем, это вы сможете сделать уже и без меня. Спрашиваете как? Очень просто. Откроем наш файл HELP.EXE : Перед началом всех действий нам нужно открыть файл. HELP.EXE -> Указатель функций DOS/BIOS -> Функции DOS -> 3Dh Open file Итак, мы видим входные значения - те данные, которые надо загрузить в соответствующие регистры: - 3Dh - в регистр AH, а режим открытия в регистр AL; - адрес буфера, содержащего...

2014-09-08 15:05:20 + Комментировать

Уроки ассемблеру. Быстро и просто. Урок 7

Доброго времени суток, дорогие читатели! В этом уроке не будет практических занятий, лишь теория. В рамках того, что было изучено ранее. Причём преподавать теорию будут известные мастера своего жанра, то есть большей частью наш урок будет составлен из цитат (не зря наш урок выходит 1-го сентября. Итак, поехали. Регистры. Слово Роберту Журдену, автору книги "Справочник программиста на персональном компьютере фирмы IBM". Микропроцессор 8088 имеет 13 16-разрядных регистров, каждый из которых имеет с...

2014-09-01 15:05:26 + Комментировать