реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> что это за команды
стас
сообщение Jul 29 2011, 10:15
Сообщение #1





Группа: Участник
Сообщений: 13
Регистрация: 25-07-11
Пользователь №: 66 399



вот тут изучаю чужую программу, и наткнулся на команды "BZ" и "BNZ" которых нет в списке команд, как же понимать эти строчки?[attachment=59207:_________.jpg]
; 4. СРАВНЕНИЕ ЗНАЧЕНИЙ РЕГИСТРОВ.
;================================
COMP
BTFSS PORTA,1 ;ЕСЛИ ВЫХОД ВКЛЮЧЕН,
GOTO COMWU ;ПОЙДЕМ ВЫКЛЮЧАТЬ.
MOVFW HOU1 ;СРАВНИМ ЗНАЧЕНИЕ ЧАСОВ
SUBLW HWK ;СО ЗНАЧЕНИЕМ ВРЕМЕНИ ВКЛЮЧЕНИЯ.
BNZ COM ;ЕСЛИ ОНИ НЕ РАВНЫ, ЗАЦИКЛИВАЕМСЯ.
MOVFW MIN1 ;СРАВНИМ ЗНАЧЕНИЕ МИНУТ
SUBLW MWK ;СО ЗНАЧЕНИЕМ ВРЕМЕНИ ВКЛЮЧЕНИЯ.
BZ COMW ;ЕСЛИ ОНИ РАВНЫ, ВКЛЮЧАЕМ ВЫХОД.
COM

Сообщение отредактировал стас - Jul 29 2011, 10:17
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Jul 29 2011, 10:23
Сообщение #2


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата
Команды BZ, BNZ и ряд других являются псевдокомандами,
встроенными в MPLAB, их действие и во что они транслируются
можно посмотреть в MPLAB:
Help/MPASM Help/Appendices/Appendix B. Quick Reference/B.6/Special Instruction Mnemonics
(в конце)

Успехов!

http://www.microchip.ru/phorum/read.php?f=...i=858&t=858

Вообще-то, неплохо было бы сразу указать, какой процессор (а то оказался не по умолчанию), чтобы не приходилось у гугля спрашивать.
А во-вторых, неплохо бы сначала у гугля спросить...


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
стас
сообщение Jul 29 2011, 10:36
Сообщение #3





Группа: Участник
Сообщений: 13
Регистрация: 25-07-11
Пользователь №: 66 399



в начале программы нигде не фигурируют такие вещи, я конечно попытаюсь разобраться

#INCLUDE P16F84A.INC
__CONFIG 3FF0H
;======================================
; ИСПОЛЬЗУЕТСЯ КВАРЦ ЧАСТОТОЙ 32,768 KГЦ.
;======================================
HWK EQU 06H ;ВКЛЮЧЕНИЕ ЧЕРЕЗ 6 ЧАСОВ
MWK EQU 00H ;ПОСЛЕ НАЖАТИЯ КНОПКИ.
MWUK EQU 1EH ;ВЫКЛЮЧЕНИЕ ЧЕРЕЗ 30 МИНУТ.
;================
; СПЕЦ. РЕГИСТРЫ.
;================
INDF EQU 00H ;ДОСТУП К ПАМЯТИ ЧЕРЕЗ FSR.
TIMER0 EQU 01H ;TMR0.
OPTIONR EQU 81H ;OPTION (RP0=1).
PC EQU 02H ;СЧЕТЧИК КОМАНД.
STATUS EQU 03H ;РЕГИСТР СОСТОЯНИЯ АЛУ.
FSR EQU 04H ;РЕГИСТР КОСВЕННОЙ АДРЕСАЦИИ.
PORTA EQU 05H ;ПОРТ А ВВОДА/ВЫВОДА.
PORTB EQU 06H ;ПОРТ В ВВОДА/ВЫВОДА.
TRISA EQU 85H ;НАПРАВЛЕНИЯ ДАННЫХ ПОРТА А.
TRISB EQU 86H ;НАПРАВЛЕНИЯ ДАННЫХ ПОРТА В.
INTCON EQU 0BH ;РЕГИСТР ФЛАГОВ ПРЕРЫВАНИЙ.
;=============================================
; ОПРЕДЕЛЕНИЕ ВХОДОВ.
;=============================================
; RB0 > ВХОД КНОПКИ.
; RA0 > ВЫХОД ПРЯМОЙ (1).
; RA1 > ВЫХОД ИНВЕРСНЫЙ (0).
;==================================
; ОПРЕДЕЛЕНИЕ РЕГИСТРОВ УСТАНОВКИ.
;==================================
SEC1 EQU 11H ;СЧЕТЧИК СЕКУНД.
MIN1 EQU 12H ;СЧЕТЧИК МИНУТ.
HOU1 EQU 13H ;СЧЕТЧИК ЧАСОВ.
;====================
; ВРЕМЕННЫЕ РЕГИСТРЫ.
;====================
W_TEMP EQU 20H ;БАЙТ СОХРАНЕНИЯ РЕГИСТРА W ПРИ ПРЕРЫВАНИИ.
STATUS_TEMP EQU 21H ;БАЙТ СОХРАНЕНИЯ РЕГИСТРА STATUS ПРИ ПРЕРЫВАНИИ.
FSR_TEMP EQU 22H ;ВРЕМЕННЫЙ ДЛЯ FSR.
;=====================
; 1. ПУСК.
;=====================
ORG 0
GOTO INIT
ORG 4
GOTO CONST
Go to the top of the page
 
