[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]

Отправлено Elektronik 08 июня 2002 г. 17:19
В ответ на: Судя по тому, как Кейл с битами работает, он в Ассемблере и 8051 теоретик. Поэтому искать в нем учета всех аппаратных тонкостей - бесполезно. Хорошо хоть volatile сделал :-) отправлено ValterG 08 июня 2002 г. 16:02

Keil очень качественный код с языка C дает, а с битовыми переменными вообще уникально хорошо.


1 #include "AT89X52.H"
2 void main (void)
3 {
4 1 if(CY == 1)
5 1 {
6 2 P1_0 = 0;
7 2 } else
8 1 {
9 2 P1_0 = 1;
10 2 }
11 1 P1_1 = ACC & 0x40;
12 1 P1_2 = ~P1_1;
13 1 }
C51 COMPILER V6.21 AAA 06/08/2002 17:12:17 PAGE 2

ASSEMBLY LISTING OF GENERATED OBJECT CODE


; FUNCTION main (BEGIN)
; SOURCE LINE # 2
; SOURCE LINE # 3
; SOURCE LINE # 4
0000 30D704 JNB CY,?C0001
; SOURCE LINE # 5
; SOURCE LINE # 6
0003 C290 CLR P1_0
; SOURCE LINE # 7
0005 8002 SJMP ?C0002
0007 ?C0001:
; SOURCE LINE # 8
; SOURCE LINE # 9
0007 D290 SETB P1_0
; SOURCE LINE # 10
0009 ?C0002:
; SOURCE LINE # 11
0009 A2E6 MOV C,ACC.6
000B 9291 MOV P1_1,C
; SOURCE LINE # 12
000D A291 MOV C,P1_1
000F B3 CPL C
0010 9292 MOV P1_2,C
; SOURCE LINE # 13


Напишите в ассемблере хотя бы на строчку короче, а потом брешите языком на всю страну.

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

Ответы



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

E-mail: info@telesys.ru