Помощь в написании студенческих работ
Антистрессовый сервис

Уровни программирования. 
Системы счисления, применяемые в ЭВМ. 
Уровни программирования

РефератПомощь в написанииУзнать стоимостьмоей работы

Базовый процессор 80×86 использует 20 разрядные адреса. 220 байт — до 1 Мбайта памяти. Т. е. адрес любой ячейки памяти описывается с помощью 20 бит или 20 нулей и единиц. В шестнадцатеричной системе счисления — с помощью 5 шестнадцатеричных чисел. Такие адреса называются абсолютными или физическими адресами. Однако ЭВМ удобнее работать с байтами, словами. Программирование на среднем уровне… Читать ещё >

Уровни программирования. Системы счисления, применяемые в ЭВМ. Уровни программирования (реферат, курсовая, диплом, контрольная)

При составлении программ фрагменты ее могут быть написаны на высоком, среднем и низком уровне. Это деление является весьма условным. Под программированием на узком уровне мы будем понимать работу непосредственно с аппаратурой ЭВМ, т. е. абсолютными адресами памяти, с регистрами процессора, теми или иными устройствами, пользоваться только системой вшитых подпрограмм (BIOS). При программировании на низком уровне программы получаются практически на машинном языке. Поэтому они работают очень эффективно. Скорость работы таких программ очень высокая. Мы работаем с аппаратурой напрямую без посредников. Однако написание программ на низком уровне требуют от программиста большой подготовки знания устройства ЭВМ. Такие программы чаще всего громоздки и требуют описания каждого шага до мелочей. Кроме того программы на низком уровне сильно зависят от компьютера и очень плохо переносятся на другие типы ЭВМ.

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

Программирование на высоком уровне подразумевает использование функций языка программирования высокого уровня. Например: BASIC, PASCAL и т. д. При программировании на высоком уровне не обязательно знать архитектуру ЭВМ. Мы подаем команду, а как она будет выполнена, нас не интересует. Программирование на высоком уровне является машинно-независимым программированием. Написание программы на высоком уровне — наиболее простой и быстрый способ написания программ. Однако программы, написанные на высоком уровне, являются трудными для ЭВМ. Время выполнения таких программ значительно больше, чем аналогичных фрагментов, написанных на низком уровне. Как мы видим, нельзя дать единой рекомендации по способу написания программ. Как всегда лучше всего — «золотая серединка». При написании программы желательно по мере возможности и необходимости использовать фрагменты, написанные на подходящем для этого уровне. ОЗУ.

Оперативно запоминающее устройство (ОЗУ) является неотъемлемой частью любого компьютера. Из ОЗУ в процессор поступают команды и числа, над которыми производятся предусмотренные командой операции. А из процессора в ОЗУ направляются для хранения результаты начальной и конечной обработки. В тех или иных местах хранится информация о конфигурации ЭВМ, о работе ее составных частей. Изменяя или просматривая эту информацию, мы можем программно вмешиваться в вычислительный процесс. Например, в обучающих программах следить за режимами работы клавиатуры и в нужных местах либо предупреждать пользователя о необходимости переключить РУС/ЛАТ, либо самим переключить клавиатуру.

IBM в основном обрабатывает информацию, представленную в виде байтов, слов, двойных слов. Первая ЭВМ фирмы IBM имела 8 разрядные адреса, позволяло обращаться к 64 Кбайтам памяти.

Базовый процессор 80×86 использует 20 разрядные адреса. 220 байт — до 1 Мбайта памяти. Т. е. адрес любой ячейки памяти описывается с помощью 20 бит или 20 нулей и единиц. В шестнадцатеричной системе счисления — с помощью 5 шестнадцатеричных чисел. Такие адреса называются абсолютными или физическими адресами. Однако ЭВМ удобнее работать с байтами, словами.

Поэтому память адреса удобнее рассматривать в виде 16 разрядных адресов. Поэтому память условно делят на участки — сегменты. Начальные адреса сегментов называют базами. Они могут быть произвольными. Тогда абсолютный адрес равен, А = В + ofs,.

где В — база сегмента, ofs — смещение, относительно базы. Теперь базу можно упрятать в отдельный регистр (ячейка памяти), и оперировать только смещением. ЭВМ автоматически сама рассчитывает абсолютный адрес. Такие регистры называются базовыми или сегментными регистрами.

Сегменты выбирают кратные 16, т. е. последние 4 бита равны 0.

Тогда Х0000 база (сегмент).

+ уууу смещение.

=====.

ZZZZZ абсолютный адрес.

Отбросив в базе последний 0, адрес ячейки записывают в виде пары 4-значных шестнадцатеричных чисел: ХХХХ: YYYY. Тогда:

Абсолютный адрес = База*16 + смещение.

Если мы оперируем с шестнадцатеричными числами, то умножение числа на 16, равносильно тому, что приписать сзади один 0. Т. е. для того, чтобы по паре чисел вычислить абсолютный адрес, достаточно к базе приписать сзади 0 и сложить полученное число со смещением.

Например: 4000:0417 — Абсолютный адрес этой ячейки ;

+ 0417.

=====.

Язык программирования TURBO-PASCAL V 7.0 предоставляет обширные возможности работы с адресами и регистрами компьютера. Все возможности работы непосредственно с аппаратурой сосредоточены в модуле DOS.

При обращении к той или иной ячейки памяти, в TURBO-PASCAL V 7.0 применяется служебное слово ABSOLUTE или функция MEM[адрес]. При адресации принято оперировать с шестнадцатеричными числами. Признаком числа в шестнадцатеричной системе является знак $ перед числом. Функция МЕМ[$ 4000:$ 4231] непосредственно связывается с ячейкой памяти с указанным адресом. С помощью этой функции можно не только получать значения из указанной ячейки, но и присваивать значения этой функции.

Например: MEM[$ 0000:$ 0417] := $ 5A.

Приведем два примера одной и той же программы. Она определяет, нажата ли клавиша CAPS. Состояние клавиатуры хранится в ячейке памяти с адресом $ 0000:$ 0417. Проанализировав содержимое этой ячейки, программа выводит на экран сообщение.

Более подробно смысл информации в этой ячейке будет рассмотрен позже.

Пример № 1.

uses dos; var x: byte absolute $ 0000:$ 0417;

begin.

if (x and $ 40)=0 then writeln ('CAPS — не нажата').

else writeln ('CAPS — нажата');

readln.

end.

В данном примере переменной Х ставится в соответствие ячейка по абсолютному адресу $ 0000:$ 0417.

Пример № 2.

uses dos; var x: byte;begin x:=mem[$ 0000:$ 0417]; if (x and $ 40)=0 then writeln ('CAPS — не нажата') else writeln ('CAPS — нажата'); readlnend.

В данном примере для обращения к ячейке памяти по адресу используется функция МЕМ[адрес].

Показать весь текст
Заполнить форму текущей работой