Мегаобучалка Главная | О нас | Обратная связь


Программа генерации числовой последовательности



2020-03-19 172 Обсуждений (0)
Программа генерации числовой последовательности 0.00 из 5.00 0 оценок




С нормальным распределением

CSEG                                     AT      00                ;

                                                LJMP    INIT         ;

                                                ORG    0BH           ;

                                                LJMP    START     ;

DSEG                                     AT        02H           ;

X_Y:                                      DS         2                ;

X_A:                                      DS         2                ;

X_M:                                     DS         2                ;

X_SUM:                                DS         8                ;

X_SCHET:                            DS         1                 ;

X_Z:                                      DS         2                  ;

X_SCHETCHIK: DS         1           ;

X_RES:         DS            15        ;

MY_PROG SEGMENT CODE  ;

                   RSEG        MY_PROG ;

                   ORG          30H       ;

INIT:        MOV        THO,#0D9H;

                 MOV        TL0,#05H ;

                 MOV       TMOD,#01H ;

                 MOV         IE, #82H  ;

               SETB           TR0          ;

WAIT:     SJMP         WAIT       ;

START:   CLR            EA           ;

                SETB            RS0        ;

                MOV            R4, X_Y    ;

                MOV          R5,X_Y+1 ;

                CLR             RS0           ;

                 SETB            RS1         ;

               MOV            R0,#14H     ;

MAIN:    CLR             RS1            ;

             SETB              RS0             ;

             MOV               A,X_Y        ;

             MOV               B, X_A       ;

             MUL              AB               ;

            MOV               R0, A            ;

            MOV               R1, B          ;

            MOV               A,X_Y          ;

             MOV              B,X_A+1       ;

            MUL               AB                 ;

           MOV               R2,B                 ;

           ADD              A,R1              ;

            MOV             R1,A              ;

           JNC                 NC1              ;

           CLR                    C               ;

          INC                  R2                ;

NC1: MOV            A,X_A               ;

          MOV            B,X_Y+1          ;

        MUL              AB                          ;

          ADD            A,R1                    ;

           MOV           R1,A                  ;

         XCH              A,B                     ;

         JNC               NC2                    ;

         CLR               C                        ;

         INC                 R2                      ;

NC2: ADD              A,R2                  ;

         MOV             R2,A                   ;

         JNC               NC3                      ;

         CLR                C                       ;

        INC                 R3                       ;

NC3: MOV             A, X_Y+1               ;

         MOV             B,X_A+1             ;

        MUL               AB                     ;

        ADD               A,R2                     ;

       MOV               R2,A                       ;

       JNC                  NC4                      ;

       CLR                   C                        ;

       INC                     R3                    ;

NC4: MOV               A, R3                   ;

       ADD                  A,B                      ;

       MOV                 R3, A                   ;

      CJNE               R3,#00,NV1            ;

      CJNE                R2,#00, NV3          ;

     LJMP                  NV5                      ;

NV1: MOV                 A,R0                      ;

      CLR                 C                              ;

     SUBB                A,X_M                   ;

     MOV                  RO,A                        ;

     JNC                    NV2                        ;

      CLR                     C                            ;

     DEC                     R1                         ;

     JNC                       NV2                         ;

     CLR                     C                            ;

       DEC                      R2                           ;

     JNC                    NV2                     ;

     CLR                       C                              ;

       DEC                    R3                            ;

     CJNE                   R3,#00,NV2                ;

      MOV                  A, R1                           ;

     SUBB                  A,X_M+1                     ;

     MOV                    R1, A                            ;

      LJMP                   NV3                             ;

NV2: MOV                   A,R1                            ;

       SUBB                  A,X_M+1                      ;

       MOV                  R1, A                                ;

       JNC                    NV1                                 ;

       CLR                    C                                       ;

       DEC                 R2                                     ;

       JNC                   NV1                                   ;   

        CLR                   C;     

      DEC                   R3                                  ;

      CJNE                 R3,#00,NV1                    ;

