Поиск по сайту:

 


По базе:  

микроэлектроника, микросхема, микроконтроллер, память, msp430, MSP430, Atmel, Maxim, LCD, hd44780, t6963, sed1335, SED1335, mega128, avr, mega128  
  Главная страница > Обзоры по типам > Микроконтроллеры > HC08 > Примеры

реклама

 




Мероприятия:




Пример кодов с использованием команды AIS

* AIS:
* 1) Создание в стеке пространства для локальных переменных
*  SP - - > |                 |
*           - - - - - - - - -        ^
*           |                 |      |
*           |   Пространство  |      |
*           |   локальных     |      |
*           |   переменных    |      |
*           |                 |  Уменьшение 
*           - - - - - - - - -      адреса
*           |PC (Старший байт)|
*           - - - - - - - - - 
*           |PC (Младший байт)|
*           - - - - - - - - - 
*           |                 |
*
* Примечание: SP всегда должен указывать на следующий неиспользованный байт, 
*             т.е. этот байт (0, SP) для хранения не используется
*
*
*
*
    Метка   Операция  Операнд    Комментарий

*   SUB1    AIS       #-16       ; Создание 16 байтов локального пространства
*   .
*   .
*   .
*   .
            AIS       #16        ; Очистка стека (Примечание: AIS не модифицирует CCR)
            RTS                  ; Возврат
*
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*
* 2) Проводка параметров через стек
*
*
   Метка    Операция   Операнд     Комментарий

   PARAM1RMB       1
   PARAM2RMB       1
*
*
            LDA        PARAM1
            PSHA                   ; Занесение в стек делимого
            LDA        PARAM2
            PSHA                   ; Занесение в стек делителя
            JSR        DIVIDE      ; Деление 8/8
            PULA                   ; Получение результата
            AIS        #1          ; Очистка стека (CCR не модифицируется)
            BCS        ERROR       ; Проверка результата
*           .
   ERROR    EQU        *
*           .
*


* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
* ДЕЛЕНИЕ: Деление 8/8
*
* SP - - > |                 |
*          - - - - - - - - - -
*          |       A         |
*          - - - - - - - - - -
*          |       X         |
*          - - - - - - - - - -     ^
*          |       H         |     |
*          - - - - - - - - - -     |
*          |PC (Старший байт)|     |
*          - - - - - - - - - -     |
*          |PC (Младший байт)|     |
*          - - - - - - - - - -     |
*          |    Делитель     |
*          - - - - - - - - - - Уменьшение
*          |    Делимое      |   адреса
*          - - - - - - - - - - 
*          |                 |
*
*   Вход:	Делимое и делитель в стеке по SP,7  и SP,6, соответственно
*
*   Выход	8-разрядный результат размещается в стеке по SP,6
*           A, H:X остаются неизменными
*
*
    Метка       Операция    Операнд    Комментарий

    DIVIDE      PSHH                   ; Сохранение H:X, A
                PSHX
                PSHA
                LDX         6, SP      ; Делитель - > X
                CLRH                   ; 0 - > MS делимого
                LDA         7, SP      ; Делимое - > A
                DIV
   OK           STA         6, SP      ; Сохранение результата
                PULA                   ; Восстановление H:X, A
                PULX
                PULH
                RTS
*
* * * * * * * * * * * * * * * * * * * * * * 





 
Впервые? | Реклама на сайте | О проекте | Карта портала
тел. редакции: +7 (995) 900 6254. e-mail:info@eust.ru
©1998-2023 Рынок Микроэлектроники