022C C2 7C
clr errtemp; попередній скидання прапора помилки 575 022E
576 022E 20 7A 05
jb pos, positivs 577
; Негативна температура 578 0231 75 F0 28
mov b, # tempmin 579 0234 80 03
sjmp limittest 580 0236
581
; Позитивна температура 582 0236
positivs: 583 0236 75 F0 32
mov b, # tempmax 584 0239
585
; Перевірка вхожднія в задані межі 586 0239
limittest: 587 0239 95 F0 ​​p>
subb a, b 588 023B 40 02
jc exitlim 589 023D D2 7C
setb errtemp 590 023F
591 023F
exitlim: 592 023F D0 F0 ​​p>
pop b 593 0241 D0 E0
pop acc 594 0243 22
ret 595
; 596
597
598 0244
. include math.asm 599
; Файл math.asm процедури випоненія арифметичних операцій з трехбайтнимі 600
; числами 601
602
; Процедура зсуву вліво через прапор перенесення 603
; Вхід: R0-вказівник на трехбайтное число 604
; Вихід: R0-вказівник на результат 605
; 606 0244
607 0244
RLC_3B: 608 0244 C0 00
push 0 609 0246 C0 07
push 7 610 0248 C0 E0
push acc 611 024A
612
; Зрушення числа побайтно від молодшого до старшого 613 024A 7F 03
mov r7, # 3 614 024C
RL: 615 024C E6
mov a, @ r0 616 024D 33
rlc a 617 024E F6
mov @ r0, a 618 024F 08
inc r0 619 0250 DF FA
djnz r7, RL 620 0252
621 0252 D0 E0
pop acc 622 0254 D0 07
pop 7 623 0256 D0 00
pop 0 624 0258 22
ret 625
; 626 0259
627 0259
628
629
; Процедура зсуву вправо через прапор переноса630
; Вхід: R0-вказівник на трехбайтное число 631
; Вихід: R0-вказівник на результат 632
; 633 0259
634 0259
RRC_3B: 635 0259 C0 00
push 0636 025B C0 07