Форум » Для начинающих. » НУЖНА ПОМОЩЬ » Ответить

НУЖНА ПОМОЩЬ

vasYa: ВСЕМ ПРИВЕТ, КТО МОЖЕТ ДОХОДЧИВО ОБЪЯСНИТЬ ФРАГМЕНТ КОДА, ПОМОГИТЕ ПОЖАЛУЙСТА....... [pre2]CH_PR_NACH MOVLW HIGH CH_PR_NACH1 MOVWF PCLATH MOVF CIF,W CH_PR_NACH1 ADDWF PCL,F ; GOTO CIF_0 ;0 GOTO CIF_2 ;1 GOTO CIF_4 ;2 GOTO CIF_6 ;3 GOTO CIF_8[/pre2] ОСОБЕННО ИНТЕРЕСНЫ ПЕРВЫЕ 3 СТРОЧКИ ПОСЛЕ МЕТКИ CH_PR_NACH ЗАРАНИЕ БЛАГОДАРЕН

Ответов - 5

igor: Всё просто. При применении вычисляемого перехода необходимо озаботится записью в регистр PCLATH адреса метки на которую будет осуществлён переход. В Вашем случае это метка с названием CH_PR_NACH1. Если этого не сделать, то велика вероятность того, что в случае применения вычисляемого перехода, переход будет осуществлён не на метку CH_PR_NACH1 а на любую другую строчку программы. Для этого применяются операторы HIGH и LOV. Оператор HIGH читает адрес метки и потом мы этот адрес записываем в PCLATH. Ну а третья строчка, это запись из регистра CIF в W числа, которое складывается с PCL и в результате выбирается прыжок на одну из GOTO CIF_х. Цитата из статьи Александра Милевского: "High - возвращает старший байт, Lov - возвращает младший байт. Командой movlw High «метка в программе» можно записать старший байт числа, которое равно числу счетчика программ, на котором стоит метка, в регистр W. А старший байт находится в PCLATH и определяет страницу памяти программ. Остается скопировать это число в регистр PCLATН и таким образом выбрать страницу памяти программ. Этим мы решаем проблемы с переходом по стеку между страницами командами call и goto. Командой movlw Lov «метка в программе» можно записать младший байт числа, которое равно числу счетчика программ, на котором стоит метка, в W. А младший байт находится в PCL и определяет переходы через 255 памяти программ. К нему необходимо прибавить число «прыжка» вычисляемого перехода, проверить бит С. Если больше 255, то добавляем 1 к PCLATH и прыгаем".

vasYa: о, понял, большое Вам спасибо

Вячеслав: igor пишет: Цитата из статьи Александра Милевского: Пожалуйста, укажите ссылочку на ВСЮ статью. Если не секрет.


MAZ: Она была в Обмене. Как сейчас сылаться на обмен не знаю. Посмотрю в архиве. Прикреплю. 4/19. О переходах между страницами. Вычисляемый переход без предварительного выбора страницы или перехода через 256.

Вячеслав: MAZ, спасибо. Найду. С уважением.



полная версия страницы