; Bit NumBelow180 is set when NumberHNumberL<180 and cleared if NumberHNumberL>180
Angle_Display: CLR C ; 01h 68h = 360d
MOV A, NumberH
CJNE A, #01h, Not_1 ; #01h
NOP ; NumberH = 01h
SJMP Check_Cont3
Not_1: JC Check_Cont1 ; NumberH < 01h
LJMP Set_Number ; NumberH > 01h
Check_Cont1: CLR C
MOV A, NumberL
CJNE A, #68h, Not_68 ; #68h
CLR C ; Number = 68h
SJMP Check_Cont2
Not_68: JC Check_Cont2 ; NumberL < 68h
Check_180: CLR C ; NumberL > 68h
MOV A, NumberL
CJNE A, #0B4h, Not_B4
CLR C ; NumberL = 180d
SJMP Check_Cont3
Not_B4: JC Check_Cont2 ; NumberL < 180d
More_180: CLR NumBelow180 ; NumberL > 180d
SJMP Check_Cont3
Check_Cont2: SETB NumBelow180
MOV Tmp0, #0B4h ; Number=180-Number Sign=-
MOV Tmp1, #00h
MOV Op0, NumberL
MOV Op1, #00h
SJMP Check_Cont4
Set_Number: MOV NumberL, #68h
MOV NumberH, #01h
Check_Cont3: MOV Tmp0, NumberL ; Number=Number-180 Sign=+
MOV Tmp1, NumberH
MOV Op0, #0B4h
MOV Op1, #00h
Check_Cont4: CLR C
MOV A, Tmp0
SUBB A, Op0
MOV NumberL, A
MOV A, Tmp1
SUBB A, Op1
MOV NumberH, A
RET