DevioLabавтоматичне керування капіталом
ПРАЦЮЄ 24/7
КРИПТОВАЛЮТИ · АКЦІЇ · 10 БІРЖ

Портфель, який керується автоматично

DevioLab підбирає стратегії, відстежує ринки та автоматизує купівлю і продаж активів. Кількість доступних криптовалют, акцій і торгових можливостей зростає щодня.

10підключених біржCrypto + Stocksв одному портфелі24/7автоматичний контроль

Лабораторна робота №3 з курсу «Засоби системного програмування»: Дослідження способів представлення даних в пам’яті комп’ютера з архітектурою x86

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Інститут комп’ютерних наук та інформаційних технологій
Факультет:
Комп’ютерні науки
Кафедра:
Кафедра електронних обчислювальних машин

Інформація про роботу

Рік:
2012
Тип роботи:
Лабораторна робота
Предмет:
Засоби системного програмування
Група:
КІ-25
Коротко про документ

Про що ця робота

У лабораторній роботі досліджено способи представлення числових та символьних даних у пам'яті комп'ютера з архітектурою x86. Вивчено базові директиви асемблера для визначення даних і проаналізовано лістинг програми.

У роботі розглядаються

  • Архітектура x86
  • Мова асемблера
  • Представлення даних у пам'яті
  • Директиви визначення даних
  • Числові константи
  • Сивольні рядки
  • Стандарт IEEE 754
  • Сегментація пам'яті

Зміст і розділи

  1. Визначення даних в мові assembler
  2. Символьні рядки
  3. Числові константи
  4. Мета
  5. Лістинг програми
  6. Дамп пам'яті
Для кого:Студенти технічних спеціальностей вищих навчальних закладів, які вивчають системне програмування та архітектуру комп'ютерів.
Викладачі:Не вказано

Ключові поняття

директива dbдиректива dwдиректива ddдиректива dqдиректива dtсегмент данихархітектура x86дамп пам'ятіоперандсивольний рядокчислова константа

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ ЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА” Кафедра ЕОМ / Лабораторна робота №3 з курсу ”Засоби системного програмування” Дослідження способів представлення даних в пам’яті комп’ютера з архітектурою х86. Львів – 2012 Визначення даних в мові Assembler. Асемблер допускає два основні методи визначення даних: через вказування довжини даних та за їх значенням. В першому випадку використовуються директиви визначення даних, а у другому безпосереднє значення або директива EQU. Розглянемо основний формат визначення даних: [ім’я] Dn вираз - Ім’я елемента даних не є обов’язковим але якщо в програмі є посилання на деякий елемент, те це робиться за допомогою імені. - Для визначення елементів даних є наступні директиви: DB (байт) DW (слово – 2 байти) DD (подвійне слово – 4 байти), DQ (8 байт) DT (10 байт). Вираз може містити константу, наприклад: FLD1 DB 25, або знак питання для невизначеного значення, наприклад: FLDB DB ? Вираз може містити кілька констант, розділених комами й обмеженими тільки довжиною рядка: FLD3 DB 11, 12, 13, 14, 15, 16, ... Асемблер визначає ці константи у вигляді послідовності сусідніх байт. Звертання за FLD3 вказує на першу константу 11, за FLD3+1 - на другу 12. (FLD3 можна представити як FLD3+0). Наприклад команда MOV AL,FLD3+3 завантажує в регістр AL значення 14 (0Eh). Вираз допускає також повторення константи в наступному форматі: [ім’я] Dn кількість повторень DUP (вираз) ... Символьні рядки Символьний рядок використаються для опису даних, таких як, наприклад, імена людей або заголовки сторінок. Вміст рядка виділяється одинарними лапками, наприклад, ‘PC’ або подвійними лапками - "PC". Асемблер переводить символьні рядки в об’єктний код у звичайному форматі ASCII. Символьний рядок визначається тільки директивою DB, в якій вказується більше двох символів у нормальній послідовності зліва направо. Отже, директива DB є єдиним можливим форматом для визначення символьних даних. Числові константи Числові константи використаються для арифметичних величин і для aдрес пам’яті. Для опису константи лапки не ставляться. Асемблер перетворить всі числові константи в шістнадцятковий формат і записує байти в об’єктному коді в зворотної послідовності - справа наліво. Десятковий формат. Десятковий формат допускає десяткові цифри від 0 до 9 і позначається останньою буквою D, що можна не вказувати, наприклад, 125 або 125D. Незважаючи на те, що асемблер дозволяє кодування в десятковому форматі, він перетворить ці значення в шістнадцятковий об’єктний код. Наприклад, десяткове число 125 перетвориться в. 7Dh. Шістнадцятковий формат. Шістнадцятковий формат допускає шістнадцяткові цифри від 0 до F і позначається останньою буквою H. Оскільки асемблер думає, що з букви починаються ідентифікатори, те першою цифрою шістнадцяткової константи повинна бути цифра від 0 до 9. Наприклад, 2EH або 0FFFH, які асемблер перетворить відповідно в 2E і FF0F (байти в другому прикладі записуються в об’єктний код у зворотній послідовності). Двійковий формат. Двійковий формат допускає двійкові цифри 0 і 1 і позначається останньою буквою B. Двійковий формат звичайно використається для більше чіткого подання бітових значень у логічних командах AND, OR, XOR і TEST. Десяткове 12, шістнадцяткове C і двійкове 1100B усі генерують один і той же код: Вісімковий формат. Вісімковий формат допускає вісімкові цифри від 0 до 7 і позначається останньою буквою Q або O, наприклад, 253Q. Формат з рухомою комою. Числові константи з рухомою комою задаються у форматі ціла_частина.дробова_частина Е степінь. Де Е – основа системи лічби (10). Стандарт IEEE 754-2008 визначає кілька форматів представлень чисел з рухомою комою. Дослідження способів представлення даних в пам’яті комп’ютера з архітектурою х86. Мета: вивчити способи задання констант та змінних в Асемблері, набути навики інтерпретування даних в пам’яті комп’ютера з архітектурою х86. Лістинг програми DATA SEGMENT WORD 'DATA' HelloMessage db '[ім’я автора приховано]',13,10,'$' A dd 0457Q,054fch, 710 B dq 0fa1h,054bbh C dd 761h DATA ENDS DATA1 SEGMENT PARA 'DATA' LBL LABEL BYTE D dt 3.14e8 E dt 101b F dq 76453BBCCAADh K dd 4569600Fh DATA1 ENDS CODE SEGMENT PARA 'CODE' ASSUME cs:CODE, ds:DATA ProgramStart: push ds ;initialize stack segment sub ax,ax ;initialize stack segment push ax ;initialize stack segment mov ax,Data ;initialize data segment mov ds,ax ;initialize data segment mov ax,k mov ah,09 ;display message mov dx,OFFSET HelloMessage int 21h mov ah,4Ch ;DOS terminate program function int 21h ;end of the program CODE ENDS END ProgramStart Дамп пам’яті відображено на рис.1, де Оранжевим кольором відображена перша змінна (операнд), червоним – друга, жовтим – третя, розовим – четверта для кожного з сегментів. Константа К не заноситься в пам’ять а заміняється числом, що їй відповідає. / В даній лабораторній роботі я засвоїв та навчився представляти дані в комп’ютері з архітектурою х86.Також я вивчив основні директиви для представлення данних.
Допоможи студентському архіву

Ми допомогли тобі — допоможи наступному студенту

Файл ще не обрано

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!