Термінова допомога студентам
Дипломи, курсові, реферати, контрольні...

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

РефератДопомога в написанніДізнатися вартістьмоєї роботи

ПРОГРАММА ПЕРЕКЛАДУ ДЕСЯТКОВОГО ЧИСЛА У ;ДВІЙКОВУ І ШЕСТНАДЦАТЕРИЧНУЮ СИСТЕМИ ;ЧИСЛЕННЯ .MODEL small. STACK 64 .DATA ;Сегмент даних ;_ ;Таблиця перетворення «цифра — ASCII-код» org 100h tabl_ascii db «12 345 6789abcdef » ;_ ;Таблиця перетворення «ASCII-код — цифра» org 130h db 0,1,2,3,4,5,6,7,8,9 org 41h db 0ah, 0bh, 0ch, 0dh, 0eh, 0fh ;_ ;Резервація і ініціалізація змінних у пам’яті org 150h… Читати ще >

Програма перекладу десяткового вересня двійкову і шестнадцатеричную системи счисления (реферат, курсова, диплом, контрольна)

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 ;Сегмент даних ;____________________________________________________________________ ;Таблиця перетворення «цифра — ASCII-код» org 100h tabl_ascii db «12 345 6789abcdef » ;____________________________________________________________________ ;Таблиця перетворення «ASCII-код — цифра» org 130h db 0,1,2,3,4,5,6,7,8,9 org 41h db 0ah, 0bh, 0ch, 0dh, 0eh, 0fh ;____________________________________________________________________ ;Резервація і ініціалізація змінних у пам’яті 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, «$ » ;____________________________________________________________________.

;Сегмент кодів .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 des2 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 des2 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 des2 endp bin_dis proc.

;Процедура виведення екран двоичного числа lea di, buf mov cx, 16 mov bx, ax mov dx, ax conv: 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, ch prnbh: mov dh, al shr al, 1 shr al, 1 shr al, 1 shr al, 1 call prnd mov al, dh and al, 15 prnd: or al, 48 cmp al, 58 jc prnc add al, 7 prnc: 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 яку підказує регістр di loop — команда організації циклу зі лічильником, також короткі переходы.

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

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

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

«Компьютер», 1993.

Показати весь текст
Заповнити форму поточною роботою