ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
21 ноября
1350258 Топик полностью
Tyмблep (12.09.2023 15:22, просмотров: 511) ответил ЫЫyкпy на Именно типа бит у IAR нет, за ненадобностью, всё это прекрасно описывается средствами С, как битовые поля. Но про биты периферии и битовые переменные в памяти он знает и машинные команды для работы с битами когда это возможно генерирует.
Вот, я только что специально проверил 

(Хотя именно такими приёмами программирования я пользовался редко)

Исходник:

/*-------------------------------------*/

/* 12.09.2023 */

/* file testiar.c */

/*-------------------------------------*/

#include "c:\cross\c51b\include\io51.h"

/*-------------------------------------*/

void main (void)

{

char b=0;

bit t=0;

for(;;)

{

if((t==1)||(b==1)) break;

}

}

/*-------------------------------------*/

Всё собралось.

Листинг:

NAME testiar(16)

RSEG CODE(0)

PUBLIC main

$DEFFN main(1,0,0,0,0,0,0,0)

EXTERN ?CL8051C_4_02_L17

RSEG CODE

; 1. /*-------------------------------------*/

; 2. /* 12.09.2023 */

; 3. /* file testiar.c */

; 4. /*-------------------------------------*/

; 5. #include "c:\cross\c51b\include\io51.h"

; 6. /*-------------------------------------*/

; 7. void main (void)

; 8. {

main:

; 9. char b=0;

MOV $LOCBD main,#0

?0001:

; 10. bit t=0;

; 11. for(;;)

; 12. {

; 13. if((t==1)||(b==1)) break;

JB 32.0,?0002

MOV A,$LOCBD main

DEC A

JNZ ?0003

?0004:

?0005:

?0002:

SJMP ?0000

?0003:

; 14. }

; 15. }

SJMP ?0001

?0000:

RET

; 16. /*-------------------------------------*/

; 17.

END