Вот, я только что специально проверил (Хотя именно такими приёмами программирования я пользовался редко)
Исходник:
/*-------------------------------------*/
/* 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