» Главная
eXcode.ru » Статьи » Assembler
» Новости
» Опросы
» Файлы
» Журнал



Пользователей: 0
Гостей: 9







Ведущий раздела: LedWorm
Описание: Статьи по ассемблеру


Подразделы:

Лучшие статьи по ассемблеру (5)

«1» «2» «3» 

Работа с LFB в DOS
Наверняка всем кто только начинал программировать на Ассемблере, неизбежно приходилось сталкиваться с проблемой вывода на экран в режимах SVGA. Многие использовали банки видеопамяти или перемещение окна, но есть несколько минусов использования такого подхода:
• Нужно написать довольно большую процедуру для вывода точек на экран
• Переключение банков занимает значительное время. (Особенно заметно на 386-ом с VGA картой :) )


Читаем FAT12
«Человек не машина, и он хиреет, если лишается
возможности самоопределения и свободы высказывать
собственные суждения…»

Альберт Эйнштейн.

Предисловие.
Это статья не является полным руководством по FAT12, а даёт только начальные знания, навыки и умения для реализации работы с FAT12.


Оперативная память
Каждая ячейка памяти имеет свой адрес - 32 битное смещение (в байтах) от начала сегмента. Сегмент определяется сегментным регистром (cs, ds, ss, es, fs, gs) и может указываться в командах при работе с памятью. Некоторые команды не поддерживают префикс замены сегмента.
Рассмотрим пример на основе команды mov.


Основы защищенного режима
Микропроцессоры Pentium, так же, как и его предшественники (начиная с 80268), могут работать в двух режимах: реального адреса и виртуального защищенного адреса. Обычно эти режимы называют просто реальным и защищенным. В реальном режиме 32-разрядные микропроцессоры функционируют фактически так же, как МП 86 с повышенным быстродействием и расширенным набором команд. Многие весьма привлекательные возможности микропроцессоров принципиально не реализуются в реальном режиме, который введен лишь для обеспечения совместимости с предыдущими моделями процессоров. Характерной особенностью реального режима является ограничение объема адресуемой оперативной памяти величиной 1 Мбайт.


Дополнительные режимы адресации
Режимы адресации 32-разрядных процессоров разработаны, исходя из требований образования 32-битового смещения. Другими словами, они предназначены для 32-разрядных приложений, в которых сегменты данных или стека (как, впрочем, и сегменты команд) могут иметь размеры до 232 = 4 Гбайт. Однако в реальном режиме размер любого сегмента ограничивается величиной 216 = 64 Кбайт, и 32-битовые смещения не имеют смысла. С другой стороны, ничто не мешает нам использовать для образования 16-битового смещения 32-разрядные регистры (ЕВХ, ESI и проч.), если, конечно, их реальное содержимое не будет превышать величины FFFFh. Указание в качестве операндов команд 32-разрядных регистров позволяет использовать дополнительные возможности 32-разрядных процессоров по части адресации памяти, что в некоторых случаях может оказаться полезным.


Архитектурные особенности
Операционная система MS-DOS, язык ассемблера МП 86 и методы программирования микропроцессоров корпорации Intel разрабатывались применительно к 16-разрядному процессору 8086 и тому режиму, который впоследствии получил название реального. Появление процессора 80386 знаменовало собой начато нового этапа в развитии операционных систем и прикладного программирования - этапа многозадачных графических операционных систем защищенного режима типа Windows и 32-разрядных прикладных программ.


Программирование аппаратных средств
Программирование аппаратуры - как штатных периферийных устройств компьютера, таких, как видеосистема, клавиатура, последовательный или параллельный интерфейс и др., так и нестандартных измерительных или управляющих устройств, подключаемых к компьютеру, если он используется для автоматизации научных исследований или управления технологическим процессом - является одним из важнейших и наиболее оправданных применения языка ассемблера.


Двоично-десятичные числа
Мы уже говорили с вами о двоично-десятичных числах - специальном формате хранения данных, используемом в ряде технических приложений. Часто эти числа называют BCD-числами (от binary-coded decimal, двоично-кодированные десятичные числа). Для обработки BCD-чисел (сложения, вычитания, умножения и деления) в МП 86 предусмотрены специальные команды. Рассмотрим этот вопрос на комплексном примере обработки показаний КМОП-часов реального времени.


