[an error occurred while processing this directive] [an error occurred while processing this directive]
Как объяснить Keil чтоб лишние регистры не использовал.
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
[an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive]

Отправлено Andrew Buckin 26 сентября 2001 г. 01:03

Кто подскажет. Как объяснить Keil чтоб лишние регистры не использовал.
Мой кусок
#pragma asm
clr A
mov R0,#7Fh
Cler: mov @R0,A
djnz R0,Cler
#pragma endasm

Пример 1
Кусок на С
c = 0x7f;
do
{*c = 0; c--;}
while(c);

Асемблер
MOV R0,#07FH
C13: CLR A
MOV @R0,A
DEC R0
MOV A,R0
JNZ C13

Пример 2
for(c = 0x7f; c != 0; --c) *c = 0x00;

MOV R0,#07FH
C14: MOV A,R0
JZ C15
CLR A
MOV @R0,A
DEC R0
SJMP C14
С15:
Пример 3
c = 0x7f;
while(c)
{*c = 0x00; c--;}

MOV R0,#07FH
C17: MOV A,R0
JZ C18
CLR A
MOV @R0,A
DEC R0
SJMP C17
C18:


Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru