Содержание
- 2. Основная литература: Бройдо В.Л., Ильина О.П. «Архитектура ЭВМ и систем», учеб. для вузов . -2-е изд.,
- 3. Литература В.Н. Пильщиков «программирование на языке Ассемблера» В.И. Пустоваров «Язык Ассемблера в информационных и управляющих системах
- 4. История развития ПК 1948 год – создание транзистора…. 1958 год – 1-я микросхема…. 1971 год –
- 5. Транзистор — повсеместный и важный компонент в современной микроэлектронике. Его назначение простое: он позволяет с помощью
- 6. История развития ПК 1993 г. – 64-й МП «Pentium» - 5-е поколение: 3,1 млн. транзисторов, 0,8
- 7. История развития ПК Еще недавно производительность процессора определяли его тактовой частотой, измеряемой в мегагерцах или гигагерцах.
- 8. История развития ПК Технологический процесс производства, определяет в первую очередь структурный размер тех элементов, из которых
- 9. В апреле 2010 года был представлен современный игровой процессор Intel Core i7-980X Extreme Edition – шестиядерный,
- 10. Введение Расширение сфер применения компьютерной техники обусловлено ростом производительности и информационной емкости вычислительных систем, что в
- 11. При классификации программных средств, традиционно их делят на прикладные - программы пользователей и системные программы, поддерживающие
- 12. Управляющие системные программы, обеспечивающие корректное выполнение всех процессов при решении задач на компьютере и функционирование всех
- 13. На Ассемблере пишут: то, что требует максимальной скорости выполнения (основные компоненты компьютерных игр, ядра ОС реального
- 14. Архитектура ПК Понятие «архитектура ЭВМ» включает в себя структурную организацию аппаратных средств (набор блоков, устройств, объединенных
- 15. Архитектура ПК ПК Dля устройств ввода Dля устройств вывода послед. порт парал. порт
- 16. Архитектура микропроцессора ix86. Процессор ix86 после включения питания устанавливается в реальный режим адресации памяти и работы
- 17. Каждый персональный компьютер имеет процессор, который управляет арифметической, логической и управляющей деятельностями компьютера. Каждое семейство процессоров
- 18. Процессор понимает только инструкции машинного языка, которые являются последовательностью бит: 1 или 0. Однако машинный язык
- 19. Основные характеристики аппаратного обеспечения ПК Основное аппаратное обеспечение ПК состоит из процессора, памяти и регистров. Регистры
- 20. Двоичная система счисления Каждая система счисления использует позиционные обозначения разрядов чисел (их значений). Каждое следующее позиционное
- 22. 1) Перевести число 327 из десятичной системы в двоичную. Выполняем деление исходного числа на 2, пока
- 23. Шестнадцатеричная система счисления Шестнадцатеричная система счисления состоит из 16 символов: 0-9 и A-F. Символы A-F используются
- 25. Для конвертации бинарного числа в его шестнадцатеричный эквивалент разбейте бинарное число на 4 последовательные группы, начиная
- 26. Адресация данных в памяти Процесс, посредством которого процессор управляет выполнением инструкций, называется циклом выполнения, который состоит
- 27. Когда процессор переносит данные из памяти в регистр, то он опять меняет местами байты (т.е. 08
- 36. Регистр – это набор из n устройств, способных хранить n-разрядное двоичное число.
- 37. Регистры общего назначения 32-х разрядные регистры общего назначения без ограничения могут использоваться для временного хранения команд,
- 38. Рассматриваемый процессор может работать с оперативной памятью как с непрерывным массивом байтов (модель памяти flat), так
- 39. DS, ES, FS, GS - 16-ти разрядные сегментные регистры, используемые для определения начала сегментов данных. CS
- 40. Стек используется для временного хранения данных, для организации работы с подпрограммами, в том числе и рекурсивными,
- 41. Регистр флагов. Регистр FLAGS или EFLAGS определяет состояние процессора и программы в каждый текущий момент времени.
- 42. Регистр флагов Биты 1, 3, 5, 15, 19 - 31 - не используются, зарезервированы. В реальном
- 43. Регистр флагов DF определяет направление обработки строк данных, если DF= 0 – обработка строк идет в
- 44. Оперативная память Оперативная память состоит из байтов, каждый байт состоит из 8 информационных битов. зонная часть
- 45. Оперативная память Физический адрес (ФА) байта записывается как: : , т.е. он может быть получен по
- 46. Форматы данных Процессор ix86 вместе с сопроцессором могут обрабатывать большой набор различных типов данных: целые числа
- 47. Форматы данных Дополнительный код положительного числа равен самому числу. Дополнительный код отрицательного числа в любой системе
- 48. Форматы данных Числа с плавающей точкой могут занимать 32 бита или 64 бита или 80 бит,
- 49. Форматы данных Пример, 306010 представить в виде числа с плавающей точкой, занимающего 4 байта. 1) 306010
- 50. Форматы данных Символьные данные - символы в коде ASCII. Для любого символа отводится один байт. Строковые
- 51. Форматы команд Команда – это цифровой двоичный код, состоящий из двух подпоследовательностей двоичных цифр, одна из
- 52. Форматы команд Операнды могут находиться в регистрах, памяти и непосредственно в команде и размер операндов может
- 53. Машинный формат двухадресной команды, для которой один операнд находится всегда в регистре, а второй – в
- 54. Машинный формат двухадресной команды Значение поля “mod” определяет как используется смещение: 00, disp – отсутствует mod
- 55. Машинный формат двухадресной команды.
- 56. Примеры команд с различной адресацией операндов. В командах на Ассемблере результат всегда пересылается по адресу первого
- 57. Примеры команд с различной адресацией операндов 3) Прямая Если известен адрес памяти, начиная с которого размещается
- 58. Примеры команд с различной адресацией операндов 4) Косвенно-регистровая Данный вид адресации отличается от регистровой адресации тем,
- 59. Примеры команд с различной адресацией операндов 6) Прямая с индексированием MOV AX, MAS[SI] ; ((DS) +
- 60. Особенности использования команд пересылки 1. Нельзя пересылать информацию из одной области памяти в другую; 2. Нельзя
- 61. Особенности использования команд пересылки 6. Размер передаваемых данных определяется типом операндов в команде. X DB ?
- 62. Особенности использования команд пересылки 7. Если тип обоих операндов в команде определяется, то эти типы должны
- 63. К командам пересылки относят: Команды конвертирования: CBW ; безадресная команда, (AL) → AX. CWD ;( AX)
- 64. Структура программы на Ассемблере Ассемблер – это язык программирования низкого уровня и программа, написанная на Ассемблере,
- 65. Команды и директивы в Ассемблере Команда на Ассемблере состоит из четырех полей: [ [:]] [ ]
- 66. Команды и директивы в Ассемблере Директива, как и команда, состоит из четырех полей: [ ] [;комментарии]
- 67. Исходный модуль на Ассемблере – последовательность строк, команд, директив и комментариев. Исходный модуль просматривается Ассемблером, пока
- 68. Назначение сегментов В кодовом сегменте специальная директива…. ASSUME SS:SSeg, DS:DSeg, CS:CSeg, ES:DSeg; на DSeg ссылаются и
- 69. Назначение сегментов В сегменте стека выделяется место под стек. В сегменте данных описываются данные, используемые в
- 70. Cseg Segment… ASSUME SS:SSeg, DS:DSeg, CS:CSeg Start Proc FAR Push DS Push AX MOV DX, DSeg
- 71. Структура программы Строки 1, 5, 11 – это комментарии. Кодовый сегмент содержит две последовательные процедуры. Первая
- 72. Слова, константы, выражения, переменные Символические имена в Ассемблере могут состоять из строчных и прописных букв латинского
- 73. Слова, константы, выражения, переменные Также, как и в языках высокого уровня, в Ассемблере могут использоваться именованные
- 74. Слова, константы, выражения, переменные Арифметические операции: ‘+’, ‘-‘, ‘*’, ‘/’, mod. Логические операции: NOT, AND, OR,
- 75. Директива определения Общий вид директивы определения следующий [ ] DX , где Х это B, W,
- 76. Директива определения 1) Если операндом является символическое имя IM1, которое соответствует смещению в сегменте 03АС1h, то
- 77. Команда прерывания Int, команды работы со стеком С помощью этой команды приостанавливается работа процессора, управление передается
- 78. Команда прерывания Int, команды работы со стеком Для i186 и > PUSHA/ POPA позволяют положить в
- 79. Пример программы… ; описание сегмента данных DSeg Segment Para Public ‘Data’ DAN DB ’1’, ‘3’, ‘5’,
- 80. ; пересылка данных в обратной последовательности с выводом на экран MOV AH, 6 MOV DL, DAN
- 81. Директива сегмента Общий вид Segment Любой из операндов может отсутствовать. 1) Если есть , то будет
- 82. Директива сегмента 3) определяет тип объединения сегментов. Значение stack указывается в сегменте стека, для остальных сегментов
- 83. Точечные директивы В программе на Ассемблере могут использоваться упрощенные (точечные) директивы. .MODEL - директива, определяющая модель
- 84. Точечные директивы Пример использования точечных директив в программе на Асс-ре. .MODEL small .STACK 100h .DATA St1
- 85. Точечные директивы ‘$’ – конец строки, которую необходимо вывести на экран В результате выполнения программы: Line1
- 86. Com-файлы После обработки компилятором и редактором связей получаем exe-файл, который содержит блок начальной загрузки, размером не
- 87. Com-файлы PSP - 256 байтный блок, который содержится как в exe-файле, так и в com-файле, и
- 88. Main Proc MOV AH, 9 LEA DX, St1 Int 21h LEA DX, St2 Int 21h MOV
- 89. Примеры com-файлов 3) -------------------------- Beg Proc MOV AH, 9 LEA DX, St1 Int 21h MOV AH,
- 90. Арифметические операции Сложение (вычитание) беззнаковых чисел выполняется по правилам аналогичным сложению (вычитанию) по модулю 2k принятым
- 91. Арифметические операции Сложение (вычитание) знаковых чисел сводится к сложению (вычитанию) с использованием дополнительного кода. X =
- 92. Сложение и вычитание в Ассемблере Арифм-ие операции изменяют значение флажков OF, CF, SF, ZF, AF, PF.
- 93. Сложение и вычитание в Ассемблере X – Y = SUB BX, DX SBB AX, CX В
- 94. Умножение и деление в Ассемблере Умножение беззнаковых чисел. MUL OP2 ; (OP2)*(AL) ∨ (AX) ∨ (EAX)
- 95. Умножение и деление в Ассемблере Значение флагов не меняется, но может наступить деление на 0 или
- 96. Умножение и деление в Ассемблере ------------------ MOV BL, 10 ; делитель MOV AL, N ; делимое
- 97. Директивы внешних ссылок Директивы внешних ссылок позволяют организовать связь между различными модулями и файлами, расположенными на
- 98. Директивы внешних ссылок Пример: В модуле А содержится: Public TOT -------/------- TOT DW 0 ; чтобы
- 99. Команды управления Команды управления позволяют изменить ход вычислительного процесса. К ним относятся команды безусловной передачи управления,
- 100. Команды безусловной передачи управления ADD AX, BX JMP Short M1 M2: ------/------- M1: MOV AX, CX
- 101. Процедуры Near и Far Cseg segment…. assume ….. p1 proc far ------------------------- call p2 m: mov
- 102. Процедуры Near и Far 2) extrn p2: far public p2 cseg segment…… cseg1 segment….. assume ……
- 103. Команды безусловной передачи управления Команда вызова процедуры: CALL ; Адресация может быть использована как прямая, так
- 104. Примеры прямого и косвенного перехода 1) ------------- a dw L ; значением а является смещение для
- 105. Команды условной передачи управления Команды условной передачи управления можно разделить на 3 группы: команды, используемые после
- 106. Команды условной передачи управления Примеры: JE M1 ; передача управления на команду с меткой М1, если
- 107. Команды условной и безусловной передачи управления
- 108. Команды управления Команды условной передачи управления могут осуществлять только короткий переход, а команды безусловной передачи управления
- 109. Команды управления С помощью команд jx и jmp можно реализовать цикл с предусловием: while x >
- 110. Команды для организации циклов loop 2) loope loopz 3) Loopne loopnz По команде в форме 1):
- 111. Пример использования команд усл. перехода, сравнения и циклов Дана матрица целых байтовых величин, размером 4*5, необходимо
- 112. 15. Cseg segment para public ‘code’ Assume cs: cseg, ds:dseg, ss:sseg start proc far push DS
- 113. nz2: push CX cmp byte ptr [BX+SI], 0 jne mz mov byte ptr [BX+SI], 0FFh inc
- 114. Организация циклов Задача решена с помощью двух вложенных циклов, во внутреннем осуществляется просмотр элементов текущей строки
- 115. Массивы в Ассемблере Массивы в языке Ассемблер описываются директивами определения данных, возможно с использование конструкции повторения
- 116. Массивы в Ассемблере С учетом этих формул для записи адреса элемента массива можно использовать различные способы
- 117. Фрагмент программы, в которой в регистр AL записывается количество строк матрицы X DB 10 dup (
- 118. Команды побитовой обработки данных К командам побитовой обработки данных относятся логические команды, команды сдвига, установки, сброса
- 119. Команды побитовой обработки данных Например: and CX, 0FFh ; маской является константа and AX, CX ;
- 120. Команды побитовой обработки данных Команда xor OP1, OP2 ; 1 xor 1 = 0, 0 xor
- 121. Команды побитовой обработки данных ----------------------------- mov DL, 0 mov SI, 0 ; i = 0 mov
- 122. Команды побитовой обработки данных, команды сдвига Формат команд арифметического и логического сдвига можно представить так: sXY
- 123. Сдвиги больше, чем на 1,эквивалентны соответствующим сдвигам на 1, выполненным последовательно. Сдвиги повышенной точности для i186
- 124. После выполнения команды циклического сдвига CF всегда равен последнему биту, вышедшему за пределы приемника. Циклические сдвиги
- 125. Для самостоятельного изучения команды: BT , BTS , BTR , BTC , BSF , BSR ,
- 126. Комбинированный тип данных в Ассемблере. Структуры. Структура состоит из полей-данных различного типа и длины, занимая последовательные
- 127. Например, TData struc ; TData – идентификатор типа y DW 2000 ; y, m, d –
- 128. Описание переменных типа структуры осуществляется с помощью директивы вида: имя переменной имя типа Здесь уголки не
- 129. Правила использования начальных значений и значений по умолчанию: 1) если в поле переменной указан знак ?,
- 130. Отсутствие начального значения отмечается запятой. Если отсутствуют начальные значения нескольких последних полей, то запятые можно не
- 131. Имя первой структуры dst, второй – dst+4, третьей – dst+8 и т.д. Работать с полями структуры
- 132. Точка, указанная при обращении к полю, это оператор Ассемблера, который вычисляет адрес по формуле: + Тип
- 133. Одно исключение: если поле описано как строка, то оно может иметь начальным значением строку той же
- 134. Примеры программ с использованием данных типа структура. ; prim1.asm – прямое обращение к полям структуры .model
- 135. message DB “ hello”, 0dh, 0ah, ”$” tst struc ; описание типа структуры s DB “student”,”$”
- 136. Prim2.asm – обращение к полям структуры в цикле .model tiny .code org 100h ; обход 256
- 137. Prim3.asm – обращение к полям структур: цикл в цикле для работы с 2-мя структурами .model tiny
- 138. add BX, type tst ; переход к следующей записи ; BX + количество байтов, занимаемой структурой
- 139. Записи в Ассемблере Запись – это упакованные данные, которые занимают не отдельные, полные ячейки памяти (байты
- 140. Директива описания типа записи имеет вид: record {, } :: = : [= ] Здесь и
- 141. Определенное директивой record имя типа (Trec, TData) используется далее как директива для описания переменных –записей такого
- 142. также , как и для структур: Dat1 TData == Dat1 TData Dat2 TData == Dat2 TData
- 143. оператор mask имеет вид: Mask Mask Значением этого оператора является «маска» - это байт или слово,
- 144. Пример. Выявить всех родившихся 1-го числа, для этого придется выделять поле D и сравнивать его значение
- 146. Скачать презентацию