Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.02.2014, 22:46   #1
vovken1997
Дружелюбный
Форумчанин
 
Аватар для vovken1997
 
Регистрация: 23.02.2012
Сообщений: 692
Вопрос Условный оператор

Здравствуйте)
Я пишу программу под мк PIC12F629 которая опрашивает ик приёмник TSOP1738 и отправляет эту информацию в ПК.
Пишу программу в MPLAB. Смущает вот такой момент:
Код:
Read_Bit:
		BTFSS GPIO,2
		GOTO Read_Bit

		CALL Delay_LOW
	;	MOVWF CountLOW
		.IF(CountLOW<=5)
			MOVLW 0x00
		.ELSE 
			MOVLW 0x01
		.ENDIF
RETURN
Если запустить отладчик на ПК и дойти до условия, то он показывает, что в ячейе CountLOW находится "1". Но если пройти на команду вперёд то отладчик попадает на "MOVLW 0x01", а не на "MOVLW 0x00". Что не так!?
-==ЛЮБОЕ ЗНАНИЕ ДОСТИГАЕТСЯ ТОЛЬКО СОБСТВЕННЫМИ УСИЛИЯМИ!!!==-
vovken1997 вне форума Ответить с цитированием
Старый 21.02.2014, 08:28   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

А выполняется с 0х00 или 0х01? Просто встречал, что в отладчике в условии курсор становился и на элсе блок, но не выполнял.
p51x вне форума Ответить с цитированием
Старый 21.02.2014, 16:44   #3
vovken1997
Дружелюбный
Форумчанин
 
Аватар для vovken1997
 
Регистрация: 23.02.2012
Сообщений: 692
По умолчанию

Да выполняется.
Вообще в ассемблере нет условий, это в MPLAB что то намутили. Как сделать то же самое условие на чистом АСМ???
-==ЛЮБОЕ ЗНАНИЕ ДОСТИГАЕТСЯ ТОЛЬКО СОБСТВЕННЫМИ УСИЛИЯМИ!!!==-
vovken1997 вне форума Ответить с цитированием
Старый 21.02.2014, 17:25   #4
Malriser
xor esp, esp
Форумчанин
 
Регистрация: 11.02.2014
Сообщений: 135
По умолчанию

Цитата:
Сообщение от vovken1997 Посмотреть сообщение
Да выполняется.
Вообще в ассемблере нет условий, это в MPLAB что то намутили. Как сделать то же самое условие на чистом АСМ???
Код:
cmp eax, 1
je exit
Если eax равен 1, то прыжок на exit.

http://asmworld.ru/uchebnyj-kurs/016...vnye-perexody/
Malriser вне форума Ответить с цитированием
Старый 21.02.2014, 17:41   #5
vovken1997
Дружелюбный
Форумчанин
 
Аватар для vovken1997
 
Регистрация: 23.02.2012
Сообщений: 692
По умолчанию

А в моём случае:
[CODE]
cmp eax, 5
jle exit
[\CODE]
и в exit " MOVLW 0x00"???
-==ЛЮБОЕ ЗНАНИЕ ДОСТИГАЕТСЯ ТОЛЬКО СОБСТВЕННЫМИ УСИЛИЯМИ!!!==-
vovken1997 вне форума Ответить с цитированием
Старый 21.02.2014, 19:55   #6
vovken1997
Дружелюбный
Форумчанин
 
Аватар для vovken1997
 
Регистрация: 23.02.2012
Сообщений: 692
По умолчанию

Написал вот так:
Код:
Read_Bit:
		BTFSS GPIO,2
		GOTO Read_Bit

		CALL Delay_LOW
	;	MOVWF CountLOW
	;	IF(CountLOW<=0x05)
	;		MOVLW 0x00
	;	ELSE 
	;		MOVLW 0x01
	;	ENDIF
		CMP CountLOW, 5
		JLE C1 

		CMP CountLOW, 5
		JG C2

	EXIT:
RETURN

	
	C1: MOVLW 0x00
		GOTO EXIT

	C2: MOVLW 0x01
		GOTO EXIT
В итоге MPLAB выдал ошибки:
Error[122] D:\MK_PROJECTS\SEND_TO_PC_SUPER\BLI NK.ASM 426 : Illegal opcode (CountLOW)
Error[122] D:\MK_PROJECTS\SEND_TO_PC_SUPER\BLI NK.ASM 427 : Illegal opcode (C1)
Error[122] D:\MK_PROJECTS\SEND_TO_PC_SUPER\BLI NK.ASM 429 : Illegal opcode (CountLOW)
Error[122] D:\MK_PROJECTS\SEND_TO_PC_SUPER\BLI NK.ASM 430 : Illegal opcode (C2)

Что ему не нравится????
-==ЛЮБОЕ ЗНАНИЕ ДОСТИГАЕТСЯ ТОЛЬКО СОБСТВЕННЫМИ УСИЛИЯМИ!!!==-
vovken1997 вне форума Ответить с цитированием
Старый 21.02.2014, 20:58   #7
vovken1997
Дружелюбный
Форумчанин
 
Аватар для vovken1997
 
Регистрация: 23.02.2012
Сообщений: 692
По умолчанию

Вот нашёл виды условий на асм
Всем спасибо!
-==ЛЮБОЕ ЗНАНИЕ ДОСТИГАЕТСЯ ТОЛЬКО СОБСТВЕННЫМИ УСИЛИЯМИ!!!==-
vovken1997 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Условный оператор,оператор цикла и массив Klark73 Microsoft Office Excel 1 19.12.2011 17:09
Условный оператор. Оператор выбора. евгенийзууу Паскаль, Turbo Pascal, PascalABC.NET 3 05.12.2011 14:37
Оператор выбора или условный оператор[Перенесено из JavaSE] merhaba1992 Помощь студентам 1 20.01.2011 17:06
Условный оператор. Оператор выбора. Pascal Сержuk Помощь студентам 4 17.11.2010 12:50