Использование подпрограмм
Общая идея использования подпрограмм очевидна: если в программе требуется многократно выполнять один и тот же фрагмент, его можно оформить в виде подпрограммы и вызвать по мере необходимости. Если подпрограмма не требует для своего выполнения никаких параметров и не должна возвращать в основную программу результат своей работы, то дело ограничивается оформлением текста подпрограммы в виде процедуры, завершающейся командой ret, и вызовом этой процедуры с помощью команды call. Как уже отмечалось ранее, подпрограмма может и не образовывать процедуру, а быть просто частью основной программы. Важно только, чтобы у нее была входная метка, и чтобы она завершалась командой ret.


Обработка строк
Для работы со строками, или цепочками символов или чисел (т.е. попросту говоря, с массивами произвольных данных) в МП предусмотрен ряд специальных команд.


«1» «2» «3» 

Имя:

Пароль:



Регистрация

Каким браузером вы пользуйтесь?
MS Internet Explorer
22% (66)
Mozilla
3% (8)
Mozilla Firefox
26% (77)
Opera
43% (130)
Konqueror
1% (3)
Netscape
0% (0)
Lynx
0% (0)
Galeon
0% (0)
Другим
5% (15)

Проголосовало: 299
Рaспорядок рaбочего дня программиста:
7:00 Открыли глaзки, посмотрели нa чaсы, плюнули (мысленно), решили поспaть еще полчaсикa, зaкрыли глaзки.
7:30 открыли глaзки, посмотрели нa чaсы, решили поспaть еще четверть чaсa, зaкрыли глaзки.
7:52 открыли глaзки, вымaтерились (мысленно), подумaли о смысле жизни, подумaли еще рaзок, искосa посмотрели нa одежду, вымaтерились (мысленно).
7:58 вскочили, побрились, умылись, приготовили зaвтрaк, съели его, почистили ботинки, нaшли рубaшку, оделись, пробежaлись до метро.
8:20 поспaли в метро, почитaли книжку, ничего не поняли, поспaли в метро.
9:20 опоздaли нa рaботу, включили компьютер, пошли покурить.
9:30 попытaлись согнaть с компa игрaющих.
9:40 попытaлись согнaть с компa игрaющих.
9:50 попытaлись согнaть с компa игрaющих.
10:00 попытaлись согнaть с компa игрaющих.
10:10 попытaлись согнaть с компa игрaющих.
10:20 попытaлись согнaть с компa игрaющих.
10:30 попытaлись согнaть с компa игрaющих.
10:40 согнaли игрaющих, от переутомления пошли курить.
10:50 нaорaли нa игрaющих, сели рaботaть.
11:00 вспомнили, в чем зaключaется рaботa.
11:01 проголодaлись, пошли в буфет.
11:32 вернулись из буфетa, дaли по морде игрaющим, сели рaботaть.
11:38 пришлa глaвбухшa, попросилa рaсскaзaть про бухгaлтерскую прогрaмму.
12:30 объяснили глaвбухше, пошли курить.
12:40 стукнули по голове игрaющим, сели рaботaть.
13:20 нaписaли две строки прогрaммы, нaчaли отлaживaть, не получилось, пошли курить.
13:30 продолжили отлaдживaть нaписaнные две строки.
15:03 нaписaли еще 120 строк.
15:22 отлaдили их.
15:23 пошли курить.
15:33 покурили, сели рaботaть.
15:50 зaвис, сволочь, помaтерились (мысленно), рaзобрaли, контроллеры пошевелили, молотком стукнули, зaрaботaл.
16:20 проголодaлись, пошли обедaть.
17:00 убили игрaющих, сели прогрaммки писaть.
17:08 поняли, что головa не вaрит.
17:10 поняли, что головa совсем не вaрит.
17:14 поняли, что головa совершенно aбсолютно не вaрит.
17:15 посмотрели нa чaсы, вздохнули, зaпустили ГолдЕд, создaли видимость усиленной деятельности.
17:59 собрaлись, выключили комп, попрaвили гaлстук, одели пиджaк.
18:00 пошли домой.
18:05 в метро поспaли, место никому не уступили (свиньи мы).
19:00 пришли домой, поужинaли, нa мессaги ответили, ответы перетоссировaли, нa котa нaорaли, успокоились.
22:00 фронду постaвили, пошли нa второй ужин.
23:44 свежaя почтa пришлa, нa дискеты ее покидaли.
0:00 с юзерaми почaтились, побaзaрили.
3:56 нa чaсы глянули, офигели, спaть легли.
7:00 Открыли глaзки, посмотрели нa чaсы, плюнули (мысленно), решили поспaть еще полчaсикa...
Рейтинг: 4.8/10 (5)
Посмотреть все анекдоты

 
eXcode.ru » Статьи » Assembler