Определение возраста человека на PICassembler
Министерство
образования и науки Украины
Житомирский
государственный технологический университет
ЛАБОРАТОРНАЯ РАБОТА
Определение возраста человека на
PICassembler
Кафедра ПОВТ
Группа ПИ-40
ФИКТ
Выполнил
Проверил
Житомир
Содержание
1. Задание
. Разработка программы
.1 Выбор методов решения
данной задачи
.2 Разработка алгоритма
. Распределение регистров
. Тестирование программы
. Листинг программы
Вывод
1.
Задание
На языке PICAssembler написать программу, которая подсчитывает количество
прожитых дней.
2. Разработка
программы
2.1 Выбор
методов решение данной задачи
В данной задаче используются 2 даты, по этому для их записи будем
использовать правила записи дат: дд.мм.гггг. В данной программе исходными
данными являются даты D1 и D2, которые задаются в двоично-десятичном коде. По
этому для их записи выделяем 1 байт для дней, 1 байт для месяцев и 2 байта для
года. Для поиска количества прожитых дней сначала обе даты переведем в
количество дней, потом найдем разницу между этими количествами - это и будет
количество прожитых дней. Для подсчета данной функции разработаем процедуры
сложения, вычитания, умножение, деления, умножения и деления на 4.
Проект программы включает файлы: Проект:
· Init.inc - в данном файле оглашаются все регистры и биты, которые
используются в программе;
· Clrreg.inc - в данном файле описывается процедура очистки памяти;
· Baseprog.inc - в данном файле описаны основные процедуры,
которые используются в программе;
· DateWork.inc - в данном файле описаны процедуры, которые
используются для переведения дат в количество дней;
· Addition.inc - в данном файле описаны процедуры сложения;
· Deduct.inc - в данном файле описаны процедуры вычитания;
· Increase.inc - в данном файле описана процедура умножения;
· HMDL.asm-это главный файл, который объединяет все функции в одно целое;
· Input.sti - отладочный файл для введения данных.
Данную программу будем разрабатывать для микроконтроллера 16F84.
2.2 Разработка
алгоритма
3.
Распределение регистров
Распределение регистров указано на рис. 1
Рис. 1
· 10h-13h-в начале программы заносится I дата (в
прямом коде);
· 20h-23h-на - в начале программы
заносится II дата (в прямом коде);
· 14h-16h-используется для сохранения
промежуточных данных при переводе I даты в количество дней и сохранения
количества дней в I дате; 24h-26h - используется для
сохранения промежуточных данных при переводе I даты в количество дней и
сохранения количества дней в II
дате;
· 3Ch-47h - используется для сохранения
количества дней в разных месяцах, что необходимо для корректного перевода дат в
количество дней;
· 0Сh-0Fh-вспомогательные регистры;
· 18h-1Ah, - 28h-2Ah,
38h-3Ah, 48h-4Ah, - используются
для умножения количества годов в каждой дате на 365;
· 35h-36h-находится промежуточный результат;
· 34h-36h, 44h-46h,
а также 3Сh-3Fh, 4Fh - регистры, которые
используются для переведения результата с прямого кода в двоично-десятичную
систему;
· 3Dh-3Fh - результат работы программы
(количество прожитых дней) в двоично-десятичном коде;
4.
Тестирование программы
программа алгоритм регистр файл листинг
Для проверки работы программы было введено несколько контрольных
примеров. Результаты программы сопоставлялись с реальными.
Пример 1:
Введено следующие значения:=25.11.2009(10)=19.0B.07D9(h)
D2=21.03.1990(10)=15.03.07C6(h)
Результат работы программы: 1С15(h)=7189(10). Реальный
результат - 7189.
Пример 2:
Введено следующие данные:
D1=30.10.2009(10)=1E.0A.07D9(h)
D2=30.12.1987(10)=1E.0C.07C3(h)
Результат работы программы: 1F27(h)=7975(10). Реальный
результат - 7975.
Пример 3:
Введено следующие данные:=30.10.2009(10)=1E.0A.07D9(h)
D2=26.02.1991(10)=1A.02.07C7(h)
Результат работы программы: 1AA5(h)=6821(10). Реальный
результат - 6821.
5.
Листинг программы
Файл
Init.inc
;Инициализация регистров-EQU-0X10-EQU-0X20EQU-0X0CEQU-0X0DEQU-0X0E
IC-EQU-0X0FEQU-0X3CEQU-0X4F
Файл Clrreg.inc
;ОЧИЩЕНИЕ ПАМЯТИMOVLW - 0X40 -
- MOVWF - IC -
MOVLW - 0X10
MOVWF - FSRCLRF-INDF
INCF-FSR,F
DECFSZ - IC,F
GOTO - CR
RETURN
Файл Baseprog.inc
;СЧИТЫВАЕНИ ВХОДНЫХ ДАННЫХ
DATEIN - MOVLW - D1
MOVWF - FSR
CALL-DATAIN
MOVLW - D1 -
MOVWF - FSR
CALL-TDATE
MOVLW - D2-
MOVWF - FSR-
CALL-DATAIN -
MOVLW - D2 -
MOVWF - FSR
CALL-TDATE-
- RETURN
;СЧИТЫВАНИЕ ДАТ С ФАЙЛА
DATAIN
- MOVLW - 0X04 -
- MOVWF - IC - MOVF-PORTB,W -
MOVWF - INDF -
INCF-FSR,F -
DECFSZ - IC,F -
GOTO - NL
RETURN
;КОНВЕРТАЦИЯ ДАТ С ДОВИЧНО-ДЕСЯТИЧНОГО В ПРЯМОЙ КОД
TDATE - MOVLW - 0X10
SUBWF-INDF,W
BTFSS-STATUS,C -
GOTO-TMONS
MOVLW - 0X20
SUBWF-INDF,W
BTFSC-STATUS,C
GOTO-GO30-;СМ. ЛИСТ. 8
MOVLW - 0X06
SUBWF-INDF,F
GOTO-TMONS-;СМ. ЛИСТ. 8
- MOVLW - 0X30
SUBWF-INDF,W
BTFSC-STATUS,C
GOTO-GO31
MOVLW - 0X0C
SUBWF-INDF,F
GOTO-TMONS- MOVLW - 0X12
SUBWF-INDF,F- INCF-FSR,F
BTFSS-INDF,4
GOTO-TYEARS
BCF-INDF,4
MOVLW - 0X0A
ADDWF - INDF,F- INCF-FSR,F
MOVF-INDF,W -
MOVWF - RP -
MOVLW - 0X17 -
ADDWF - FSR,F -
MOVF-RP,W -
MOVWF - INDF -
MOVLW - 0X04 -
MOVWF - IC - - BCF-STATUS,C -
RRF-INDF,F-
DECFSZ - IC,F-
GOTO-YMR11-
MOVLW - 0X11 -
SUBWF-FSR,F -
MOVLW - 0X03 -
MOVWF - INDF -
INCF-FSR,F -
MOVLW - 0XE8 -
MOVWF - INDF -
MOVLW - 0X0A
MOVWF - ICV
CALL-MNOZH -
MOVLW - 0X64
MOVWF - INDF
MOVLW - 0X10
ADDWF - FSR,F
CLRF-INDF
DECF-FSR,F
CLRF-INDF
MOVLW - 0X16
SUBWF-FSR,F
MOVF-INDF,W -
MOVWF - RP -
MOVLW - 0X17 -
ADDWF - FSR,F -
MOVF-RP,W -
MOVWF - INDF -
MOVLW - 0X04 -
MOVWF - IC - - BCF-STATUS,C
RLF-INDF,F -
DECFSZ - IC,F -
GOTO-YML1 -
MOVWF - IC - - BCF-STATUS,C
RRF-INDF,F -
DECFSZ - IC,F -
GOTO-YMR12 -
MOVLW - 0X07
MOVWF - ICV
MOVLW - 0X10
SUBWF-FSR,F
CALL-MNOZH
MOVLW - 0X0A
MOVWF - INDF
MOVLW - 0X10
ADDWF - FSR,F
CLRF-INDF
DECF-FSR,F
CLRF-INDF
MOVLW - 0X15
SUBWF-FSR,F
MOVF-INDF,W
MOVWF - RP
MOVLW - 0X16
ADDWF - FSR,F
MOVF-RP,W
MOVWF - INDF
MOVLW - 0X04
MOVWF - IC- BCF-STATUS,C
RRF-INDF,F
DECFSZ - IC,F
GOTO-YMR21
MOVLW - 0X10
SUBWF-FSR,F
MOVLW - 0X04
MOVWF - ICV
CALL-MNOZH
MOVLW - 0X10
ADDWF - FSR,F
CLRF-INDF
DECF-FSR,F
CLRF-INDF
MOVLW - 0X15
SUBWF-FSR,F
MOVF-INDF,W
MOVWF - RP
MOVLW - 0X16
ADDWF - FSR,F
MOVF-RP,W
MOVWF - INDF
MOVLW - 0X04
MOVWF - IC- BCF-STATUS,C
RLF-INDF,F
DECFSZ - IC,F
GOTO-YML2
MOVWF - IC- BCF-STATUS,C
RRF-INDF,F
DECFSZ - IC,F
GOTO-YMR22
MOVLW - 0X02
MOVWF - IC
CALL-PLUS2
MOVLW - 0X12
ADDWF - FSR,F
MOVF-INDF,W
MOVWF - RP
CLRF-INDF
MOVLW - 0X26
SUBWF-FSR,F
MOVF-RP,W
MOVWF - INDF
MOVLW - 0X25
ADDWF - FSR,F
MOVF-INDF,W
MOVWF - RP
CLRF-INDF
MOVLW - 0X26
SUBWF-FSR,F
MOVF-RP,W
MOVWF - INDF
MOVLW - 0X17
ADDWF - FSR,F
- CLRF-INDF
RETURN
;ПЕРЕВОД ДАТ В КОЛИЧЕСТВО ДНЕЙ
CNTDAYS - CALL-REGMONS
MOVLW - D1+0X03
MOVWF - FSR
CALL-CDAYS
MOVLW - D2+0X03
- MOVWF - FSR
CALL-CDAYS
RETURN
;ПОДСЧЕТ КОЛИЧЕСТВА ПРОЖИТЫХ ДНЕЙ
LIVEDAY - MOVLW - 0X03
MOVWF - IC
MOVLW - D1+0X06
- MOVWF - FSR
CALL-MINUS3
;КОНВЕРТАЦИЯ РЕЗУЛЬТАТА ИЗ ШЕСТНАДЦАТИРИЧНОГО В ДВОИЧНО-ДЕСЯТИЧНЫЙ КОД
- MOVLW - RM
MOVWF - FSR
MOVLW - 0X14
MOVWF - IC- CLRF-INDF
INCF-FSR,F
DECFSZ - IC,F
GOTO-CLRMNS
MOVLW - 0X0A
SUBWF-FSR,F
MOVLW - 0X10
MOVWF - INDF
DECF-FSR,F
MOVLW - 0X27
MOVWF - INDF
MOVLW - 0X10
SUBWF-FSR,F -
STEP4 - MOVLW - 0X03-;ДЕЛИМ НА 10000
- MOVWF - IC
INCF-FSR,F
CALL-MINUS1
INCF-FSR,F
MOVF-INDF,F
BTFSS-STATUS,Z
GOTO-GOSTEP3
INCF-RPM,F
INCF-FSR,F
GOTO-STEP4- MOVLW - 0X03
MOVWF - IC
MOVLW - 0X02
ADDWF - FSR,F
CALL-PLUS1
MOVLW - 0X0C
ADDWF - FSR,F
CALL-ADDDCML
MOVLW - 0X0A
ADDWF - FSR,F
MOVLW - 0XE8
MOVWF - INDF
DECF-FSR,F
MOVLW - 0X03
MOVWF - INDF
MOVLW - 0X10
SUBWF-FSR,F- MOVLW - 0X03-;ДЕЛИМ НА 1000
MOVWF - IC
INCF-FSR,F
CALL-MINUS1
INCF-FSR,F
MOVF-INDF,F
BTFSS-STATUS,Z
GOTO-GOSTEP2
INCF-RPM,F
INCF-FSR,F
GOTO-STEP3- MOVLW - 0X03
MOVWF - IC
MOVLW - 0X02
ADDWF - FSR,F
CALL-PLUS1
MOVLW - 0X0C
ADDWF - FSR,F
CALL-ADDDCML
MOVLW - 0X0A
ADDWF - FSR,F
MOVLW - 0X64
MOVWF - INDF
DECF-FSR,F
CLRF-INDF
MOVLW - 0X10
SUBWF-FSR,F
STEP2 - MOVLW - 0X03-;ДЕЛИМ НА 100
- MOVWF - IC
INCF-FSR,F
CALL-MINUS1
INCF-FSR,F
MOVF-INDF,F
BTFSS-STATUS,Z
GOTO-GOSTEP1
INCF-RPM,F
INCF-FSR,F
GOTO-STEP2- MOVLW - 0X03
MOVWF - IC
MOVLW - 0X02
ADDWF - FSR,F
CALL-PLUS1
MOVLW - 0X0C
ADDWF - FSR,F
CALL-ADDDCML
MOVLW - 0X0A
ADDWF - FSR,F
MOVLW - 0X0A
MOVWF - INDF
MOVLW - 0X11
SUBWF-FSR,F- MOVLW - 0X03-;ДЕЛИМ НА 10
- MOVWF - IC
INCF-FSR,F
INCF-FSR,F
MOVF-INDF,F
BTFSS-STATUS,Z
GOTO-GOSTEP0
INCF-RPM,F
INCF-FSR,F
GOTO-STEP1- MOVLW - 0X03-;ПРИБАВЛЯЕМ ОСТАТОК
MOVWF - IC
MOVLW - 0X02
ADDWF - FSR,F
CALL-PLUS1
MOVLW - 0X0C
ADDWF - FSR,F
CALL-ADDDCML
MOVLW - 0X06
SUBWF-FSR,F
MOVF-INDF,W
MOVWF - RPM
MOVLW - 0X09
ADDWF - FSR,F
CALL-ADDDCML
RETURN
;ВСПОМОГАТЕЛЬНАЯ ПРОЦЕДУРА КОНВЕРТАЦИИ- MOVLW - 0X04
- MOVWF - ICV- MOVLW - 0X03
MOVWF - IC- RLF-INDF,F
DECF-FSR,F
DECFSZ - IC,F
GOTO-BITEMOV
ADDWF - FSR,F
DECFSZ - ICV,F
GOTO-BITMOV
MOVWF - IC
CALL-PLUS1
CLRF-RPM
RETURN
Файл DateWork.inc
;ОСНОВНАЯ ПРОЦЕДУРА ПЕРЕВЕДЕНИЯ ДАТ В КОЛИЧЕСТВО ДНЕЙ
CDAYS - MOVF-INDF,W
MOVWF - RP
MOVLW - 0X03
ADDWF - FSR,F
MOVF-RP,W
MOVWF - INDF
MOVLW - 0X04
SUBWF-FSR,F
MOVF-INDF,W -
MOVWF - RP
MOVLW - 0X03
ADDWF - FSR,F
MOVF-RP,W
MOVWF - INDF
MOVF-FSR,W
MOVWF - RP
CALL-VYSGOD
MOVLW - 0X06
SUBWF-FSR,F
MOVF-FSR,W
MOVWF - RPM
MOVF-NDF,W
MOVWF - ICV
DECF-ICV,W
MOVWF - RM- MOVLW - RM
ADDWF - RM,W
MOVWF - FSR
MOVF-INDF,W -
MOVWF - RP
MOVLW - 0X15
ADDWF - RPM,W
MOVWF - FSR
MOVF-RP,W
MOVWF - INDF
MOVLW - 0X03
MOVWF - IC
MOVLW - 0X10
SUBWF-FSR,F
CALL-PLUS1
DECF-RM,F
DECFSZ - ICV,F -
GOTO-DTOMONS -
MOVLW - 0X03
SUBWF-FSR,F
MOVF-INDF,W
MOVWF - RP
MOVLW - 0X16
ADDWF - FSR,F
MOVF-RP,W
MOVWF - INDF
MOVLW - 0X03
MOVWF - IC
MOVLW - 0X10
SUBWF-FSR,F
CALL-PLUS1
MOVLW - 0X02
MOVWF - ICV- MOVF-INDF,W -
MOVWF - RP
MOVLW - 0X17
ADDWF - FSR,F
MOVF-RP,W
MOVWF - INDF
MOVLW - 0X18
SUBWF-FSR,F
DECFSZ - ICV,F
GOTO-DMOV
MOVLW - 0X09
ADDWF - FSR,F
MOVLW - 0X6D
MOVWF - INDF
DECF-FSR,F
MOVLW - 0X01
MOVWF - INDF -
MOVLW - 0X09
MOVWF - ICV
INCF-FSR,F
CALL-MNOZH
MOVLW - 0X03
MOVWF - IC
MOVLW - 0X10
ADDWF - FSR,F- CLRF-INDF
MOVLW - 0X10
ADDWF - FSR,F
MOVF-INDF,W -
MOVWF - RP
CLRF-INDF
MOVLW - 0X14
SUBWF-FSR,F
MOVF-RP,W
MOVWF - INDF
MOVLW - 0X03
ADDWF - FSR,F
DECFSZ - IC,F
GOTO-MNTODOD -
MOVLW - 0X03
MOVWF - IC
MOVLW - 0X11
SUBWF-FSR,F
CALL-PLUS1
MOVLW - 0X03
MOVWF - IC
MOVLW - 0X13
ADDWF - FSR,F- CLRF-INDF
DECF-FSR,F
- DECFSZ - IC
GOTO-CLRDOD
RETURN
;ПОДСЧЕТ КОЛИЧЕСТВА ВЫСОКОСНЫХ ГОДОВ
VYSGOD - MOVLW - 0X02
MOVWF - ICV- MOVLW - 0X02
MOVWF - IC
MOVF-RP,W
MOVWF - FSRRRF-INDF,F
INCF-FSR,F
DECFSZ - IC,F
GOTO-VG
BCF-STATUS,C
DECFSZ - ICV,F
GOTO-KOLSDV
RETURN
;ЗАПОЛНЕНИЕ РЕГИСТРОВ ДНЕЙ В МЕСЯЦЫ
REGMONS
- MOVLW - 0X1F
- MOVWF - RM+0X01
MOVLW - 0X1C
MOVWF - RM+0X02
MOVLW - 0X1F
MOVWF - RM+0X03 -
MOVLW - 0X1E
MOVWF - RM+0X04
MOVLW - 0X1F
MOVWF - RM+0X05
MOVLW - 0X1E
MOVWF - RM+0X06
MOVLW - 0X1F
MOVWF - RM+0X07
MOVLW - 0X1F
MOVWF - RM+0X08
MOVLW - 0X1E
MOVWF - RM+0X09
MOVLW - 0X1F
MOVWF - RM+0X0A
MOVLW - 0X1E
MOVWF - RM+0X0B
RETURN
Файл Addition.inc
;ПРОЦЕДУРЫ СЛОЖЕНИЯ- CLRF-RS- MOVF-INDF,W
ADDWF - RS,W
MOVWF - RP
CLRF-RS
MOVLW - 0X01
BTFSC-STATUS,C
MOVWF - RS
MOVLW - 0X10
ADDWF - FSR,F
MOVF-INDF,W
ADDWF - RP,F
MOVLW - 0X01
BTFSC-STATUS,C
MOVWF - RS
MOVLW - 0X10
SUBWF-FSR,F
MOVF-RP,W
MOVWF - INDF
DECF-FSR,F
DECFSZ - IC,F
GOTO-ADN1
RETURN
- CLRF - RS- MOVF-INDF,W
ADDWF - RS,W
MOVWF - RP
CLRF-RS
MOVLW - 0X01
BTFSC-STATUS,C
MOVWF - RS
MOVLW - 0X10
ADDWF - FSR,F
MOVF-INDF,W
ADDWF - RP,F
MOVLW - 0X01
BTFSC-STATUS,C
MOVWF - RS
MOVF-RP,W
MOVWF - INDF
MOVLW - 0X11
SUBWF-FSR,F
DECFSZ - IC,F
GOTO-ADN2
RETURN
- CLRF-RS- MOVF-INDF,W
ADDWF - RS,W
MOVWF - RP
CLRF-RS
MOVLW - 0X01
BTFSC-STATUS,C
MOVWF - RS
MOVLW - 0X10
ADDWF - FSR,F
MOVF-INDF,W
ADDWF - RP,F
MOVLW - 0X01
BTFSC-STATUS,C
MOVWF - RS
MOVLW - 0X10
ADDWF - FSR,F
MOVF-RP,W
MOVWF - INDF
MOVLW - 0X21
SUBWF-FSR,F
DECFSZ - IC,F
GOTO-ADN3-
RETURN
Файл Deduct.inc
;ПРОЦЕДУРЫ ВЫЧИТАНИЯ- CLRF-RS- MOVF-INDF,W -
MOVWF - RP
MOVF-RS,W
SUBWF-RP,F
CLRF-RS
MOVLW - 0X01
BTFSS-STATUS,C
MOVWF - RS
MOVLW - 0X10
ADDWF - FSR,F
MOVF-INDF,W
SUBWF-RP,W
MOVWF - RP
MOVLW - 0X01
BTFSS-STATUS,C
MOVWF - RS
MOVLW - 0X10
SUBWF-FSR,F
MOVF-RP,W
MOVWF - INDF
DECF-FSR,F
DECFSZ - IC,F
GOTO-VIDN1
RETURN
- CLRF-RS- MOVF-INDF,W
MOVWF - RP
MOVF-RS,W
SUBWF-RP,F
CLRF-RS
MOVLW - 0X01
BTFSS-STATUS,C
MOVWF - RS
MOVLW - 0X10
ADDWF - FSR,F
MOVF-INDF,W
SUBWF-RP,W
MOVWF - RP
MOVLW - 0X01
BTFSS-STATUS,C
MOVWF - RS
MOVF-RP,W
MOVWF - INDF
MOVLW - 0X11
SUBWF-FSR,F
DECFSZ - IC,F
GOTO-VIDN2
RETURN
MINUS3 - CLRF-RS- MOVF-INDF,W
MOVWF - RP
MOVF-RS,W
SUBWF-RP,F
CLRF-RS
MOVLW - 0X01
BTFSS-STATUS,C
MOVWF - RS
MOVLW - 0X10
ADDWF - FSR,F
MOVF-INDF,W
SUBWF-RP,W
MOVWF - RP
MOVLW - 0X01
BTFSS-STATUS,C
MOVWF - RS
MOVLW - 0X10
ADDWF - FSR,F
MOVF-RP,W
MOVWF - INDF
MOVLW - 0X21
SUBWF-FSR,F
DECFSZ - IC,F
GOTO-VIDN3
RETURN
Файл Increase.inc
- INCLUDE<ADDITION.INC>
;ПРОЦЕДУРЫ УМНОЖЕНИЯ- MOVLW - 0X09
MOVWF - ICV
MOVF-FSR,W
MOVWF - RMBTFSC-INDF,0
GOTO-MNDOD- MOVLW - 0X03
MOVWF - IC
MOVF-RM,W
MOVWF - FSR
MOVLW - 0X10
ADDWF - FSR,F
BCF-STATUS,C- RLF-INDF,F
DECF-FSR,F
DECFSZ - IC,F
GOTO-SDVL
MOVLW - 0X03
MOVWF - IC
MOVLW - 0X0F
SUBWF-FSR,F
BCF-STATUS,C- RRF-INDF,F
INCF-FSR,F
DECFSZ - IC,F
GOTO-SDVR
MOVF-RM,W
MOVWF - FSR
DECFSZ - ICV,F -
GOTO-MN
GOTO-ENDMN- MOVLW - 0X03
MOVLW - 0X10
ADDWF - FSR,F
CALL-PLUS2
GOTO-GOMN - - RETURN
Файл HMDL.asm
- INCLUDE<P16F84.INC>
- INCLUDE<INIT.INC>;
ИНИУИАЛИЗАЦИЯ РЕГИСТРОВ, КОТОРЫЕ СПОЛЬЗУЮТСЯ
CALL -
CLREG-;ОЧИЩЕНИЯ РЕГИСТРОВ
CALL -
DATEIN - ;ЗАГРУЗКА ДАТ
CALL - CNTDAYS - ;ПЕРЕВЕДЕНИЯ ДАТ В КОЛИЧЕСТВО ДНЕЙ
CALL - LIVEDAY - ;НАХОДИМ КОЛИЧЕСТВО ПРОЖИТЫХ ДНЕЙ
GOTO - ENDPROG - ;ПЕРЕХОД В КОНЕЦ ПРОГРАММЫ
;-------СТРУКТУРНЫЕ ЭЛЕМЕНТЫ------------
INCLUDE<CLRREG.INC> - ;ОЧИСТКА РЕГИСТРОВ
INCLUDE<BASEPROG.INC> - ;ПРОЦЕДУРЫ, КОТОРЫЕ РЕАЛИЗУЮТ ОСНОВНОЙ
АЛГОРИТМ
INCLUDE<DATEWORK.INC> - ;ПРОЦЕДУРЫ ПЕРЕВЕДЕНИЯ ДАТ В КОЛИЧЕСТВО
ДНЕЙ
- INCLUDE<DEDUCT.INC> - ;ВЫЧИТАНИЕ
INCLUDE<INCREASE.INC> - ;УМНОЖЕНИЯ
;-------СТРУКТУРНЫЕ ЭЛЕМЕНТЫ------------
- GOTO - $
END
Вывод
В данной лабораторной работе были приобретены навыки программирования на
языке PICAssembler и определенные знания в области использования IDE MPLAB.
Результатом данной работы является программы, которая подсчитывает количество
прожитых дней.