Содержание
- 2. Форматы данных Вещественные числа На современных ЭВМ чаще всего используются три формата вещественных чисел: короткие (длиной
- 3. Целые числа в младшей модели могут занимать в памяти 8 бит (короткое целое), 16 бит (длинное
- 4. Символьные данные В качестве символов используются короткие целые числа, которые трактуются как неотрицательные (беззнаковые) числа, задающие
- 5. Массивы (строки) Допускаются только одномерные массивы, которые могут состоять из коротких или длинных целых чисел. Массив
- 6. Логические (битовые) вектора. В языке машины представлены команды для обработки логический векторов длиной 8 или 16
- 7. Вещественные числа
- 8. Вещественные числа Такое представление вещественного числа называется нормализованным: его первый сомножитель удовлетворяет неравенству:
- 9. –13.25 Сначала переведём его в двоичную систему счисления: –13.2510 = -1101.012 Затем нормализуем это число: -1101.012
- 10. Шестнадцатеричные числа в языке Ассемблера принято записывать с буквой h на конце, при этом, если такое
- 11. Представимый диапазон порядков коротких вещественных чисел равен 2–126..2127 ≈ 10–38..1038
- 12. Из-за конечной длины представления вещественных чисел действия с ними выдают приближённый результат
- 13. Возможно: Возможны случаи, когда (a+b)+c ≠ a+(b+c) и (a+b)*c ≠ a*c+b*c. Решение простейшего уравнения X+A=A будет
- 14. Значение машинного порядка E=255 при мантиссе M ≠ 0 обозначает специальное значение "не число" (NAN –
- 15. Машинный порядок E=255 при мантиссе M = 0 задаёт, в зависимости от знака числа, специальные значения
- 16. Целые числа Беззнаковые (неотрицательные) числа представляются в двоичной системе счисления - прямым кодом Если инвертировать прямой
- 18. Другой способ Дополнительный код числа –13 можно вычислить и так: 28-13 = 256–13 = 100000000–00001101 =
- 19. Если сложить дополнительный код с прямым кодом, то получится ноль и "лишняя" единица, не помещающаяся в
- 20. Результат операций могут быть разными для знаковых и беззнаковых чисел
- 21. Для таких ситуаций в архитектуре компьютера введено понятие флагов. Каждый флаг занимает один бит в специальном
- 22. Существует флаг SF, в который всегда заносится знаковый (крайний левый) бит результата, таким образом, при знаковой
- 23. Сегментация памяти Память нашей ЭВМ имеет сегментную организацию. В любой момент времени для младшей модели определены
- 24. Физический адрес числа или команды вычисляется центральным процессором по формуле
- 25. В качестве мнемонических обозначений сегментных регистров выбраны следующие двухбуквенные служебные имена: кодовый сегментный регистр (CS), сегментный
- 26. Сегментные регистры являются специализированными, предназначенными только для хранения адресов сегментов, поэтому арифметические операции (сложение, вычитание и
- 28. только для хранения адресов сегментов
- 29. Мнемонические обозначения регистров Регистры общего назначения, каждый из которых может складывать, вычитать и просто хранить данные,
- 30. Каждый из регистров AH, AL, BH, BL, CH, CL, DH и DL может быть использован в
- 31. Существуют также четыре регистра с именами SI, DI, SP и BP, которые также могут использоваться для
- 33. Кроме перечисленных выше регистров программист имеет дело с регистром IP (instruction pointer), который называется счётчиком адреса
- 35. Особенности хранения чисел в регистровой и основной памяти ЭВМ Запишем, например, шестнадцатеричное число 1234h в какой-нибудь
- 36. Перешлём машинной командой содержимое этого регистра в память в ячейки с адресами, например, 100 и 101.
- 37. Структура команд
- 38. Команды этого формата занимают в памяти 2 байта. Первое поле команды – код операции – занимает
- 39. Назначение битов d и w Бит d задаёт направление выполнения команды, а именно:
- 40. Бит w задаёт размер регистров-операндов, а соответствие двоичных номеров регистров и их имён можно определить по
- 41. Для проведения операций над числами разной длины появляется необходимость преобразования типов из короткого целого в длинное,
- 43. Для преобразования знаковых целых чисел из более короткого формата в более длинный в языке машины предусмотрены
- 44. Формат регистр–память (и память-регистр). КОП r1 A2 Второй операнд A2 может в этом формате иметь один
- 45. Подробнее каждый их трёх возможных видов второго операнда A2 см. в Приложении «Возможные виды второго операнда»
- 46. Команды языка машины Команды пересылки Все они пересылают значение одного или двух байт из одного места
- 47. Общий вид команды пересылки в двухадресной ЭВМ такой (после точки с запятой будем записывать, как это
- 48. Команды пересылок не меняют флаги в регистре FLAGS. Команды пересылок с кодом операции mov бывают форматов
- 49. Арифметические команды КОП op1,op2, где КОП = add, sub, adc, sbb. Команды с кодами операций add
- 50. Команды с кодами операций adc (сложение с учётом флага переноса) и sbb (вычитание с учётом флага
- 51. Таблица допустимых операндов для этих команд:
- 52. Команды умножения и деления целых чисел Первый операнд всех команд этого класса явно в команде не
- 53. В случае с коротким вторым операндом форматов r8 и m8 при умножении вычисление производится по формуле:
- 54. При делении на короткий операнд форматов r8 и m8 производятся следующие действия: AL := AX div
- 55. Схема выполнения короткого и длинного деления
- 56. После выполнения команд умножения устанавливаются некоторые флаги, из которых для программиста представляют интерес только флаги переполнения
- 57. Для написания программ на Ассемблере нам будут нужны также следующие унарные арифметические операции. neg op1; взятие
- 60. Программа на ассемблере MASM 4 data segment ;сегмент данных программы string db "Hello word",13,10,"$" data ends
- 61. text segment assume Cs:text,Ds:data begin: mov Ax,data mov Ds,Ax mov AH,09h mov Dx,offset string int 21h
- 62. Программа на Fasm org 100h ; расположения в памяти : 100h start: ; Метка старота программы
- 64. http://placeprog.com/blogs/assembler/asembler-dlja-win32-okno.html
- 65. Листинг программы
- 67. Скачать презентацию