Язык ассе́мблера (англ. assembly language) — машинно-ориентированный язык низкого уровня с командами, обычно соответствующими командам машины, который может обеспечить дополнительные возможности вроде макрокоманд[1]; автокод, расширенный конструкциями языков программирования высокого уровня, такими как выражения, макрокоманды, средства обеспечения модульности программ[2]. Автокод — язык программирования, предложения которого по своей структуре в основном подобны командам и обрабатываемым данным конкретного машинного языка.[2]
Язык ассемблера — система обозначений, используемая для представления в удобочитаемой форме программ, записанных в машинном коде. Язык ассемблера позволяет программисту пользоваться алфавитными мнемоническими кодами операций, по своему усмотрению присваивать символические имена регистрам ЭВМ и памяти, а также задавать удобные для себя схемы адресации (например, индексную или косвенную). Кроме того, он позволяет использовать различные системы счисления (например, десятичную или шестнадцатеричную) для представления числовых констант и даёт возможность помечать строки программы метками с символическими именами с тем, чтобы к ним можно было обращаться (по именам, а не по адресам) из других частей программы (например, для передачи управления).[3]
#1. Этапы трансляции программы в машинный код. Стандарты | Язык C для начинающих
Перевод программы на языке ассемблера в исполнимый машинный код (вычисление выражений, раскрытие макрокоманд, замена мнемоник собственно машинными кодами и символьных адресов на абсолютные или относительные адреса) производится ассемблером — программой-транслятором, которая и дала языку ассемблера его название.
Основные общие особенности языка ассемблера (чаще не совсем точно называемого просто ассемблером; строго ассемблером называется программа, которая является транслятором. Эта программа переводит последовательность команд с языка ассемблера на язык машинных кодов процессора) микропроцессоров совпадают с особенностями всех языков подобного типа. Отметим их основные особенности [1].
Языки ассемблера являются машинно-ориентированными языками и, следовательно, для каждого типа процессоров существует свой язык. Почти каждая команда ассемблера эквивалентна команде на машинном языке процессора.
Однако программирование на ассемблере, по сравнению с программированием на машинном языке (на уровне машинных кодов), существенно облегчается за счет возможности использования символического обозначения всех элементов программы (кодов операций, адресов ячеек памяти, программ и данных, переменных и констант, операндов и т.д.). Используемые символические обозначения элементов обычно отражают их содержательный смысл.
При программировании на языке ассемблера программист может не заботиться о распределении памяти, о назначении конкретных адресов операндам. В ассемблере допускается оформление повторяющейся последовательности команд как одной макрокоманды. Соответствующие версии языка, допускающие использование макрокоманд, называют макроассемблерами. Кроме того, ассемблеры позволяют в той или иной форме использовать при программировании стандартные структуры типа цикл, разветвление.
Как на самом деле работает двоичный код?
При программировании на ассемблере доступны все ресурсы системы и конкретного процессора (регистры, стек, память и т. д.). Это позволяет получать эффективные программы с точки зрения времени их выполнения и объема памяти, необходимого для размещения программы. Проблемы, связанные с конкретной аппаратурой и периферийными устройствами процессора лучше и удобнее решать на языке ассемблера. Однако программирование на ассемблере предполагает знание архитектуры и свойств процессора, т. е. всего того, что входит в понятие программная модель процессора.
Современные версии языков ассемблера предоставляют программисту ряд возможностей, характерных для языков высокого уровня, таких как условное ассемблирование, организация циклов арифметического и условного типа, т. е. позволяют использовать стандартные логические структуры, рекомендуемые методами структурного программирования.
Ниже рассмотрены основные сведения о языке ассемблера пакета AVSIM85 v2.02 [2] для МП Intel 8080/8085 (КР580/КР1821).
Структура программы на языке ассемблера
Предложения (строки) ассемблера
Исходная программа на языке ассемблера состоит из последовательности утверждений, которые называют также ассемблерными строками или предложениями.
В ассемблерной строке могут быть записаны директивы ассемблера, команды или инструкции процессора, команды препроцессора, макрокоманды и комментарии. Запись строки производится в соответствии с некоторыми формальными правилами, изложенными ниже. Нарушение этих правил приводит к большому количеству ошибок, особенно на первом этапе освоения ассемблера.
Директивы ассемблера не порождают машинные команды и какие-либо действия в процессоре; они задают структуру программы, сообщают транслятору и компоновщику информацию о том, что им надо делать с командами и данными. Примеры директив:
определяет логический конец программы, все записанное
после нее не будет восприниматься транслятором,
определяет начало новой секции,
размещает в памяти константы.
Команды или инструкции процессора порождают машинные команды и выполняются в заданной последовательности во время работы процессора. Примеры команд:
Команды препроцессора являются фактически разновидностью директив, которые выполнятся на первом шаге трансляции. Пример команды препроцессора:
%include f1.asm — помощью данной команды в исходный текст будет вставлен текст из файла f1.asm.
Макрокоманды, а также некоторые конкретные директивы будут рассмотрены ниже.
Комментарии не влияют на результат трансляции и служат для пояснения и описания программы. Комментарии без изменений переносятся в файл, получаемый после трансляции — листинг трансляции. Вся строка ассемблера может являться комментарием. В этом случае она начинается специальным символом: [*] или [;].
Строка (предложение) программы в ассемблере делится на несколько полей, разделенных одним или более пробелами. В строке могут быть следующие поля:
Таким образом, строка имеет следующий формат:
[метка[:]] [операнд] [; комментарий]
Здесь, как и обычно, при описании системы команд и синтаксиса языка, для обозначения необязательного элемента конструкции использованы квадратные скобки [ ]. Таким образом, метка, операнд, комментарий являются необязательными элементами и могут отсутствовать.
Метка в общем случае является необязательным элементом ассемблерной строки. Для некоторых директив наличие метки обязательно. Метка начинается в первой позиции строки и может содержать (как и любой идентификатор) алфавитно-цифровые знаки (A-Z, a-z, 0-9, _ и S), первым из которых должна являться буква.
Если в первой позиции строки стоит пробел или символ (;), то считается, что метка отсутствует. Метка может заканчиваться двоеточием, которое не входит в состав метки.
На линии может стоять одна метка, а последующие части строки ассемблера располагаться на следующих линиях без знака продолжения строки. В этом случае наличие двоеточия в конце метки обязательно.
Поле мнемоники начинается после первого пробела в строке и заканчивается одним или более пробелами. Поле мнемоники содержит одно из следующих утверждений:
мнемоническое обозначение команды процессора, например,
мнемоническое обозначение макрокоманды (см. ниже),
мнемонику директивы ассемблера,
мнемонику команды препроцессора.
Ассемблер проверяет допустимость кодов мнемоник по своей внутренней таблице кодов команд и директив, а затем по таблице макрокоманд. В случае отсутствия используемых мнемоник выдается сообщение об ошибке.
Поле операнда определяет информацию, над которой в соответствии с командами производятся действия. Поле операнда начинается сразу за пробелом (или пробелами), заканчивающим поле мнемоники, и, в свою очередь, заканчивается одним или более пробелами. В поле операнда могут быть записаны константы, символы и выражения, состоящие из символов и констант.
Эти конструкции языка описаны ниже. Если команда или директива требует нескольких операндов, то отдельные операнды разделяются запятыми, но не пробелами. Интерпретация поля операнда зависит от мнемоники соответствующей команды или директивы. Операнд определяет объекты, над которыми производятся операции, в качестве таких объектов могут быть конкретные значения (константы, переменные) или в какой-либо форме адреса конкретных значений (регистры процессора, ячейки памяти).
Основные конструкции ассемблера
При записи операндов и меток используются различные конструкции языка. Рассмотрим основные конструкции.
Константа является величиной, которая не изменяется в течение всего времени выполнения программы. Константы могут быть числовые и строчные.
Числовые константы могут быть записаны в одной из трех систем счисления — двоичной, десятичной или 16-ричной. Отрицательные константы ассемблером записываются в дополнительном коде (для положительных чисел представление в дополнительном и прямом кодах совпадают). Длина внутреннего представления константы равна 1 байт (8 двоичных разрядов) или 2 байта в зависимости от команды, с которой она используется.
Система счисления обозначается спецификатором, который может либо предшествовать константе, либо стоять в ее конце. В качестве спецификаторов используются:
H, h, $ — 16-ричная система,
B, b, % — двоичная система.
Если число в 16-ричной системе начинается с буквы, слева от нее должен быть дописан 0 (при спецификаторе H).
Источник: studopedia.su
Ответы на билеты по информатике МПФ / 15
Ядро – переводит команды с языка программ на язык «машинных кодов», понятный компьютеру.
Драйверы – программы, управляющие устройствами.
Интерфейс – оболочка, с помощью которой пользователь общается с компьютером.
Операционная система обеспечивает совместное функционирование всех устройств компьютера и предоставляет пользователю доступ к его ресурсам.
Процесс работы компьютера в определенном смысле сводится к обмену файлами между устройствами. В операционной системе имеются программные модули, управляющие файловой системой.
В состав операционной системы входит специальная программа — командный процессор, которая запрашивает у пользователя команды и выполняет их. Пользователь может дать, например, команду выполнения какой-либо операции над файлами (копирование, удаление, переименование), команду вывода документа на печать и т. д. Операционная система должна эти команды выполнить.
К магистрали компьютера подключаются различные устройства (дисководы, монитор, клавиатура, мышь, принтер и др.). В состав операционной системы входят драйверы устройств — специальные программы, которые обеспечивают управление работой устройств и согласование информационного обмена с другими устройствами. Любому устройству соответствует свой драйвер.
Для упрощения работы пользователя в состав современных операционных систем, и в частности в состав Windows, входят программные модули, создающие графический пользовательский интерфейс. В операционных системах с графическим интерфейсом пользователь может вводить команды посредством мыши, тогда как в режиме командной строки необходимо вводить команды с помощью клавиатуры.
Операционная система содержит также сервисные программы, или утилиты. Такие программы позволяют обслуживать диски (проверять, сжимать, дефрагментировать и т. д.), выполнять операции с файлами (архивировать и т. д.), работать в компьютерных сетях и т. д.
Для удобства пользователя в операционной системе обычно имеется и справочная система. Она предназначена для оперативного получения необходимой информации о функционировании
Супервизор-часть операционной системы которая осуществляет перевод запросов на ввод/вывод данных с языка названия файлов на язык считывания байтов.
Ути́лита (англ. utility или tool) — компьютерная программа, расширяющая стандартные возможности оборудования и операционных систем, выполняющая узкий круг специфических задач.
Система прерываний — система при которой в оперативной памяти компьютера находится одна программа не оптимальна, поэтому были разработаны многозадачные операционные системы, которые загружают в память не одну а несколько программ.
Система приоритетов – разработана для того чтобы указать какая из имеющихся программ должна в первую очередь получить управление.
2. Прогнозирование по методу многомерной линейной регрессии. ROC-кривые.
ROC-кривая — графическое изображение зависимости чувствительности как функции от специфичности.
Прогнозирование по методу многомерной линейной регрессии.
Технически построение прогноза по нескольким переменным не отличается от прогнозирования одной переменной. В SPSS для этого нужно выполнить команду Analize/Regression/Linear, прогнозируемую переменную задать как зависимую, а все факторы, по которым идет прогноз, как независимые.
Может быть такая ситуация, когда при многофакторном анализе неблагоприятный фактор становится благоприятным или наоборот. При многофакторном анализе для расчета прогностических коэффициентов нужно учесть величины коэффициентов корреляции факторов с прогнозируемой величиной и факторы друг с другом. Так как кол-во этих коэффициентов корреляции очень велико, то точность расчетов коэффициентов при многофакторном анализе ниже, чем при однофакторном. Кол-во рассматриваемых факторов должно быть много меньше кол-ва случаев.
Линейный многофакторный анализ. Технически построение прогноза по нескольким переменным практически не отличается от случая прогнозирования по одной переменной. Прогнозируемую переменную необходимо задать как независимую, а все факторы, по которым идет прогноз, как независимые.
Веса, с которыми входят факторы, зависят не только от величины корреляции фактора с прогнозируемой переменной и их среднеквадратичных отклонений, но и от взаимных корреляций факторов друг с другом, так как полезная для прогноза информация, содержащаяся в одном факторе, может быть учтена при включении других факторов. Может быть даже такая ситуация, когда при многофакторном анализе неблагоприятный фактор становится благоприятным и наоборот. Поэтому вклад данного фактора в общий многофакторный прогноз показывает содержимое колонки с заголовком Beta, который имеет смысл коэффициента корреляции этого фактора с прогнозируемой величиной при фиксированной величине всех других факторов. Колонка t содержит отношение величины параметра к его статистической погрешности, а колонки Sig – достоверность отличия параметра от нуля.
При любом статистическом расчете все полученные коэффициенты рассчитываются со статистическими погрешностями. При многофакторном анализе для расчета прогностических коэффициентов нужно учесть не только величины коэффициентов корреляции факторов с прогнозируемой величиной, но и факторов друг с другом. Так как количество коэффициентов корреляции велико ( пропорционально квадрату количества факторов), то точность расчета коэффициентов при многофакторном анализе ниже, чем при однофакторном и существенно падает при увеличении количества рассматриваемых факторов. Поэтому при многофакторном анализе количество рассматриваемых факторов должно быть много меньше количества случаев.
Рассмотрим случай, когда прогнозируемая переменная дихотомическая, то есть прогнозируется, произойдет ли какое-то событие или нет. Прогноз по методу линейной регрессии даст некоторую новую величину, значения которой обычно – нецелын числа. В этом случае желательно перевести это число в вероятность положительного или отрицательного исхода.
При решении задачи прогнозирования по методу линейной регрессии статистические пакеты выдают таблицу с весовыми коэффициентами. При помощи техники работы с вычислимыми переменными можно вычислить искомую переменную.
Например, при прогнозировании летального исхода у больных с пневмонией по их пульсу, частоте дыхания, температуре и артериальному давлению данные таблицы говорят о том, что корреляционная связь между исходом и его прогнозом – среднй силы, а величина поправки на авторешаемость невелика. Для выяснения практической ценности необходимо сохранить прогноз как новую переменную.
Из таблицы следует, что все, у кого значения прогноза были меньше нуля — выжили. Поэтому если полученная по методу линейной регрессии величина для данного больного отрицательна, то можно ожидать, что он выживет. Таким образом, при помощи такой таблицы можно предсказывать вероятность смерти для любого больного. Однако часто требуется оформление прогноза не в виде вероятности того или иного исхода, а в виде ожидаемого исхода.
Для этого необходимо установить граничное значение Z так, что если значение прогноза меньше Z, то ожидается выздоровление, а если больше – смерть. Меняя выбранную величину граничного значения Z можно улучшить специфичность за счет ухудшения чувствительности или наоборот. Так как чувствительность и специфичность – монотонные функции от величины Z, то можно исключить Z из рассмотрения и рассматривать чувствительность как функцию от специфичности. Графическое изображение этой зависимости называют ROC-кривыми.
В таких графиках чувствительность отображается по оси Y, а по оси X отображается не специфичность, а 1-специфичность. Например, если мы выберем такое Z, чтобы специфичность была равно 75%, а 1-специфичность 25%, то чувствительность будет равно примерно 85%. Для заданной ROC-кривой изменение порогового значения Z соответствует перемещению по линии графика.
Таким образом, график показывает различающуюся способность методики в целом. Чем лучше методика, тем выше график, поэтому качество методики в целом можно охарактеризовать долей площади под кривой. Идеальная методика, всегда дающая безошибочный прогноз, дает 100% покрытия площади. Для нее при любом значении специфичности чувствительность равна 1. Если методика не имеет никакой прогностической силы, то ROC-кривая имеет вид диагональной прямой, а площадь покрытия равна 50%.
Для оценки качества методик используются термины:
Эффективность – доля случаев, в которых был дан тот или иной категорический вывод.
Надежность — доля случаев, в которых был дан правильный вывод или в категорическом выводе было отказано.
Эта техника анализа качества прогноза основана на результате применения прогностического правила к тем данным, на основании которых прогноз строился. Следовательно, они не включают поправки на авторешаемость, и пользоваться ими можно только в том случае, когда величина поправки на авторешаемость много меньше прогностической силы методики.
Источник: studfile.net
Презентация по теме Операционные системы.pptx
Операционная система — это В большинстве вычислительных систем операционная система является основной, наиболее важной (а иногда и единственной) частью системного программного обеспечения
комплекс программ, обеспечивающий управление аппаратными средствами компьютера, организующий работу с файлами и выполнение прикладных программ, осуществляющий ввод и вывод данных.
Операционная система — это
В большинстве вычислительных систем операционная система является основной, наиболее важной (а иногда и единственной) частью системного программного обеспечения.
Презентация по теме Операционные системы.pptx
Классификация операционных систем
Классификация операционных систем
Поэтапная загрузка операционной системы
Поэтапная загрузка операционной системы
Файлы операционной системы хранятся во внешней, долговременной памяти. Однако программы могут выполняться, только если они находятся в оперативной памяти, поэтому файлы операционной системы необходимо загрузить в оперативную память.
Диск на котором находятся файлы операционной системы и с которого производится ее загрузка, называется системным.
После включения компьютера производится загрузка операционной системы с системного диска в оперативную память
Процесс загрузки операционной системы
Процесс загрузки операционной системы
Основные компоненты операционной системы переводит команды с языка программ на язык машинных кодов программы, управляющие устройствами оболочка, с помощью которой пользователь «общается» с компьютером
Основные компоненты операционной системы
переводит команды с языка программ на язык машинных кодов
программы, управляющие устройствами
оболочка, с помощью которой пользователь «общается» с компьютером.
Ядро операционной системы Ядро — центральная часть операционной системы , обеспечивающая приложениям координированный доступ к ресурсам компьютера, таким как процессорное время, память, внешнее аппаратное обеспечение,…
Ядро операционной системы
Ядро — центральная часть операционной системы , обеспечивающая приложениям координированный доступ к ресурсам компьютера, таким как процессорное время, память, внешнее аппаратное обеспечение, внешнее устройство ввода и вывода информации.
В общем случае, для использования любого устройства (как внешнего, так и внутреннего) необходим драйвер
В общем случае, для использования любого устройства (как внешнего, так и внутреннего) необходим драйвер.
— это компьютерная программа, с помощью которой операционная система получает доступ к аппаратному обеспечению некоторого устройства.
Интерфе́йс Совокупность средств и методов, при помощи которых пользователь взаимодействует с различными программами и устройствами
Совокупность средств и методов, при помощи которых пользователь взаимодействует с различными программами и устройствами.
Виджет = Элементы интерфейса
Можно выделить следующие виды
Можно выделить следующие виды
Графического интерфейса пользователя
ОС с интерфейсом командной строки
ОС с интерфейсом командной строки
Первые операционные системы (CP/M, MS-DOS, Unix) вели диалог с пользователем на экране текстового дисплея
Пользователь последовательно набрал две команды вывода каталога дисков, причем первую компьютер выполнил нормально, и на экране появился требуемый список файлов, а вторую «отказался» делать, поскольку оператор ошибочно указал имя несуществующего диска.
Эволюция ОС компании Microsoft 1983
Эволюция ОС компании Microsoft
1983 Windows 1.0
1985 Windows 1.0
1987 Windows 2.0
1990 Windows 3.0
1992 Windows 3.1
1993 Windows NT 3.1
1994 Windows NT 3.5
1995 Windows 95
1996 Windows NT 4.0
1998 Windows 98
2000 Windows 2000
Windows Millennium Edition
2001 Windows XP
2003 Windows Server 2003
2007 Windows Vista
Источник: znanio.ru