ПЕРЕЛІК ДИСЦИПЛІН:
  • Адміністративне право
  • Арбітражний процес
  • Архітектура
  • Астрологія
  • Астрономія
  • Банківська справа
  • Безпека життєдіяльності
  • Біографії
  • Біологія
  • Біологія і хімія
  • Ботаніка та сільське гос-во
  • Бухгалтерський облік і аудит
  • Валютні відносини
  • Ветеринарія
  • Військова кафедра
  • Географія
  • Геодезія
  • Геологія
  • Етика
  • Держава і право
  • Цивільне право і процес
  • Діловодство
  • Гроші та кредит
  • Природничі науки
  • Журналістика
  • Екологія
  • Видавнича справа та поліграфія
  • Інвестиції
  • Іноземна мова
  • Інформатика
  • Інформатика, програмування
  • Юрист по наследству
  • Історичні особистості
  • Історія
  • Історія техніки
  • Кибернетика
  • Комунікації і зв'язок
  • Комп'ютерні науки
  • Косметологія
  • Короткий зміст творів
  • Криміналістика
  • Кримінологія
  • Криптология
  • Кулінарія
  • Культура і мистецтво
  • Культурологія
  • Російська література
  • Література і російська мова
  • Логіка
  • Логістика
  • Маркетинг
  • Математика
  • Медицина, здоров'я
  • Медичні науки
  • Міжнародне публічне право
  • Міжнародне приватне право
  • Міжнародні відносини
  • Менеджмент
  • Металургія
  • Москвоведение
  • Мовознавство
  • Музика
  • Муніципальне право
  • Податки, оподаткування
  •  
    Бесплатные рефераты
     

     

     

     

     

     

         
     
    Програма перекладу десяткового числа в двійкову і шістнадцяткову системи числення
         

     

    Інформатика, програмування

    Зміст

    1. Введення
    2. Загальні відомості про мову асемблер
    3. Програмна частина

    V Опис програми

    V Етапи розробки асемблерних програм ___

    V Програма перекладу десяткового числа в двійкову і шістнадцяткову системи числення

    4. Список літератури

    Введення

    Засоби, що забезпечують функціонування обчислювальної технікипідрозділяються на 2 частини: апаратну і програмну.

    До складу апаратної частини входять такі пристрої як:

    . центральний процесор;

    . оперативна пам'ять;

    . периферійні пристрої;

    Всі перераховані вище пристрої побудовані на інтегральних схемах
    (ІС).

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

    Прикладом ІС є схеми цифрових пристроїв: регістри, суматори,полусумматори, лічильники, шифратори, дешифратори і т.д.

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

    Програма - закінчена послідовність машинних команд абооператорів мови програмування, що визначає послідовність дійдля вирішення деякої задачі.

    Завданням в нашій роботі є: перетворення трехразрядногодесяткового числа в двійкову і шістнадцяткову системи числення. Завданняця реалізується за допомогою мови асемблера. У цьому низькорівневою мовоювикористовуються символічні (мнемонічні) позначення машинних команд іадрес. Перевагою цієї мови є: по-перше, те що,програми, написані на ньому, вимагають значно меншого обсягу пам'яті;по-друге, знання цієї мови і результуючого машинного коду даєподання архітектури машини, що навряд чи забезпечується при роботі намовою програмування високого рівня.

    Загальні відомості про мову асемблера

    Символічна мова асемблера дозволяє в значній міріусунути недоліки програмування на машинній мові.

    Головним його перевагою є те, що на мові асемблера всеелементи програми представлені у символічній формі. Перетвореннясимволічних імен команд в їх двійкові коди покладаються на спеціальнупрограму - асемблер, яка звільняє програміста від трудомісткоюроботи і виключає неминучі при цьому помилки.

    Символічні імена, що вводяться при програмуванні на мовіасемблера, як правило відображають семантику програми, а абревіатура команд
    - Їхню основну функцію. Наприклад: PARAM - параметр, TABLE - таблиця, MASK --маска, ADD - додавання, SUB - віднімання і т.д. п. Такі імена легкозапам'ятовуються програмістом.

    Для програмування мовою асемблера необхідно мати складніінструментальні засоби, ніж при програмуванні на машинному мовою:потрібні обчислювальні комплекси на базі мікро - ЕОМ або ПЕОМ з комплектомпериферійних пристроїв (алфавітно-цифрова клавіатура, символьний дисплей,
    НГМД і друкуючий пристрій), а також резидентні або крос-системипрограмування для необхідних типів мікропроцесорів. Мова асемблерадозволяє ефективно писати і налагоджувати значно складнішіпрограми, чим машинний мова (до 1 - 4 Кбайт).

    Мови асемблера є машинно-орієнтованими, тобто залежнимивід машинної мови і структури відповідного мікропроцесора, так як вних кожній команді мікропроцесора присвоюється певне символічнеім'я.

    Мови асемблера забезпечують істотне підвищенняпродуктивності праці програмістів в порівнянні з машинними мовами і втой же час зберігають можливість використовувати всі програмно-доступніапаратні ресурси мікропроцесора. Це дає можливість кваліфікованимпрограмістам складати програми, які виконуються за більш короткий час ізаймають менший об'єм пам'яті в порівнянні з програмами, які створюються намовою високого рівня.

    У зв'язку з цим практично всі програми керування пристроямивведення/виводу (драйвери) пишуться на мові асемблера не дивлячись на наявністьдосить великої номенклатури мов високого рівня.

    За допомогою мови асемблера програміст може задати наступніпараметри: мнемоніки (символічне ім'я) кожної команди машинної мовимікропроцесора; стандартний формат для рядків програми, описуваної на асемблері; формат для зазначення різних способів адресації і варіантів команд; формат для вказівки символьних констант і констант цілочисельноготипу в різних системах числення; псевдокоманди, що керують процесом ассемблірованія (трансляції)програми.

    На мовою асемблера програма записується порядково, тобто длякожної команди відводиться один рядок.

    Для мікро - ЕОМ, побудованих на базі найбільш поширених типівмікропроцесорів, може існувати кілька варіантів мови асемблера,проте практичне поширення зазвичай має один - це так званийстандартну мову асемблера. Надалі ми будемо розглядати саместандартні мови асемблера.

    Кожен рядок написаної мовою асемблера програми міститьчотири поля:

    МЕТКА КОД Операнд КОМЕНТАР

    Поле МЕТКА не є обов'язковим, воно позначає адресу тієї коміркипам'яті, в якій розміщений перший байт зазначеної команди. Міткивикористовуються як адрес переходу команд передачі управління, ізавдяки їх наявності програміст може не оперувати абсолютними адресами,а використовувати символічні адреси, що значно зручніше. Мітка можемати довжину від одного до шести символів, перша з яких повинна бутибуква. У багатьох асемблерах допускається використання позначок будь-якої довжини,але розпізнаються тільки перші шість символів. Мітка не повинна міститипропусків і знаків пунктуації. У деяких асемблерах за останнім символоммітки має слідувати двокрапка.

    У полі мітки кожна мітка повинна бути визначена тільки один раз, алепосилань до неї можна використовувати стільки разів, скільки це необхідно. УІнакше асемблер видасть діагностичне повідомлення про багаторазовопевної мітці.

    Поле КОД містить символічне ім'я виконуваної команди абопсевдокоманди. Мнемоніка більшості команд є абревіатуроюпропозицій англійською мовою, що характеризують їх основну функцію.

    Наприклад:

    MOV (MOVE)-передати, переслати

    ADD (ADDITION)-складання

    SUB (SUBSTRACT)-віднімання

    LDA (LOAD DIRECT

    ACCUMULATOR)-безпосередня завантаження

    INR (INSCREMENT акумулятора

    REGISTER)-інкремент регістра

    DCR (DECREMENT

    REGISTER) декремент регістра

    Мнемоніка команд є ключовими словами асемблера, і якщо вони невходять в безліч допустимих мнемонік, то асемблер видає повідомлення пронедійсною команді.

    Поле Операнд визначається звичайно в залежності від поля коду команди.
    Воно може містити або одна, або декілька операндів, розділенихзапитом, або не містити жодного операнда для тих команд, якіоперують внутрішніми робочими регістрами.

    Операнд являє собою вираз, що містить мнемонічнепозначення, константи й оператори.

    Найпростіші операнди містять одне мнемонічне позначення або однуконстанту.

    Як мнемонічне позначення можуть використовуватисяідентифікатори внутрішніх робочих регістрів, мітки і поточне значенняпрограмного лічильника.

    Константи можуть бути представлені в різних системах числення.

    Програмна частина

    Опис програми
    У цій роботі ми розглянемо один із способів перекладу числа з десятковоїсистеми числення в двійкову і шістнадцяткову за допомогою мови
    Асемблера. Перш ніж створювати програму, детально розглянемо, які крокидля цього треба зробити, тобто іншими словами напишемо алгоритмрішення нашої задачі. Для того, щоб комп'ютер міг обробляти дані, цідані йому треба ввести, а значить першим кроком у вирішенні нашої задачі будевведення числа. Другим кроком у роботі буде виведення повідомлення про введення числі.
    Після цього ми переводимо десяткове число в двійкову систему і виводимо нашечисло в двійковому еквіваленті на екран. Наступним кроком буде переведення числав шістнадцятковий еквівалент і останній крок це цикл який дозволяєпродовжити введення нового десяткового числа. Тепер зберемо всі пункти разом:

    1. Введення числа з клавіатури.

    2. Висновок повідомлення про введення числі.

    3. Переклад числа в двійковий еквівалент.

    4. Виведення на екран двійкового числа.

    5. Переклад числа в шістнадцяткову систему.

    6. Виведення на екран шістнадцятирічного числа.

    7. Цикл (продовжимо?) Якщо ТАК то пункт 1, інакше пункт 8

    8. Вихід з програми.
    Це і є алгоритм програми природною мовою.

    етапи розробки асемблерних програм

    1. Постановка завдання. Включає Змістовні опис завдання І

    Розробка алгоритму.
    2. Розробка тексту програм.
    3. Введення тексту в комп'ютер. Текст програми в мнемокодах вводиться в ЕОМ за допомогою будь-якого текстового редактора. Так само при цьому створює ся текстовий

    Файл з розширенням *. ASM.
    4. Компіляція або ассемблірованіе. Здійснюється перетворення текстового

    файлу з розширенням *. ASM в об'єктний Файл, що містить програму в машинному коді з розширенням *. OBJ. Так само на цьому етапі може бути створений лістинг програми. Файл з розширенням *. LST, в якому міститься основна інформація про програму, а так само Файл перехресних посилань з розширенням *. CRF. На цьому етапі відбувається проварка тексту програм на наявність помилок. Ассемблірованіе здійснюється за допомогою програми транслятора TASM.EXE (ASM.EXE - в асемблері, MASM.EXE - в макроассемблере). TASM [опції] *. ASM [,,] - команда для виконання трансляції. Якщо в команді вказана одна кома, то Файл лістингу

    Формується. У TASM є дві опції:/ZI і/N. Вони викликаються: ТАSМ.
    5. Компонування. На цьому етапі створюється переміщувана програма здатна завантажуватися а будь-яку область пам'яті. Зберігається у файлі з розширенням

    *. ЕХЕ або *. СОМ. Для цього використовується TLINK.exe (для макроассемблера

    LINK.EXE). Є опції:/Т і/X.
    6. Виконання та налагодження (DEBUG).
    7. Занесення машинного коду програми в ПЗУ (може бути відсутнім) Тепер ми подивимося блок-схему нашої програми, тобто впорядковані дії.

    ; ПРОГРАМА ПЕРЕКЛАДУ Десяткове число В; двійкову й Шістнадцяткове
    СИСТЕМИ; числення
    . MODEL small
    . STACK 64
    . DATA
    ; Сегмент даних
    ;____________________________________________________________________< br>; Таблиця перетворення "цифра - ASCII-код" org 100h tabl_ascii db '0123456789abcdef '
    ;____________________________________________________________________< br>; Таблиця перетворення "ASCII-код - цифра" org 130h db 0,1,2,3,4,5,6,7,8,9 org 41h db 0ah, 0bh, 0ch, 0dh, 0eh, 0fh
    ;____________________________________________________________________< br>; Резервація і ініціалізація змінних в пам'яті org 150h x_ascii db 20h dup (?) T1 db 0dh, 0ah, "Введіть число і натисніть Enter" db 0dh, 0ah, "$" t2 db 0dh, 0ah, "Ви ввели число", 0dh , 0ah "$" t3 db 0dh, 0ah, "В двійковій системі воновиглядає так "db 0dh, 0ah," $ "t4 db 0dh, 0ah," В шістнадцятковій так "db 0dh, 0ah," $ "buf db 16 dup (?),"$" t5 db 0dh, 0ah," Будемо продовжувати процес?
    (Y/N)? "Db 0dh, 0ah ,"$"< br>;____________________________________________________________________


    ; Сегмент кодів
    . CODE
    ; Головна процедура g_k proc mov ax, @ data mov ds, ax mov es, ax d: lea dx, t1 mov ah, 09h int 21h lea di, x_ascii call ink call des_2 push ax lea dx, t3 mov ah, 9h int 21h pop ax call bin_dis push ax lea dx, t4 mov ah, 9h int 21h pop ax call outhex lea dx, t5 mov ah, 9h int 21h mov ah, 1h int 21h cmp al, "Y" loope d cmp al, "y" loop d mov ah, 4ch int 21h g_k endp ink proc

    ; Процедура введення десяткового числа xor cx, cx l1: mov ah, 1 int 21h stosb inc cx cmp al, 0dh jnz l1 dec cx ret ink endp dis proc

    ; Процедура виводу на екран десяткового числа r1: mov dl, [di] mov ah, 2 int 21h inc di loop r1 ret dis endp des_2 proc

    ; Переклад числа ( десяткового) в двійкову систему mov si, 10 lea di, x_ascii sub ax, ax v1: mul si mov bp, ax mov al, [di] sub al, 48 inc di mov ah, ch add ax, bp loop v1 ret des_2 endp bin_dis proc

    ; Процедура виводу на екран двійкового числа lea di, buf mov cx, 16 mov bx, ax mov dx, axconv: mov al, ch shl dx, 1 adc al, '0 'stosb loop conv mov ah, 9h lea dx, buf int 21h mov ax, bx ret bin_dis endp

    ; Процедура перекладу числа (довічного) в шістнадцяткову
    ; і виведення його на екранouthex: mov ch, al mov al, ah mov ah, 2 call prnbh mov al, chprnbh: mov dh, al shr al, 1 shr al, 1 shr al, 1 shr al, 1 call prnd mov al, dh and al, 15prnd: or al, 48 cmp al, 58 jc prnc add al, 7prnc: mov dl, al int 33 ret

    end g_k

    Примітки:
    Нижче пріведіни команди використовувалися в програмі: sub - двійкове віднімання. Віднімається з перших операнда вміст другого операнда

    Мнемоніка: sub,call - виклик процедури. Передає управління процедурою адресу якої задано операндом, після завершення процедури, виконання триває командою наступного за командою call

    Мнемоніка: call ret - повернення до процедуриshr - зрушити логічно вправоxor - виключає АБО

    Мнемоніка: xor,lea - завантажити ЕА

    Мнемоніка: lea reg,push - включити до stack

    Мнемоніка: push pop - витягти з stack

    Мнемоніка: pop mov - переслати

    Мнемоніка: mov,inc - збільшення на 1

    Мнемоніка: inc dec - зменшення на 1

    Мнемоніка: dec stosb - пересилає з'єднання регістра al або ax на який вказуєрегістр diloop - команда організації циклу з лічильником, також короткі переходи

    (127б) команда зменшує значення лічильника cx, без зміни будь-яких прапорів, якщо з'єднання cx> 0, то здійснюється перехід на задану позначку, в іншому випадку цикл завершується.

    Мнемоніка: loop
    . CODE - відкриває сегмент коду
    . DATA - відкриває сегмент даних
    . STACK N - визначає сегмент stack (а); деректіви закриття сегментів в цьому випадку не використовуються; N - показує розмір stack (a) в байтах
    Примітка: при використанні таких деректів регістр ds ініціалізуєтьсянаступним чином: mov ax, @ data mov ds, axassume в цьому випадку не використовується

    Список літератури


    1. "Я зик асемблера для IBM PC і програмування" Вища школа 1992.
    2. "Персональний комп'ютер Фірми IBM і операційна система MS-DOS" Радіо і зв'язок 1991.
    3. Ілюшечкін В.Н., Костін А.Е, Хохлов М.М. "Системне програмне забезпечення", М., "Вища школа", 1987 р.
    4. Нортон П., Соухе Д. "Мова асемблера для IBM PC", М., Видавництво

    "Комп'ютер", 1993


         
     
         
    Реферат Банк
     
    Рефераты
     
    Бесплатные рефераты
     

     

     

     

     

     

     

     
     
     
      Все права защищены. Reff.net.ua - українські реферати ! DMCA.com Protection Status