+Quote Post
Lexy_one
сообщение Jul 29 2011, 13:44
Сообщение #4


Частый гость
**

Группа: Участник
Сообщений: 90
Регистрация: 28-07-09
Из: Чернигов
Пользователь №: 51 621



Эти команды похоже означают
BZ = Branch if Zero (Переход если ноль)
BNZ = Branch if Not Zero (Переход если не ноль)

Но для точной идентификации необходимо знать хотябы какой процессор...

Или посмотреть по коду - может они не станартные и гдето переопределены, типа:
БлаБлаБла EQU BNZ;

Go to the top of the page
 
+Quote Post
rx3apf
сообщение Jul 29 2011, 13:49
Сообщение #5


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



Это псевдокоманды самого ассемблера (mpasm). Переход по условию "ноль" (bz) или "не ноль" (bnz), каждая расширяется в две инструкции, условный пропуск и переход. Смотреть описание mpasm.
Go to the top of the page
 
+Quote Post
стас
сообщение Jul 29 2011, 18:31
Сообщение #6





Группа: Участник
Сообщений: 13
Регистрация: 25-07-11
Пользователь №: 66 399



вообще-то есть такие команды: DECFSZ BTFSS BTFSC INCFSZ, по крайней мере они в книжках фигурируют, а вот про bz и bnz ни слова, может ещё есть какие-то такие "секретные" команды?
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Jul 30 2011, 05:42
Сообщение #7


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(стас @ Jul 29 2011, 21:31) *
вообще-то есть такие команды: DECFSZ BTFSS BTFSC INCFSZ, по крайней мере они в книжках фигурируют, а вот про bz и bnz ни слова, может ещё есть какие-то такие "секретные" команды?

bz, bnz это из системы команд pic18, в 16-х ее и в помине нет. Следовательно, для того,чтобы эта баранина работала, в тексте должны быть определены макросы
Код
bz macro label
btfsc STATUS,Z
goto label
endm

bnz macro label
btfss STATUS,Z
goto label
endm
Go to the top of the page
 
+Quote Post
1113
сообщение Jul 30 2011, 06:56
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 604
Регистрация: 24-02-06
Из: Москва
Пользователь №: 14 658



Это не команды, а сокращённые написания. Микрочип ассемблер их поддерживает. Где описываются - не знаю).
Go to the top of the page
 
+Quote Post
ar__systems
сообщение Aug 3 2011, 19:18
Сообщение #9


self made
****

Группа: Свой
Сообщений: 855
Регистрация: 7-03-09
Из: Toronto, Canada
Пользователь №: 45 795



Цитата(1113 @ Jul 30 2011, 02:56) *
Это не команды, а сокращённые написания. Микрочип ассемблер их поддерживает. Где описываются - не знаю).

Поддерживает. Но эти команды есть только в PIC18.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 10:45
Рейтинг@Mail.ru


Страница сгенерированна за 0.01423 секунд с 7
ELECTRONIX ©2004-2016