Студопедия
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Секція заголовка

Читайте также:
  1. A) Плавно или с помощью кнопок- строки заголовка.
  2. Допустимо ставить только по одному пробелу между паспортами и заголовками, заголовком и текстом, последним паспортом и итоговым отчетом, куплетами песен.
  3. Параметры заголовка
  4. Секция заголовка
  5. Строка заголовка
  6. Требования к заголовкам

; Опис спеціальних регістрів

STATUS EQU 03H

; Опис регістрів пам'яті даних і змінних

START EQU 0CH; 8 старших розрядів

; початкового числа

ENDSTART EQU 0DH; Ділене (2 молодших розряди

; початкового числа)

TEN EQU 0EH; Дільник

REZ EQU 0FH; Змінна для зберігання

; результату перетворення (3-ї

; декади – сотні) і проміжних

; результатів ділення

TIME EQU 10H; Змінна для завдання кількості

; операцій віднімання

DEC1 EQU 11H; Змінна для зберігання першої

; декади 2/10 числа (одиниці)

DEC2 EQU 12H; Змінна для зберігання другої

; декади 2/10 числа (десятки)

; Опис бітів регістра STATUS

C EQU 0H; Прапорець переносу/позики

Робоча секція

; Початок коду, що виконується

ORG 0

GOTO BEGIN

ORG 100

BEGIN

; Початок першого кроку ділення

CLRW; Очистити регістр W

MOVLW B'0000 0010’; Запис константи в лічильник

MOVWF TIME; кількості віднімань

CALL DIV10; Виклик процедури ділення на 10

RLF START, 1; Зрушення діленого на два

RLF START, 1; розряди ліворуч

MOVLW ENDSTART; Завантажити молодші

; розряди діленого в регістр W

ADDWF START; Завантажити 9-й і 10-й

; біти початкового числа

; в молодші розряди регістра START

; Закінчення першого кроку ділення

MOVLF B'0000 0100’

MOVWF TIME

CALL DIV10

MOVLF START; Збереження молодшої декади

MOVLW DEC1; 2/10 числа в регістрі DEC1

MOVLW REZ; Частку від ділення на 1-му

MOVWF START; кроці завантажити в START

CLRF REZ; Очистити регістр REZ

; Початок другого кроку ділення

MOVLW B'0000 0100’

MOVWF TIME

CALL DIV10

DIV10; Процедура ділення на 10

FIRST

SUBWF START

BTFSC STATUS, C; Перевірка прапорця переносу

GOTO NOTFLAG1; Якщо С = 0, то перехід по мітці

ADDWF START; Відновлення START

BCF STATUS, 0; Очистити прапорець переносу

RLF REZ, 1; Зрушення ліворуч частки

RRF TEN, 1; Зрушення праворуч дільника

GOTO NOTFLAG

NOTFLAG1 RRF TEN, 1; Зрушення праворуч дільника

MOVLW TEN; Завантажити дільник в W

NOTFLAG DECFSZ TIME, 1; Декремент TIME, пропустити

; команду, якщо 0 (якщо регістр

; TIME онулився)

GOTO FIRST

RETURN; Кінець процедури DIV10

END

 

Зворотне перетворення (з двійково-десяткового коду в двійковий) здійснюється діленням початкового числа на 16 за правилами десяткової арифметики.

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

 




Дата добавления: 2014-12-18; просмотров: 178 | Поможем написать вашу работу | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2026 год. (0.115 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав