[an error occurred while processing this directive] [an error occurred while processing this directive]
Ответ: И еще раз пожалуйста (+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
[an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive]

Отправлено Юрий 23 ноября 2001 г. 18:12
В ответ на: Ответ: но это же другой цикл... тут проверка "<" делается в конце цикла... отправлено Glut 23 ноября 2001 г. 14:39

void main(void)
{
uchar xdata * xdata n;
n=0;
while(1)
{
if(n>=255) break;
if((uint)(++n)>>8); // Это правда через одно место, зато порядок на ASMе
}
}

получаем:
; FUNCTION main (BEGIN)
; SOURCE LINE # 46
; SOURCE LINE # 47
; SOURCE LINE # 49
0000 E4 CLR A
0001 900000 R MOV DPTR,#n
0004 F0 MOVX @DPTR,A
0005 A3 INC DPTR
0006 F0 MOVX @DPTR,A
0007 ?C0001:
; SOURCE LINE # 50
; SOURCE LINE # 51
; SOURCE LINE # 52
0007 900000 R MOV DPTR,#n
000A E0 MOVX A,@DPTR
000B FE MOV R6,A
000C A3 INC DPTR
000D E0 MOVX A,@DPTR
000E C3 CLR C
000F 94FF SUBB A,#0FFH
0011 EE MOV A,R6
0012 9400 SUBB A,#00H
0014 500C JNC ?C0002
0016 ?C0003:
; SOURCE LINE # 53
0016 900000 R MOV DPTR,#n
0019 E4 CLR A
001A 75F001 MOV B,#01H
001D 120000 E LCALL ?C?IILDX
; SOURCE LINE # 54
0020 80E5 SJMP ?C0001
0022 ?C0002:

правда без ненужного mov r7,a

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

Ответы



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

E-mail: info@telesys.ru