
|
|
Главная \ Методичні вказівки \ Системне программування
Системне программування« Назад
Системне программування 28.04.2014 15:46
Технічне завдання На виконання курсової роботи по курсу "Системне программування"
2.1. Вхідні дані транслятора - текстовий файл з довільною програмою на мові Асемблера, складеною в відповідності з обмеженнями, які задані в варіанті курсової роботи. Для підготовки програми на мові Асемблера використовується, наприклад, стандартний додаток OS Windows Блокнот. 2.2. На всі синтаксичні конструкції (ідентифікатори, константи, директиви, машинні команди, режими адресаціїї і т.д.), які допускаються в TASM(MASM) і які виходять за рамки обмежень в варіанті курсової роботи повинно видаватись діагностичне повідомлення про синтаксичну помилку. 2.3. В результаті роботи транслятора повинен бути створений текстовий файл лістінга (розширення .lst). Формат файла лістінга повинен співпадать з форматом файла лістінга MASM або TASM. Діагностичні повідомлення формуються на українській мові. Таблиця символів в файлі лістінга може бути в довільному форматі. 2.4. Транслятор повинен аналізувати командний рядок, в якому задаються імена початкового файла та файла лістінга. Всі діагностичні повідомлення, які формуються в файлі лістінга додатково повинні виводитись на екран монітора. Крім того, на екран виводиться загальна кількість помилок, виявлених в початковій програмі.
3.1. Рекомендується модулі транслятора створювати на мові Паскаль (Delphi) або C++, з обов’язковим і обґрунтованим використанням Асемблерних вставок..
4.1. Для допуску до приймання курсової роботи необхідно підготувати: 4.1.1. Роздруковану та підписану автором Пояснювальну записку 4.1.2. Текстовий файл, який містить пояснювальну записку 4.1.3. Файли початкових модулів транслятора 4.1.4. Виконавчий файл транслятора 4.1.5. Файли тестових програм 4.2. Пояснювальна записка повинна містить: 4.2.1. Титульну частину з загальноприйнятим вмістом 4.2.2. Технічне завдання, включаючи номер та зміст варіанту 4.2.3. Календарний план виконання етапів робіт. , 4.2.4. Опис розроблених модулів та підпрограмм 4.2.5. Додаток 1 з текcтами початкових модулів транслятора 4.2.6. Додаток 2 з двома тестовими прикладами - один без помилок, другий з типовими помилками 4.2.7. Додаток 3 з роздруківками файлів лістінга, сформованими розробленим транслятором із початкових файлів з Додатку 2 4.2.8. Додаток 4 з роздруківками файлів лістінга, сформованими транслятором MASM ( абоTASM) із початкових файлів з Додатку 2
5.1. Створення на базі варіанту завдання та погодження з викладачем тестового файлу 5.2. Розробка лексичного аналізатора 5.3. Розробка програми 1-го перегляду (формування таблиці ідентифікаторів, визначення кількості байт, які будуть формуватись по кожній інструкції) 5.4. Розробка програми 2-го перегляду (генерування команд та даних, формування файла лістінга)
6.1. Зубков С.В. Assembler. Язык неограниченных возможностей. Приложение 2. Команды Intel 80x86. М.2001 6.2. Юров В. Assembler. Учебный курс. Урок 5. Синтаксис ассемблера.С-Пб. 2001. 6.3. Квиттнер П. Задачи Программ Вычисления Результаты. Гл 5. Языки ассемблеров и ассемблеры. М. Мир. 1980. 6.4. Лебедев В.Н. Введение в системы программирования. (в части организации вычисления выражений). М. Статистика. 1975.
Варіант 1. Ідентифікатори Містять великі і малі букви латинского алфавіту та цифри. Починаються з букви. Великі та малі букви не відрізняються. Довжина ідентифікаторів не більше 8 символів Константи Шістнадцятерічні, десяткові, двійкові та текстові константи Директиви END, SEGMENT - без операндів, ENDS, ASSUME DB,DW,DD з одним операндом - константою (строкові константи тільки для DB) Розрядність даних та адрес 16 - розрядні дані та зміщення в сегменті, в випадку 32-розрядних даних та 32 - розрядних зміщень генеруються відповідні префікси зміни розрядності Адресація операндів пам'яті Індексна адресація (Val1[si],Val1[bx],Val1[eax],Val1[edi] і т.п.) Заміна сегментів Префікси заміни сегментів можуть задаватись явно, а при необхідності автоматично генеруються транслятором Машинні команди Cli Inc reg Dec mem Add reg,reg Cmp reg,mem Xor mem,reg Mov reg,imm Or mem,imm Jb jmp (внутрішньосегментна відносна адресація) Де reg – 8,16 або 32-розрядні РЗП mem – адреса операнда в пам’яті imm - 8,16 або 32-розрядні безпосередні дані (константи)
Варіант 2 Ідентифікатори Містять великі і малі букви латинского алфавіту та цифри. Починаються з букви. Великі та малі букви не відрізняються. Довжина ідентифікаторів не більше 8 символів Константи Шістнадцятерічні, десяткові, двійкові та текстові константи Директиви END, SEGMENT - без операндів, ENDS, ASSUME DB,DW,DD з одним операндом - константою (строкові константи тільки для DB) Розрядність даних та адрес 32 - розрядні дані та зміщення в сегменті, 16 -розрядні дані та зміщення не використовуються
Адресація операндів пам'яті Індексна адресація із множником (Val1[eax*2],Val1[edi*4] і т.п.) Заміна сегментів Префікси заміни сегментів можуть задаватись явно, а при необхідності автоматично генеруються транслятором Машинні команди Sti Dec reg Inc mem Cmp reg,reg Or reg,mem And mem,reg Mov reg,imm Add mem,imm Jnz jmp (міжсегментна пряма та посередня адресація) Де reg – 8 або 32-розрядні РЗП mem – адреса операнда в пам’яті imm – 8 або 32-розрядні безпосередні дані (константи)
Варіант 3 Ідентифікатори Містять великі і малі букви латинского алфавіту та цифри. Починаються з букви. Великі та малі букви не відрізняються. Довжина ідентифікаторів не більше 8 символів Константи Шістнадцятерічні, десяткові, двійкові та текстові константи Директиви END, SEGMENT - без операндів, ENDS, ASSUME DB,DW,DD з одним операндом - константою (строкові константи тільки для DB) Розрядність даних та адрес 32 - розрядні дані та зміщення в сегменті, в випадку 16-розрядних даних та 16 - розрядних зміщень генеруються відповідні префікси зміни розрядності Адресація операндів пам'яті Базова індексна адресація з константним зміщенням ([bx+di+10],[bp+ei+2], [edx+esi+6],[ebx+ecx+12] і т.п.) з оператором визначення типу (ptr) при необхідності
Заміна сегментів Префікси заміни сегментів можуть задаватись тільки явно Машинні команди stc push reg mul mem Mov reg,reg Xor reg,mem Cmp mem,reg Sub reg,imm Adc mem,imm Jnc jmp (внутрішньосегментна відносна адресація) Де reg – 8,16 або 32-розрядні РЗП mem – адреса операнда в пам’яті imm - 8,16 або 32-розрядні безпосередні дані (константи)
Варіант 4 Ідентифікатори Містять великі і малі букви латинского алфавіту та цифри. Починаються з букви. Великі та малі букви не відрізняються. Довжина ідентифікаторів не більше 8 символів Константи Шістнадцятерічні, десяткові, двійкові та текстові константи Директиви END, SEGMENT - без операндів, ENDS, ASSUME DB,DW,DD з одним операндом - константою (строкові константи тільки для DB) Розрядність даних та адрес 32 - розрядні дані та зміщення в сегменті, 16 -розрядні дані та зміщення не використовуються Адресація операндів пам'яті ([edx+esi*4+6],[ebx+ecx*2+12] і т.п.) з оператором визначення типу (ptr) при необхідності Заміна сегментів Префікси заміни сегментів можуть задаватись тільки явно Машинні команди Std Push reg Pop mem Sbb reg,reg Mov reg,mem Cmp mem,reg Adc reg,imm And mem,imm Jae jmp (пряма міжсегментна адресація) Де reg – 8 або 32-розрядні РЗП mem – адреса операнда в пам’яті imm - 8 або 32-розрядні безпосередні дані (константи)
Варіант 5 Ідентифікатори Містять великі і малі букви латинского алфавіту та цифри. Починаються з букви. Великі та малі букви не відрізняються. Довжина ідентифікаторів не більше 8 символів Константи Шістнадцятерічні, десяткові, двійкові та текстові константи Директиви END, SEGMENT - без операндів, ENDS, ASSUME DB,DW,DD з одним операндом - константою (строкові константи тільки для DB) Розрядність даних та адрес 16 - розрядні дані та зміщення в сегменті, в випадку 32-розрядних даних та 32 - розрядних зміщень генеруються відповідні префікси зміни розрядності Адресація операндів пам'яті Базова індексна адресація із зміщенням по ідентифікатору (Val1[bp+si],Val1[bx+di],Val1[eax+edx],Val1[esi+edi] і т.п.) Заміна сегментів Префікси заміни сегментів можуть задаватись явно, а при необхідності автоматично генеруються транслятором Машинні команди nop shr reg,1 not mem Addreg,mem Sub mem,reg Jc jmp (внутрішньосегментна відносна адресація) Де reg – 8,16 або 32-розрядні РЗП mem – адреса операнда в пам’яті
Варіант 6 Ідентифікатори Містять великі і малі букви латинского алфавіту та цифри. Починаються з букви. Великі та малі букви не відрізняються. Довжина ідентифікаторів не більше 8 символів Константи Шістнадцятерічні, десяткові, двійкові та текстові константи Директиви END, SEGMENT - без операндів, ENDS, ASSUME DB,DW,DD з одним операндом - константою (строкові константи тільки для DB) Розрядність даних та адрес 32 - розрядні дані та зміщення в сегменті, 16 -розрядні дані та зміщення не використовуються Адресація операндів Базова індексна адресація із множником і з зміщенням по ідентифікатору (Val1[eax+edx*2],Val1[esi+edi*4] і т.п.) Заміна сегментів Префікси заміни сегментів можуть задаватись явно, а при необхідності автоматично генеруються транслятором Машинні команди Cld Neg reg Push mem Mov reg,mem Cmp mem,reg Jae jmp (міжсегментна пряма та посередня адресація) Де reg – 8 або 32-розрядні РЗП mem – адреса операнда в пам’яті
Варіант 7 Ідентифікатори Містять великі і малі букви латинского алфавіту та цифри. Починаються з букви. Великі та малі букви не відрізняються. Довжина ідентифікаторів не більше 8 символів Константи Шістнадцятерічні, десяткові, двійкові та текстові константи Директиви END, SEGMENT - без операндів, ENDS, ASSUME DB,DW,DD з одним операндом - константою (строкові константи тільки для DB) Розрядність даних та адрес 32 - розрядні дані та зміщення в сегменті, в випадку 16-розрядних даних та 16 - розрядних зміщень генеруються відповідні префікси зміни розрядності Адресація операндів пам'яті Базова індексна адресація ([bx+di],[bp+ei],[edx+esi],[ebx+ecx] і т.п.) з оператором визначення типу (ptr) при необхідності Заміна сегментів Префікси заміни сегментів можуть задаватись тільки явно Машинні команди stc push reg mul mem Mov reg,reg Adc reg,mem Sub mem,reg Cmp reg,imm Xor mem,imm Jc jmp (внутрішньосегментна відносна адресація) Де reg – 8,16 або 32-розрядні РЗП mem – адреса операнда в пам’яті imm - 8,16 або 32-розрядні безпосередні дані (константи)
Варіант 8 Ідентифікатори Містять великі і малі букви латинского алфавіту та цифри. Починаються з букви. Великі та малі букви не відрізняються. Довжина ідентифікаторів не більше 8 символів Константи Шістнадцятерічні, десяткові, двійкові та текстові константи Директиви END, SEGMENT - без операндів, ENDS, ASSUME DB,DW,DD з одним операндом - константою (строкові константи тільки для DB) Розрядність даних та адрес 32 - розрядні дані та зміщення в сегменті, 16 -розрядні дані та зміщення не використовуються Адресація операндів пам'яті Пряма адресація. Базова індексна адресація із множником ([edx+esi*4],[ebx+ecx*2] і т.п.) з оператором визначення типу (ptr) при необхідності. Заміна сегментів Префікси заміни сегментів можуть задаватись тільки явно Машинні команди Std Push reg Pop mem Sbb reg,reg Mov reg,mem Cmp mem,reg Adc reg,imm And mem,imm Jna jmp (міжсегментна пряма та посередня адресація) Де reg – 8 або 32-розрядні РЗП mem – адреса операнда в пам’яті imm - 8 або 32-розрядні безпосередні дані (константи)
Варіант 9 Ідентифікатори Містять великі і малі букви латинского алфавіту та цифри. Починаються з букви. Великі та малі букви не відрізняються. Довжина ідентифікаторів не більше 8 символів Константи Шістнадцятерічні, десяткові, двійкові та текстові константи Директиви END, SEGMENT - без операндів, ENDS, ASSUME DB,DW,DD з одним операндом - константою (строкові константи тільки для DB) Розрядність даних та адрес 16- розрядні дані та зміщення в сегменті, в випадку 32-розрядних даних та 32 - розрядних зміщень генеруються відповідні префікси зміни розрядності Адресація операндів пам'яті Базова адресація ([si+2],[bp+10],[eax+5] і т.п.) з оператором визначення типу (ptr) при необхідності. Заміна сегментів Префікси заміни сегментів можуть задаватись тільки явно Машинні команди stc push reg mul mem Mov reg,reg Xor reg,mem Sub mem,reg Cmp reg,imm Add mem,imm Jc jmp (внутрішньосегментна відносна адресація) Де reg – 8,16 або 32-розрядні РЗП mem – адреса операнда в пам’яті imm - 8,16 або 32-розрядні безпосередні дані (константи)
Варіант 10 Ідентифікатори Містять великі і малі букви латинского алфавіту та цифри. Починаються з букви. Великі та малі букви не відрізняються. Довжина ідентифікаторів не більше 8 символів Константи Шістнадцятерічні, десяткові, двійкові та текстові константи Директиви END, SEGMENT - без операндів, ENDS, ASSUME DB,DW,DD з одним операндом - константою (строкові константи тільки для DB) Розрядність даних та адрес 32 - розрядні дані та зміщення в сегменті, в випадку 16-розрядних даних та 16 - розрядних зміщень генеруються відповідні префікси зміни розрядності Адресація операндів пам'яті Посередня регістрова адресація ([si],[bx],[eax],[edi] і т.п.) та посередня регістрова з множником ([esi*4], [eax*2] і т.п. ), з оператором визначення типу (ptr) при необхідності. Заміна сегментів Префікси заміни сегментів можуть задаватись тільки явно Машинні команди stc pop reg mul mem Mov reg,reg Xor reg,mem Sub mem,reg Cmp reg,imm Adc mem,imm Jnc jmp (міжсегментна пряма та посередня адресація) Де reg – 8,16 або 32-розрядні РЗП mem – адреса операнда в пам’яті imm - 8,16 або 32-розрядні безпосередні дані (константи)
Варіант 11. Ідентифікатори Містять великі і малі букви латинского алфавіту та цифри. Починаються з букви. Великі та малі букви не відрізняються. Довжина ідентифікаторів не більше 8 символів Константи Шістнадцятерічні, десяткові, двійкові та текстові константи Директиви END, SEGMENT - без операндів, ENDS, программа може мати тільки один сегмент кодів і тільки один сегмент даних EQU IF-ELSE-ENDIF DB,DW,DD з одним операндом - константою (строкові константи тільки для DB) Розрядність даних та адрес 32 - розрядні дані та зміщення в сегменті, 16 -розрядні дані та зміщення не використовуються Адресація операндів пам'яті Індексна адресація (Val1[eax],Val1[edi] і т.п.) Заміна сегментів Префікси заміни сегментів можуть задаватись явно, а при необхідності автоматично генеруються транслятором Машинні команди Cli Inc reg Dec mem Add reg,reg Cmp reg,mem Or mem,reg Mov reg,imm And mem,imm Jbe Де reg – 8 або 32-розрядні РЗП mem – адреса операнда в пам’яті imm - 8 або 32-розрядні безпосередні дані (константи)
Варіант 12 Ідентифікатори Містять великі і малі букви латинского алфавіту та цифри. Починаються з букви. Великі та малі букви не відрізняються. Довжина ідентифікаторів не більше 8 символів Константи Шістнадцятерічні та текстові константи Директиви END, SEGMENT - без операндів, ENDS, программа може мати тільки один сегмент кодів і тільки один сегмент даних EQU IF--ENDIF DB,DW,DD з одним операндом - константою (строкові константи тільки для DB) Розрядність даних та адрес 32 - розрядні дані та зміщення в сегменті, 16 -розрядні дані та зміщення не використовуються Адресація операндів пам'яті Індексна адресація із множником (Val1[eax*2],Val1[edi*4] і т.п.) Заміна сегментів Префікси заміни сегментів можуть задаватись явно, а при необхідності автоматично генеруються транслятором Машинні команди Sti Dec reg Inc mem Cmp reg,reg Or reg,mem And mem,reg Mov reg,imm Add mem,imm Jz Де reg – 8 або 32-розрядні РЗП mem – адреса операнда в пам’яті imm – 8 або 32-розрядні безпосередні дані (константи)
Варіант 13. Ідентифікатори Містять великі і малі букви латинского алфавіту та цифри. Починаються з букви. Великі та малі букви не відрізняються. Довжина ідентифікаторів не більше 8 символів Константи Шістнадцятерічні, десяткові, двійкові та текстові константи Директиви END, SEGMENT - без операндів, ENDS, программа може мати тільки один сегмент кодів і тільки один сегмент даних EQU IF-ELSE-ENDIF DB,DW,DD з одним операндом - константою (строкові константи тільки для DB) Розрядність даних та адрес 32 - розрядні дані та зміщення в сегменті, 16 -розрядні дані та зміщення не використовуються Адресація операндів пам'яті Базова індексна адресація з константним зміщенням ([edx+esi+6],[ebx+ecx+12] і т.п.) з оператором визначення типу (ptr) при необхідності Заміна сегментів Префікси заміни сегментів можуть задаватись тільки явно Машинні команди Cli Inc reg Dec mem Add reg,reg Cmp reg,mem And mem,reg Mov reg,imm Or mem,imm Jb Де reg – 8 або 32-розрядні РЗП mem – адреса операнда в пам’яті imm - 8 або 32-розрядні безпосередні дані (константи)
Варіант 14 Ідентифікатори Містять великі і малі букви латинского алфавіту та цифри. Починаються з букви. Великі та малі букви не відрізняються. Довжина ідентифікаторів не більше 8 символів Константи Шістнадцятерічні та текстові константи Директиви END, SEGMENT - без операндів, ENDS, программа може мати тільки один сегмент кодів і тільки один сегмент даних EQU IF-ELSE-ENDIF DB,DW,DD з одним операндом - константою (строкові константи тільки для DB) Розрядність даних та адрес 32 - розрядні дані та зміщення в сегменті, 16 -розрядні дані та зміщення не використовуються Адресація операндів пам'яті Базова індексна адресація із множником і з константним зміщенням ([edx+esi*4+6],[ebx+ecx*2+12] і т.п.) з оператором визначення типу (ptr) при необхідності Заміна сегментів Префікси заміни сегментів можуть задаватись тільки явно Машинні команди Sti Inc reg Dec mem Cmp reg,reg Or reg,mem And mem,reg Mov reg,imm Add mem,imm Jnz Де reg – 8 або 32-розрядні РЗП mem – адреса операнда в пам’яті imm – 8 або 32-розрядні безпосередні дані (константи)
Варіант 15. Ідентифікатори Містять великі і малі букви латинского алфавіту та цифри. Починаються з букви. Великі та малі букви не відрізняються. Довжина ідентифікаторів не більше 8 символів Константи Шістнадцятерічні, десяткові, двійкові та текстові константи Директиви END, SEGMENT - без операндів, ENDS, программа може мати тільки один сегмент кодів і тільки один сегмент даних EQU IF-ELSE-ENDIF DB,DW,DD з одним операндом - константою (строкові константи тільки для DB) Розрядність даних та адрес 32 - розрядні дані та зміщення в сегменті, 16 -розрядні дані та зміщення не використовуються Адресація операндів пам'яті Індексна адресація (Val1[eax+edx],Val1[ecx+edi] і т.п.) Заміна сегментів Префікси заміни сегментів можуть задаватись явно, а при необхідності автоматично генеруються транслятором
Машинні команди Cli Inc reg Dec mem Add reg,reg Cmp reg,mem And mem,reg Mov reg,imm Or mem,imm Jbe Де reg – 8 або 32-розрядні РЗП mem – адреса операнда в пам’яті imm - 8 або 32-розрядні безпосередні дані (константи)
Варіант 16 Ідентифікатори Містять великі і малі букви латинского алфавіту та цифри. Починаються з букви. Великі та малі букви не відрізняються. Довжина ідентифікаторів не більше 8 символів Константи Шістнадцятерічні та текстові константи Директиви END, SEGMENT - без операндів, ENDS, программа може мати тільки один сегмент кодів і тільки один сегмент даних EQU IF-ELSE-ENDIF DB,DW,DD з одним операндом - константою (строкові константи тільки для DB) Розрядність даних та адрес 32 - розрядні дані та зміщення в сегменті, 16 -розрядні дані та зміщення не використовуються Адресація операндів пам'яті Індексна адресація із множником (Val1[ecx+eax*2],Val1[edx+edi*4] і т.п.) Заміна сегментів Префікси заміни сегментів можуть задаватись явно, а при необхідності автоматично генеруються транслятором
Машинні команди Sti Dec reg Inc mem Cmp reg,reg Or reg,mem And mem,reg Mov reg,imm Add mem,imm Jnz
Де reg – 8 або 32-розрядні РЗП mem – адреса операнда в пам’яті imm – 8 або 32-розрядні безпосередні дані (константи)
Варіант 17. Ідентифікатори Містять великі і малі букви латинского алфавіту та цифри. Починаються з букви. Великі та малі букви не відрізняються. Довжина ідентифікаторів не більше 8 символів Константи Шістнадцятерічні, десяткові, двійкові та текстові константи Директиви END, SEGMENT - без операндів, ENDS, программа може мати тільки один сегмент кодів і тільки один сегмент даних EQU IF-ELSE-ENDIF DB,DW,DD з одним операндом - константою (строкові константи тільки для DB) Розрядність даних та адрес 32 - розрядні дані та зміщення в сегменті, 16 -розрядні дані та зміщення не використовуються Адресація операндів пам'яті Базова індексна адресація ([edx+esi],[ebx+ecx] і т.п.) з оператором визначення типу (ptr) при необхідності Заміна сегментів Префікси заміни сегментів можуть задаватись тільки явно Машинні команди Cli Inc reg Dec mem Add reg,reg Cmp reg,mem And mem,reg Mov reg,imm Or mem,imm Jbe
Де reg – 8 або 32-розрядні РЗП mem – адреса операнда в пам’яті imm - 8 або 32-розрядні безпосередні дані (константи)
Варіант 18 Ідентифікатори Містять великі і малі букви латинского алфавіту та цифри. Починаються з букви. Великі та малі букви не відрізняються. Довжина ідентифікаторів не більше 8 символів Константи Шістнадцятерічні та текстові константи Директиви END, SEGMENT - без операндів, ENDS, программа може мати тільки один сегмент кодів і тільки один сегмент даних EQU IF-ELSE-ENDIF DB,DW,DD з одним операндом - константою (строкові константи тільки для DB) Розрядність даних та адрес 32 - розрядні дані та зміщення в сегменті, 16 -розрядні дані та зміщення не використовуються Адресація операндів пам'яті Базова індексна адресація із множником ([edx+esi*4],[ebx+ecx*2] і т.п.) з оператором визначення типу (ptr) при необхідності Заміна сегментів Префікси заміни сегментів можуть задаватись тільки явно Машинні команди Sti Dec reg Inc mem Cmp reg,reg Or reg,mem And mem,reg Mov reg,imm Add mem,imm Jnz
Де reg – 8 або 32-розрядні РЗП mem – адреса операнда в пам’яті imm – 8 або 32-розрядні безпосередні дані (константи)
Варіант 19. Ідентифікатори Містять великі і малі букви латинского алфавіту та цифри. Починаються з букви. Великі та малі букви не відрізняються. Довжина ідентифікаторів не більше 8 символів Константи Шістнадцятерічні, десяткові, двійкові та текстові константи Директиви END, SEGMENT - без операндів, ENDS, программа може мати тільки один сегмент кодів і тільки один сегмент даних EQU IF-ELSE-ENDIF DB,DW,DD з одним операндом - константою (строкові константи тільки для DB) Розрядність даних та адрес 32 - розрядні дані та зміщення в сегменті, 16 -розрядні дані та зміщення не використовуються Адресація операндів пам'яті Базова адресація ([eax+5] і т.п.) з оператором визначення типу (ptr) при необхідності. Заміна сегментів Префікси заміни сегментів можуть задаватись тільки явно Машинні команди Cli Inc reg Dec mem Or reg,reg Cmp reg,mem And mem,reg Mov reg,imm Add mem,imm Jnb
Де reg – 8 або 32-розрядні РЗП mem – адреса операнда в пам’яті imm - 8 або 32-розрядні безпосередні дані (константи)
Варіант 20 Ідентифікатори Містять великі і малі букви латинского алфавіту та цифри. Починаються з букви. Великі та малі букви не відрізняються. Довжина ідентифікаторів не більше 8 символів Константи Шістнадцятерічні та текстові константи Директиви END, SEGMENT - без операндів, ENDS, программа може мати тільки один сегмент кодів і тільки один сегмент даних EQU IF-ELSE-ENDIF DB,DW,DD з одним операндом - константою (строкові константи тільки для DB) Розрядність даних та адрес 32 - розрядні дані та зміщення в сегменті, 16 -розрядні дані та зміщення не використовуються Адресація операндів пам'яті Посередня регістрова з множником ([esi*4], [eax*2] і т.п. ), з оператором визначення типу (ptr) при необхідності. Заміна сегментів Префікси заміни сегментів можуть задаватись тільки явно Машинні команди Sti Dec reg Inc mem Cmp reg,reg Or reg,mem And mem,reg Mov reg,imm Add mem,imm Jnz
Де reg – 8 або 32-розрядні РЗП mem – адреса операнда в пам’яті imm – 8 або 32-розрядні безпосередні дані (константи)
Варіант 21. Ідентифікатори Містять великі букви латинского алфавіту та цифри. Починаються з букви. Довжина ідентифікаторів не більше 6 символів Константи Шістнадцятерічні, десяткові, двійкові та текстові константи Директиви END, SEGMENT - без операндів, ENDS, программа може мати тільки один сегмент кодів і тільки один сегмент даних MACRO (без параметрів або з одним параметром) ENDM DB,DW,DD з одним операндом - константою (строкові константи тільки для DB) Розрядність даних та адрес 16- розрядні дані та зміщення в сегменті, 32-розрядні дані та зміщення не використовуються Адресація операндів пам'яті Індексна адресація (Val1[bx],Val1[di] і т.п.) Заміна сегментів Префікси заміни сегментів можуть задаватись явно, а при необхідності автоматично генеруються транслятором
Машинні команди Cbw Not reg Cmp reg,reg Lss reg,mem Sbb mem,reg Bts reg,imm8 Mov mem,imm Jbe
Де reg – 8 або 16-розрядні РЗП mem – адреса операнда в пам’яті imm - 8 або 16-розрядні безпосередні дані (константи)
Варіант 22 Ідентифікатори Містять великі букви латинского алфавіту та цифри. Починаються з букви. Довжина ідентифікаторів не більше 6 символів Константи Шістнадцятерічні та текстові константи Директиви END, SEGMENT - без операндів, ENDS, программа може мати тільки один сегмент кодів і тільки один сегмент даних MACRO (без параметрів або з одним параметром) ENDM DB,DW,DD з одним операндом - константою (строкові константи тільки для DB) Розрядність даних та адрес 16- розрядні дані та зміщення в сегменті, 32-розрядні дані та зміщення не використовуються Адресація операндів пам'яті Індексна адресація (Val1[bx],Val1[di] і т.п.) та пряма адресація Заміна сегментів Префікси заміни сегментів можуть задаватись явно, а при необхідності автоматично генеруються транслятором
Машинні команди Aaa Div mem Cmp reg,reg And reg,mem Or mem,reg Mov reg,imm Add mem,imm Jnz
Де reg – 8 або 16-розрядні РЗП mem – адреса операнда в пам’яті imm – 8 або 16-розрядні безпосередні дані (константи)
Варіант 23. Ідентифікатори Містять великі букви латинского алфавіту та цифри. Починаються з букви. Довжина ідентифікаторів не більше 6 символів Константи Шістнадцятерічні, десяткові, двійкові та текстові константи Директиви END, SEGMENT - без операндів, ENDS, программа може мати тільки один сегмент кодів і тільки один сегмент даних MACRO (без параметрів або з одним параметром) ENDM DB,DW,DD з одним операндом - константою (строкові константи тільки для DB) Розрядність даних та адрес 16- розрядні дані та зміщення в сегменті, 32-розрядні дані та зміщення не використовуються Адресація операндів пам'яті Базова індексна адресація з константним зміщенням ([dx+si+6],[bx+cx+12] і т.п.) з оператором визначення типу (ptr) при необхідності Заміна сегментів Префікси заміни сегментів можуть задаватись тільки явно Машинні команди Cpuid Inc reg Dec mem Add reg,reg Cmp reg,mem And mem,reg Mov reg,imm Or mem,imm Jg
Де reg – 8 або 16 розрядні РЗП mem – адреса операнда в пам’яті imm - 8 або 16-розрядні безпосередні дані (константи)
Варіант 24 Ідентифікатори Містять великі букви латинского алфавіту та цифри. Починаються з букви. Довжина ідентифікаторів не більше 6 символів Константи Шістнадцятерічні та текстові константи Директиви END, SEGMENT - без операндів, ENDS, программа може мати тільки один сегмент кодів і тільки один сегмент даних MACRO (без параметрів або з одним параметром) ENDM DB,DW,DD з одним операндом - константою (строкові константи тільки для DB) Розрядність даних та адрес 16- розрядні дані та зміщення в сегменті, 32-розрядні дані та зміщення не використовуються Адресація операндів пам'яті Базова індексна адресація з константним зміщенням ([bp+si+6],[bx+di+12] і т.п.) з оператором визначення типу (ptr) при необхідності Заміна сегментів Префікси заміни сегментів можуть задаватись тільки явно Машинні команди Das Dec reg Inc mem Cmp reg,reg Or reg,mem And mem,reg Mov reg,imm Add mem,imm Jg
Де reg – 8 або 16розрядні РЗП mem – адреса операнда в пам’яті imm – 8 або 16-розрядні безпосередні дані (константи)
Варіант 25. Ідентифікатори Містять великі букви латинского алфавіту та цифри. Починаються з букви. Довжина ідентифікаторів не більше 6 символів Константи Шістнадцятерічні, десяткові, двійкові та текстові константи Директиви END, SEGMENT - без операндів, ENDS, программа може мати тільки один сегмент кодів і тільки один сегмент даних MACRO (без параметрів або з одним параметром) ENDM DB,DW,DD з одним операндом - константою (строкові константи тільки для DB) Розрядність даних та адрес 16- розрядні дані та зміщення в сегменті, 32 -розрядні дані та зміщення не використовуються Адресація операндів пам'яті Базова індексна адресація із зміщенням по ідентифікатору (Val1[bp+si],Val1[bx+di] Заміна сегментів Префікси заміни сегментів можуть задаватись явно, а при необхідності автоматично генеруються транслятором
Машинні команди Cwde Inc reg Stosmem Add reg,reg Cmp reg,mem And mem,reg Mov reg,imm Or mem,imm Jbe
Де reg – 8 або 16-розрядні РЗП mem – адреса операнда в пам’яті imm - 8 або 16 розрядні безпосередні дані (константи)
Варіант 26 Ідентифікатори Містять великі букви латинского алфавіту та цифри. Починаються з букви. Довжина ідентифікаторів не більше 6 символів Константи Шістнадцятерічні та текстові константи Директиви END, SEGMENT - без операндів, ENDS, программа може мати тільки один сегмент кодів і тільки один сегмент даних MACRO (без параметрів або з одним параметром) ENDM DB,DW,DD з одним операндом - константою (строкові константи тільки для DB) Розрядність даних та адрес 16- розрядні дані та зміщення в сегменті, 32 -розрядні дані та зміщення не використовуються Адресація операндів пам'яті Базова індексна адресація із зміщенням по ідентифікатору (Val1[bp+si],Val1[bx+di]), пряма адресація Заміна сегментів Префікси заміни сегментів можуть задаватись явно, а при необхідності автоматично генеруються транслятором
Машинні команди Das Dec reg Inc mem Cmp reg,reg Or reg,mem And mem,reg Add reg,imm Mov mem,imm Ja
Де reg – 8 або 16-розрядні РЗП mem – адреса операнда в пам’яті imm – 8 або 16-розрядні безпосередні дані (константи)
Варіант 27. Ідентифікатори Містять великі букви латинского алфавіту та цифри. Починаються з букви. Довжина ідентифікаторів не більше 6 символів Константи Шістнадцятерічні, десяткові, двійкові та текстові константи Директиви END, SEGMENT - без операндів, ENDS, программа може мати тільки один сегмент кодів і тільки один сегмент даних MACRO (без параметрів або з одним параметром) ENDM DB,DW,DD з одним операндом - константою (строкові константи тільки для DB) Розрядність даних та адрес 16- розрядні дані та зміщення в сегменті, 32 -розрядні дані та зміщення не використовуються Адресація операндів пам'яті Базова індексна адресація ([bx+si],[bx+] і т.п.) з оператором визначення типу (ptr) при необхідності Заміна сегментів Префікси заміни сегментів можуть задаватись тільки явно Машинні команди Aas Inc reg Dec mem Bt reg,reg And reg,mem Cmp mem,reg Mov reg,imm Or mem,imm Jl
Де reg – 8 або 16-розрядні РЗП mem – адреса операнда в пам’яті imm - 8 або 16-розрядні безпосередні дані (константи)
Варіант 28 Ідентифікатори Містять великі букви латинского алфавіту та цифри. Починаються з букви. Довжина ідентифікаторів не більше 6 символів Константи Шістнадцятерічні та текстові константи Директиви END, SEGMENT - без операндів, ENDS, программа може мати тільки один сегмент кодів і тільки один сегмент даних MACRO (без параметрів або з одним параметром) ENDM DB,DW,DD з одним операндом - константою (строкові константи тільки для DB) Розрядність даних та адрес 16- розрядні дані та зміщення в сегменті, 32 -розрядні дані та зміщення не використовуються Адресація операндів пам'яті Базова індексна адресація ([bx+si],[bx+] і т.п.) з оператором визначення типу (ptr) при необхідності, пряма адресація Заміна сегментів Префікси заміни сегментів можуть задаватись тільки явно Машинні команди Cmpsb Dec reg Inc mem Or reg,reg Cmp reg,mem And mem,reg Mov reg,imm Add mem,imm Jnz
Де reg – 8 або 16-розрядні РЗП mem – адреса операнда в пам’яті imm – 8 або 16-розрядні безпосередні дані (константи)
Варіант 29. Ідентифікатори Містять великі букви латинского алфавіту та цифри. Починаються з букви. Довжина ідентифікаторів не більше 6 символів Константи Шістнадцятерічні, десяткові, двійкові та текстові константи Директиви END, SEGMENT - без операндів, ENDS, программа може мати тільки один сегмент кодів і тільки один сегмент даних MACRO (без параметрів або з одним параметром) ENDM DB,DW,DD з одним операндом - константою (строкові константи тільки для DB) Розрядність даних та адрес 16- розрядні дані та зміщення в сегменті, 32 -розрядні дані та зміщення не використовуються Адресація операндів пам'яті Базова адресація ([si+5] і т.п.) з оператором визначення типу (ptr) при необхідності. Заміна сегментів Префікси заміни сегментів можуть задаватись тільки явно Машинні команди Movsw Inc reg Dec mem Add reg,reg Cmp reg,mem And mem,reg Mov reg,imm Or mem,imm Jge
Де reg – 8 або 16-розрядні РЗП mem – адреса операнда в пам’яті imm - 8 або 16-розрядні безпосередні дані (константи)
Варіант 30 Ідентифікатори Містять великі букви латинского алфавіту та цифри. Починаються з букви. Довжина ідентифікаторів не більше 6 символів Константи Шістнадцятерічні та текстові константи Директиви END, SEGMENT - без операндів, ENDS, программа може мати тільки один сегмент кодів і тільки один сегмент даних MACRO (без параметрів або з одним параметром) ENDM DB,DW,DD з одним операндом - константою (строкові константи тільки для DB) Розрядність даних та адрес 16- розрядні дані та зміщення в сегменті, 32 -розрядні дані та зміщення не використовуються Адресація операндів пам'яті Посередня регістрова ([si], [bx] і т.п. ), з оператором визначення типу (ptr) при необхідності, пряма адресація. Заміна сегментів Префікси заміни сегментів можуть задаватись тільки явно Машинні команди Scasb Inc reg Dec mem Cmp reg,reg Or reg,mem And mem,reg Mov reg,imm Add mem,imm Jb
Де reg – 8 або 16 -розрядні РЗП mem – адреса операнда в пам’яті imm – 8 або 16-розрядні безпосередні дані (константи)
Варіант 31. Ідентифікатори Містять великі і малі букви латинского алфавіту та цифри. Починаються з букви. Великі та малі букви не відрізняються. Довжина ідентифікаторів не більше 8 символів Константи Шістнадцятерічні, десяткові та двійкові константи Директиви END, SEGMENT - без операндів, ENDS, программа може мати тільки один сегмент кодів і тільки один сегмент даних DB,DW,DD з одним операндом - довільний арифметичний вираз над константами Розрядність даних та адрес 32 - розрядні дані та зміщення в сегменті, 16 -розрядні дані та зміщення не використовуються Адресація операндів пам'яті Індексна адресація (Val1[eax],Val1[edi] і т.п.) Заміна сегментів Префікси заміни сегментів можуть задаватись явно, а при необхідності автоматично генеруються транслятором Машинні команди Cli Inc reg Dec mem Add reg,reg Cmp reg,mem And mem,reg Mov reg,imm Or mem,imm Jnb
Де reg – 8 або 32-розрядні РЗП mem – адреса операнда в пам’яті imm - 8 або 32-розрядні безпосередні дані (довільний арифметичний вираз над константами)
Варіант 32 Ідентифікатори Містять великі і малі букви латинского алфавіту та цифри. Починаються з букви. Великі та малі букви не відрізняються. Довжина ідентифікаторів не більше 8 символів Константи Шістнадцятерічні, десяткові та двійкові константи Директиви END, SEGMENT - без операндів, ENDS, программа може мати тільки один сегмент кодів і тільки один сегмент даних DB,DW,DD з одним операндом - довільний арифметичний вираз над константами Розрядність даних та адрес 32 - розрядні дані та зміщення в сегменті, 16 -розрядні дані та зміщення не використовуються Адресація операндів пам'яті Індексна адресація із множником (Val1[eax*2],Val1[edi*4] і т.п.) Заміна сегментів Префікси заміни сегментів можуть задаватись явно, а при необхідності автоматично генеруються транслятором
Машинні команди Sti Dec reg Inc mem Add reg,reg Or reg,mem And mem,reg Mov reg,imm Cmp mem,imm Jnz
Де reg – 8 або 32-розрядні РЗП mem – адреса операнда в пам’яті imm – 8 або 32-розрядні безпосередні дані (довільний арифметичний вираз над константами)
Варіант 33. Ідентифікатори Містять великі і малі букви латинского алфавіту та цифри. Починаються з букви. Великі та малі букви не відрізняються. Довжина ідентифікаторів не більше 8 символів Константи Шістнадцятерічні, десяткові та двійкові константи Директиви END, SEGMENT - без операндів, ENDS, программа може мати тільки один сегмент кодів і тільки один сегмент даних DB,DW,DD з одним операндом - довільний арифметичний вираз над константами Розрядність даних та адрес 32 - розрядні дані та зміщення в сегменті, 16 -розрядні дані та зміщення не використовуються Адресація операндів пам'яті Базова індексна адресація з константним зміщенням ([edx+esi+6],[ebx+ecx+12] і т.п.) з оператором визначення типу (ptr) при необхідності Заміна сегментів Префікси заміни сегментів можуть задаватись тільки явно Машинні команди Cli Inc reg Dec mem Add reg,reg Cmp reg,mem And mem,reg Mov reg,imm Or mem,imm Jbe
Де reg – 8 або 32-розрядні РЗП mem – адреса операнда в пам’яті imm - 8 або 32-розрядні безпосередні дані (довільний арифметичний вираз над константами)
Варіант 34 Ідентифікатори Містять великі і малі букви латинского алфавіту та цифри. Починаються з букви. Великі та малі букви не відрізняються. Довжина ідентифікаторів не більше 8 символів Константи Шістнадцятерічні, десяткові та двійкові константи Директиви END, SEGMENT - без операндів, ENDS, программа може мати тільки один сегмент кодів і тільки один сегмент даних DB,DW,DD з одним операндом - довільний арифметичний вираз над константами Розрядність даних та адрес 32 - розрядні дані та зміщення в сегменті, 16 -розрядні дані та зміщення не використовуються Адресація операндів пам'яті Базова індексна адресація із множником і з константним зміщенням ([edx+esi*4+6],[ebx+ecx*2+12] і т.п.) з оператором визначення типу (ptr) при необхідності Заміна сегментів Префікси заміни сегментів можуть задаватись тільки явно Машинні команди Sti Dec reg Inc mem Cmp reg,reg Mov reg,mem And mem,reg Or reg,imm Add mem,imm Jnz
Де reg – 8 або 32-розрядні РЗП mem – адреса операнда в пам’яті imm – 8 або 32-розрядні безпосередні дані (довільний арифметичний вираз над константами)
Варіант 35. Ідентифікатори Містять великі і малі букви латинского алфавіту та цифри. Починаються з букви. Великі та малі букви не відрізняються. Довжина ідентифікаторів не більше 8 символів Константи Шістнадцятерічні, десяткові та двійкові константи Директиви END, SEGMENT - без операндів, ENDS, программа може мати тільки один сегмент кодів і тільки один сегмент даних DB,DW,DD з одним операндом - довільний арифметичний вираз над константами Розрядність даних та адрес 32 - розрядні дані та зміщення в сегменті, 16 -розрядні дані та зміщення не використовуються Адресація операндів пам'яті Індексна адресація (Val1[eax+edx],Val1[ecx+edi] і т.п.) Заміна сегментів Префікси заміни сегментів можуть задаватись явно, а при необхідності автоматично генеруються транслятором
Машинні команди Cli Inc reg Dec mem Add reg,reg And reg,mem Cmp mem,reg Mov reg,imm Or mem,imm Jb
Де reg – 8 або 32-розрядні РЗП mem – адреса операнда в пам’яті imm - 8 або 32-розрядні безпосередні дані (довільний арифметичний вираз над константами)
Варіант 36 Ідентифікатори Містять великі і малі букви латинского алфавіту та цифри. Починаються з букви. Великі та малі букви не відрізняються. Довжина ідентифікаторів не більше 8 символів Константи Шістнадцятерічні, десяткові та двійкові константи Директиви END, SEGMENT - без операндів, ENDS, программа може мати тільки один сегмент кодів і тільки один сегмент даних DB,DW,DD з одним операндом - довільний арифметичний вираз над константами Розрядність даних та адрес 32 - розрядні дані та зміщення в сегменті, 16 -розрядні дані та зміщення не використовуються Адресація операндів пам'яті Індексна адресація із множником (Val1[ecx+eax*2],Val1[edx+edi*4] і т.п.) Заміна сегментів Префікси заміни сегментів можуть задаватись явно, а при необхідності автоматично генеруються транслятором
Машинні команди Sti Dec reg Inc mem Cmp reg,reg Mov reg,mem And mem,reg Or reg,imm Add mem,imm Jnz
Де reg – 8 або 32-розрядні РЗП mem – адреса операнда в пам’яті imm – 8 або 32-розрядні безпосередні дані (довільний арифметичний вираз над константами)
Варіант 37. Ідентифікатори Містять великі і малі букви латинского алфавіту та цифри. Починаються з букви. Великі та малі букви не відрізняються. Довжина ідентифікаторів не більше 8 символів Константи Шістнадцятерічні, десяткові та двійкові константи Директиви END, SEGMENT - без операндів, ENDS, программа може мати тільки один сегмент кодів і тільки один сегмент даних DB,DW,DD з одним операндом - довільний арифметичний вираз над константами Розрядність даних та адрес 32 - розрядні дані та зміщення в сегменті, 16 -розрядні дані та зміщення не використовуються Адресація операндів пам'яті Базова індексна адресація ([edx+esi],[ebx+ecx] і т.п.) з оператором визначення типу (ptr) при необхідності Заміна сегментів Префікси заміни сегментів можуть задаватись тільки явно Машинні команди Cli Inc reg Dec mem Cmp reg,reg Add reg,mem And mem,reg Mov reg,imm Or mem,imm Jnbe
Де reg – 8 або 32-розрядні РЗП mem – адреса операнда в пам’яті imm - 8 або 32-розрядні безпосередні дані (довільний арифметичний вираз над константами)
Варіант 38 Ідентифікатори Містять великі і малі букви латинского алфавіту та цифри. Починаються з букви. Великі та малі букви не відрізняються. Довжина ідентифікаторів не більше 8 символів Константи Шістнадцятерічні, десяткові та двійкові константи Директиви END, SEGMENT - без операндів, ENDS, программа може мати тільки один сегмент кодів і тільки один сегмент даних DB,DW,DD з одним операндом - довільний арифметичний вираз над константами Розрядність даних та адрес 32 - розрядні дані та зміщення в сегменті, 16 -розрядні дані та зміщення не використовуються Адресація операндів пам'яті Базова індексна адресація із множником ([edx+esi*4],[ebx+ecx*2] і т.п.) з оператором визначення типу (ptr) при необхідності Заміна сегментів Префікси заміни сегментів можуть задаватись тільки явно Машинні команди Sti Dec reg Inc mem Cmp reg,reg Or reg,mem And mem,reg Mov reg,imm Add mem,imm Jz
Де reg – 8 або 32-розрядні РЗП mem – адреса операнда в пам’яті imm – 8 або 32-розрядні безпосередні дані (довільний арифметичний вираз над константами)
Варіант 39. Ідентифікатори Містять великі і малі букви латинского алфавіту та цифри. Починаються з букви. Великі та малі букви не відрізняються. Довжина ідентифікаторів не більше 8 символів Константи Шістнадцятерічні, десяткові та двійкові константи Директиви END, SEGMENT - без операндів, ENDS, программа може мати тільки один сегмент кодів і тільки один сегмент даних DB,DW,DD з одним операндом - довільний арифметичний вираз над константами Розрядність даних та адрес 32 - розрядні дані та зміщення в сегменті, 16 -розрядні дані та зміщення не використовуються Адресація операндів пам'яті Базова адресація ([eax+5] і т.п.) з оператором визначення типу (ptr) при необхідності. Заміна сегментів Префікси заміни сегментів можуть задаватись тільки явно Машинні команди Cli Inc reg Dec mem Add reg,reg Cmp reg,mem And mem,reg Mov reg,imm Or mem,imm Jnbe
Де reg – 8 або 32-розрядні РЗП mem – адреса операнда в пам’яті imm - 8 або 32-розрядні безпосередні дані (довільний арифметичний вираз над константами)
КомментарииКомментариев пока нет Пожалуйста, авторизуйтесь, чтобы оставить комментарий. |