Содержание
- 2. Введение Язык ассемблера - это символическое представление машинного языка. Архитектура ЭВМ - это абстрактное представление ЭВМ,
- 3. Программная модель Intel (Pentium III)
- 4. Регистры Регистры - это память микропроцессоров. Программную модель микропроцессора Intel составляют: Пространство адресуемой памяти (для Pentium
- 5. Регистры общего назначения еах (ax/ah/al) –аккумулятор ebx (bx/bh/bl) - базовый регистр есх (cx/ch/cl) - регистр-счетчик edx(dx/dh/dl)
- 6. Сегментные регистры МП аппаратно поддерживает две модели использования оперативной памяти Сегментированная модель. В этой модели программе
- 7. Сегментные регистры Сегментация — это механизм адресации, обеспечивающий существование нескольких независимых адресных пространств, как в пределах
- 8. Сегментные регистры Сегмент кода. Содержит команды программы. Для доступа к этому сегменту служит регистр cs (code
- 9. Регистры состояния и управления регистр флагов eflsgs/flags регистр указателя команды eip/ip Указатель команд — это регистр
- 10. Структура программы на ассемблере Предложения ассемблера бывают четырех типов: команды, или инструкции, представляющие собой символические аналоги
- 11. Структура программы на ассемблере Формат команды ассемблера: [Метка:] Мнемокод [операнд] [;комментарий] Метка - служит для присвоения
- 12. Классификация операндов Постоянные и непосредственные операнды MOV ax,5 Адресные операнды MOV AX,DS:0000H Перемещаемые операнды lea si,a;
- 13. Режимы адресации
- 14. Псевдооператор определения сегмента Формат псеводооператора следующий имя_сег SEGMENT [тип подгонки] [тип_связи] ['класс'] [ тип размера памяти]
- 15. Псевдооператоры DB, DW, DD Все псевдооператоры определяют переменную или присваивает ячейке памяти начальное значение. DB -
- 16. Команда пересылки данных и работы со стеком Команда пересылки данных: MOV , Команды работы со стеком:
- 17. Команды пересылки данных Команда обмена: XCHG операнд1, операнд2 Работа с адресами и указателями: lea приемник, источник
- 18. Арифметические команды Арифметические команды работают с двумя типами чисел: целыми двоичными числами (знаковыми и беззнаковыми) целыми
- 19. Арифметические команды Команда сложения ADD приемник, источник приемник = приемник +источник Команда вычитания SUB приемник, источник
- 20. Команды манипулирования битами Логические команды and источник, приемник оr источник, приемник хоr источник, приемник test источник,
- 21. Команда сравнения СМР операнд1, операнд2
- 22. Функции работы с клавиатурой Прерывание int21h 01h – ввод с клавиатуры 02h – вывод на дисплей
- 23. Пример работы с клавиатурой code segment assume cs:code, ds:data main proc mov ax,data ;Инициализируем mov ds,ax
- 24. Пример работы с клавиатурой ;Превратим строчные русские буквы в прописные mov cx,actlen ;длина введенной строки mov
- 25. Пример работы с клавиатурой ;Выведем результат преобразования на экран mov ah,40h ;функция ввода mov bx,1 ;дескриптор
- 26. Команды обработки строк MOVS - переслать один байт или одно слово из одной области памяти в
- 27. Регистры, участвующие в цепочечных командах
- 28. Модификации префикса REP REP - повторять операцию, пока CX не равно 0; REPZ или REPE -
- 29. Пример: Использование цепочечных команд STACKSG SEGMENT PARA STACK 'Stack' DW 32 DUP(?) STACKG ENDS DATASG SEGMENT
- 30. Пример: Использование цепочечных команд PUSH AX MOV AX,DATASG MOV DS,AX MOV ES,AX CALL C10MVSB ;Подпрограмма MVSB
- 31. Пример: Использование цепочечных команд ;Использование MOVSB: C10MVSB PROC NEAR CLD LEA SI,NAME1 LEA DI,NAME2 MOV CX,10
- 32. Пример: Использование цепочечных команд MOV CX,05 ;Переслать 5 слов REP MOVSW ; из NAME2 в NAME3
- 33. Пример: Использование цепочечных команд ; Использование STOSW: F10STOS PROC NEAR CLD LEA DI,NAME3 MOV CX,05 MOV
- 34. Пример: Использование цепочечных команд REPE CMPSB ;Сравнить NAME1 и NAME2 JNE G20 ;Не равны? MOV BH,01
- 35. Пример: Использование цепочечных команд LEA DI,NAME1 MOV AL,'m' ;Поиск символа 'm' REPNE SCASB ; в NAME1
- 36. ASCII-ФОРМАТ Команды коррекции: AAA (ASCII Adjust for Addition - коррекция для сложения ASCII-кода) AAD (ASCII Adjust
- 37. Сложение чисел в ASCII-формате CODESG SEGMENT PARA 'Code‘ ASSUME CS:CODESG,DS:CODESG,SS:CODESG ORG 100H BEGIN: JMP SHORT MAIN
- 38. Сложение чисел в ASCII-формате A20: MOV AH,00 ;Очистить регистр AH MOV AL,[SI] ;Загрузить ASCII-байт ADC AL,[DI]
- 39. Двоично-десятичный формат Виды двоично-десятичных чисел: упакованном формате - каждый байт содержит две десятичные цифры. неупакованный формат-
- 40. Пример сложения двоично-десятичных чисел CODESG SEGMENT PARA "Code" ASSUME CS:CODESG,DS:CODESG,SS:CODESG ORG 100H BEGIN: JMP SHORT MAIN
- 41. Пример сложения двоично-десятичных чисел LEA SI,ASC2+4 ;Инициализировать для ASC2 LEA DI,BCD2+2 CALL B10CONV ;Вызвать преобразование CALL
- 42. Пример сложения двоично-десятичных чисел MOV [DI],AH ;Записать BCD-цифру DEC SI DEC SI DEC DI DEC DX
- 43. Пример сложения двоично-десятичных чисел ;Инициализация LEA DI,BCD2+2 ; BCD LEA BX,BCD3+3 ; адресов MOV CX,03 ;Трехбайтные
- 44. Пример сложения двоично-десятичных чисел DEC DI DEC BX LOOP С20 ;Цикл 3 раза RET C10ADD ENDP
- 45. Сопроцессоры Использование сопроцессоров с различной функциональностью позволяет решать проблемы широкого круга: обработка экономической информации; моделирование; графические
- 46. Сопроцессоры Два способа обмена информацией между ЦП и сопроцессором: прямое соединение входных и выходных портов (ЦП
- 47. Математический сопроцессор: основные функции
- 48. Программная модель сопроцессоров семейства
- 49. Математический сопроцессор
- 50. Команды пересылки данных Команды загрузки в стек (Fpu LoaD): FLD - загружает из памяти в вершину
- 51. Команды пересылки данных Команды копирования данных (Fpu STore): FST память -> ST(0), вещественный формат FIST память
- 52. Команды пересылки данных Команды загрузки констант: FLDZ 0 -> ST(0) - Загрузить нуль FLD1 1 ->
- 53. Арифметические команды Fxxx Fxxx память Fixxx память Fxxx ST, ST(i) Fxxx ST(i), ST FxxP ST(i), ST
- 54. Дополнительные арифметические команды FSQRT - Извлечение квадратного корня FSCALE - Масштабирование на степень числа 2 FPREM
- 55. Команды сравнения чисел FCOM - Сравнение FICOM - Целочисленное сравнение FCOMP - Сравнение и извлечение из
- 56. Значения битов кодов условия после выполнения команд сравнения Значения битов кодов условия после выполнения команды "FCOM
- 57. Значения битов кодов условия после выполнения команд сравнения Значения битов кодов условия после команды " FXAM
- 58. Трансцендентные команды FPTAN Вычисление частичного тангенса FPATAN Вычисление частичного арктангенса FYL2X Вычисление y*log2(x) FYL2XP1 Вычисление y*log2(x+1)
- 59. Управляющие команды FNSTCW (FSTCW) FLDCW FNSTSW (FSTSW) FNSTSW AX (FSTSW AX) FNCLEX (FCLEX) FNINIT (FINIT) FNSTENV
- 60. Особые значения результатов работы сопроцессора Неточный результат Переполнение Антипереполнение Деление на нуль Недействительная операция Денормализованный операнд
- 61. Пример ввода вещественного числа в математический сопроцессор (числа не более 1000, количество знаков после запятой не
- 62. Продолжение примера mov ah, 0ah lea dx, buf_st int 21h lea si,[buf] l_celoe: cmp byte ptr
- 63. Продолжение примера mov bh, 0 mov cx, 10 mov ax, c mul cx add ax, bx
- 64. Продолжение примера l_drob: inc si cmp byte ptr [si], 13 je l_end mov bl, [si] sub
- 65. Продолжение примера mov ax, d mul cx add ax, bx mov d, ax mov ax, p
- 66. Продолжение примера l_end: finit fild d fidiv p fiadd c fst res fwait mov ax, 4c00h
- 67. ТЕКСТОВЫЙ (АЛФАВИТНО-ЦИФРОВОЙ) РЕЖИМ
- 68. Байт-атрибут Фон Текст Атрибут: BL R G B I R G B Номера битов: 7 6
- 69. Пример Вывод на экран пяти мигающих звездочек светло-зеленым цветом на сиреневом фоне : MOV AH,09 ;Функция
- 70. ГРАФИЧЕСКИЙ РЕЖИМ Цветной графический адаптер (CGA) имеет три степени разрешения: Низкое разрешение (не поддерживается в ROM)
- 71. РЕЖИМ СРЕДНЕГО РАЗРЕШЕНИЯ Байт: |C1 C0|C1 C0|C1 C0|C1 C0| Пиксели: 0 1 2 3 C1 C0
- 72. Прерывание BIOS INT 10H для графики AH=00: Установка режима MOV AH,00 ;Функция установки режима MOV AL,04
- 73. Пример: установка графического режима и отображение цвета CODESG SEGMENT PARA 'Code' ASSUME CS:CODESG,DS:CODESG,SS:CODESG ORG 100H MAIN
- 74. Пример: установка графического режима и отображение цвета MOV BX,00 ;Начальные цвет, MOV CX,00 ; столбец MOV
- 75. Пример: установка графического режима и отображение цвета MOV CX,00 ; да - сбросить столбец INC BL
- 76. Дисковая память: Расширенные функции DOS Работа с файлами. Коды ошибок 01 Ошибка номера функции 02 Файл
- 77. Работа с файлами AH=3Сh: Создание файла MOV AH,3CH ;Запрос на создание MOV CX,00 ; обычного файла
- 78. Работа с файлами AH=3Eh: Закрытие файла MOV AH,3EH ;Запрос на закрытие файла MOV BX,HANDLE1 ;Файловый номер
- 79. Работа с файлами Пример MOV AH,3DH ;Запрос на открытие MOV AL,00 ;Только чтение LEA DX,PATHNM1 ;Строка
- 80. Пример чтения из файла STACKSG SEGMENT PARA STACK 'Stack' DW 80 DUP(?) STACKSG ENDS DATASG SEGMENT
- 81. Пример чтения из файла BEGIN PROC FAR ASSUME CS:CODESG,DS:DATASG,SS:STACKSG,ES:DATASG PUSH DS SUB AX,AX PUSH AX MOV
- 82. Пример чтения из файла CMP ENDCDE,00 ;Ошибка открытия? JNZ A90 ; да - завершить программу A20LOOP:
- 83. Пример чтения из файла ; Открытие файла: E100PEN PROC NEAR MOV AH,3DH ;Функция открытия MOV CX,00
- 84. Пример чтения из файла ; Чтение дисковой записи: F10READ PROC NEAR MOV AX,3FH ;Функция чтения MOV
- 85. Пример чтения из файла F20: LEA DX,READMSG ; нет - выдать CALL X10ERR ; сообщение об
- 86. Пример чтения из файла CMP ROW,20 ;Последняя строка экрана? JEA G90 ; да - обойти INC
- 87. Пример чтения из файла ; Прокрутка (скроллинг) экрана: ; ---------------------------- Q10SCR PROC NEAR ;в AX -
- 88. Пример чтения из файла ; Установка курсора: Q20CURS PROC NEAR MOV AH,02 ;Функция установки курсора MOV
- 90. Скачать презентацию