NV3: MOV                 A,R0                               ;

        SUBB               A,X_M                          ;

       MOV              R0,A                                   ;

       JNC                     NV4                             ;

        CLR                         C                                ;

       DEC                      R1                                ;

       JNC                   NV4                                   ;

       CLR                    C                                     ;

       DEC                    R2                                 ;

        CJNE                  R2,#00,NV4                  ;

        MOV                A,R1                                 ;

        SUBB                A,X_M+1                        ;

        MOV                R1,A                                 ;

       LJMP                  NV5                               ;

NV4: MOV               A,R1                                 ;

        SUBB             A, X_M+1                              ;

       MOV                R1, A                                ;

       JNC                  NV3                                ;

       CLR                  C                                     ;

        DEC                R2                                    ;

        CJNE              R2,#00,NV3                      ;

NV5: MOV              A,R0                                   ;

         SUBB            A,X_M                               ;

        MOV             R0,A                                    ;

        JNC               NV6                                     ;

        CLR              C                                           ;

        DEC             R1                                         ;

NV6: MOV           A,R1                                   ;

         SUBB          A,X_M+1                           ;

         MOV            R1,A                                   ;

         JNC               NV5                                   ;

         MOV            A,R0                                   ;

         CLR              C                                       ;

          ADD            A,X_M                             ;

         MOV            R0, A                                ;

          MOV           X_Y,A                              ;

        MOV              A,R1                                 ;

        ADDC           A,X_M+1                           ;

        MOV             R1,A                                   ;

         MOV            X_Y+1,A                                 ;

         CLR            C                                            ;

         MOV            A,R0                                    ;

         ADD              A,R4                                ;

         MOV              R4,A                                  ;

          JNC               NEXT                                  ;

          CLR                     C                                   ;

        INC                     R5                                    ;

NEXT: MOV                   A,R1                                 ;

          ADD                 A,R5                                 ;

           MOV              R5,A                                     ;

           JNC                  NV8                                   ;

           CLR                  C                                        ;

          INC                    R6                                   ;

NV8:   INC R7                                                           ;

          CJNE            R7,#12,NV11                       ;

          MOV              R7,#00                                  ;

         SETB                RS1                                      ;

           CLR                  RS0                                  ;

         MOV                 A,X_SUM+4                     ;

        CLR                       C                                   ;

        SUBB                 A,R1                                ;

        MOV                   @R0,A                              ;

        INC                      R0                                     ;

         JNC                    NV9                               ;

         CLR                  C                                      ;

       DEC                      X_SUM+5                     ;

NV9: MOV                 A,X_SUM+5                    ;

       SUBB                A,R2                                 ;

       MOV                @R0,A                              ;

      INC                      R0                                   ;

      JNC                     NV10                                 ;

      CLR                           C                                  ;

      DEC                    X_SUM+6                        ;

NV10: MOV               @R0,X_SUM+6                  ;

       INC                    R0                                      ;

       MOV                 X_SUM+4,#00                   ;

       MOV                 X_SUM+5,#00                  ;

      MOV                  X_SUM+6,#00                 ;       

       INC                     R3                                    ;

        CJNE                  R3,#05, NV11                ;

         MOV               R3, #00                           ;

        SETB               EA                                        ;

        LJMP             OUT                                    ;

NV11: LJMP             MAIN                                  ;

 OUT:

      END                                                                   ;   

 

        

       

           

 

 

Отладка системы в целом

В курсовой работе для отладки системы я использовал программу ProView.

ProView фирмы Franklin Software Inc. – интегрированная среда разработки программного обеспечения для однокристальных микроконтроллеров семейства Intel 8051 и его клонов. Она включает в себя всё, что нужно для создания, редактирования, компиляции, трансляции, компоновки, загрузки и отладки программ:

· стандартный интерфейс Windows,

· полнофункциональный редактор исходных текстов с выделением синтаксических элементов цветом,

· организатор проекта,

· транслятор с языка C,

· ассемблер,

· отладчик,

· встроенную справочную систему.

Среда разработки подобна Visual C++ Microsoft и Borland C++ для Windows. Пользователи, знакомые с любым из этих изделий, будут чувствовать себя в ProView, как дома.

Первый этап разработки программы – запись её исходного текста на каком-либо языке программирования.

Затем производится компиляция или трансляция его в коды из системы команд микроконтроллера, используя транслятор или ассемблер. Трансляторы и ассемблеры – прикладные программы, которые интерпретируют текстовый файл, содержащий исходный текст программы, и создают объектные файлы, содержащие объектный код.

После компоновки объектных модулей наступает этап отладки программы, устранения ошибок, оптимизации и тестирования программы.

ProView объединяет все этапы разработки прикладной программы в единый рекурсивный процесс, когда в любой момент времени возможен быстрый возврат к любому предыдущему этапу.

ProView имеет следующие компоненты.

Оптимизирующий кросс-компилятор C51

Язык C – универсальный язык программирования, который обеспечивает эффективность кода, элементы структурного программирования и имеет богатый набор операторов. Универсальность, отсутствие ограничений реализации делают язык C удобным и эффективным средством программирования для широкого разнообразия задач. Множество прикладных программ может быть написано легче и эффективнее на языке C, чем на других более специализированных языках.

C51 – полная реализация стандарта ANSI (Американского национального института стандартов), насколько это возможно для архитектуры Intel 8051. C51 генерирует код для всего семейства микроконтроллеров Intel 8051. Транслятор сочетает гибкость программирования на языке C с эффективностью кода и быстродействием ассемблера.

Использование языка высокого уровня C имеет следующие преимущества над программированием на ассемблере:

· глубокого знания системы команд процессора не требуется, элементарное знание архитектуры Intel 8051 желательно, но не необходимо;

· распределение регистров и способы адресации управляются полностью транслятором;

· лучшая читаемость программы, используются ключевые слова и функции, которые более свойственны человеческой мысли;

· время разработки программ и их отладки значительно короче в сравнении с программированием на ассемблере;

· библиотечные файлы содержат много стандартных подпрограмм, которые могут быть включены в прикладную программу;

· существующие программы могут многократно использоваться в новых программах, используя модульные методы программирования.

Макроассемблер A51

Ассемблер A51 совместим с ASM51 Intel для всего семейства микроконтроллеров Intel 8051. Ассемблер транслирует символическую мнемонику в перемещаемый объектный код, имеющий высокое быстродействие и малый размер. Макросредства ускоряют разработку и экономят время, поскольку общие последовательности могут быть разработаны только один раз. Ассемблер поддерживает символический доступ ко всем элементам микроконтроллера и перестраивает конфигурацию для каждой разновидности Intel 8051.

A51 транслирует исходный файл ассемблера в перемещаемый объектный модуль. При отладке или при включенной опции “Include debugging information” этот объектный файл будет содержать полную символическую информацию для отладчика/имитатора или внутрисхемного эмулятора.

Компоновщик L51

Компоновщик объединяет один или несколько объектных модулей в одну исполняемую программу. Компоновщик размещает внешние и общие ссылки, назначает абсолютные адреса перемещаемым сегментам программ. Он может обрабатывать объектные модули, созданные транслятором C51, ассемблером A51, транслятором PL/M-51 Intel и ассемблером ASM51 Intel.

Компоновщик автоматически выбирает соответствующие библиотеки поддержки и связывает только требуемые модули из библиотек. Установки по умолчанию для L51 выбраны так, чтобы они подходили для большинства прикладных программ, но можно определить и заказные установки.



2020-03-19 172 Обсуждений (0)
Программа генерации числовой последовательности 0.00 из 5.00 0 оценок









Обсуждение в статье: Программа генерации числовой последовательности

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Генезис конфликтологии как науки в древней Греции: Для уяснения предыстории конфликтологии существенное значение имеет обращение к античной...
Как построить свою речь (словесное оформление): При подготовке публичного выступления перед оратором возникает вопрос, как лучше словесно оформить свою...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (172)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.007 сек.)