Display_code: cpi button, LowE_str brne check1b subi sum_low,LOW(lowE_TH8) ;Subtract low bytes sbci sum_hi,HIGH(lowE_TH8) ;Sub high byte with carry sbrc sum_hi, 7 ; checking MSB for sign ldi temp2, 0b00000001 sbrc sum_hi, 7 ; checking MSB for sign rjmp display_out subi sum_low,LOW(lowE_TH7) ;Subtract low bytes sbci sum_hi,HIGH(lowE_TH7) ;Sub high byte with carry sbrc sum_hi, 7 ; checking MSB for sign ldi temp2, 0b00000010 sbrc sum_hi, 7 ; checking MSB for sign rjmp display_out subi sum_low,LOW(lowE_TH6) ;Subtract low bytes sbci sum_hi,HIGH(lowE_TH6) ;Sub high byte with carry sbrc sum_hi, 7 ; checking MSB for sign ldi temp2, 0b00000100 sbrc sum_hi, 7 ; checking MSB for sign rjmp display_out subi sum_low,LOW(lowE_TH5) ;Subtract low bytes sbci sum_hi,HIGH(lowE_TH5) ;Sub high byte with carry sbrc sum_hi, 7 ; checking MSB for sign ldi temp2, 0b00001000 sbrc sum_hi, 7 ; checking MSB for sign rjmp display_out subi sum_low,LOW(lowE_TH4) ;Subtract low bytes sbci sum_hi,HIGH(lowE_TH4) ;Sub high byte with carry sbrc sum_hi, 7 ; checking MSB for sign ldi temp2, 0b00011000 sbrc sum_hi, 7 ; checking MSB for sign rjmp display_out subi sum_low,LOW(lowE_TH3) ;Subtract low bytes sbci sum_hi,HIGH(lowE_TH3) ;Sub high byte with carry sbrc sum_hi, 7 ; checking MSB for sign ldi temp2, 0b00010000 sbrc sum_hi, 7 ; checking MSB for sign rjmp display_out subi sum_low,LOW(lowE_TH2) ;Subtract low bytes sbci sum_hi,HIGH(lowE_TH2) ;Sub high byte with carry sbrc sum_hi, 7 ; checking MSB for sign ldi temp2, 0b00100000 sbrc sum_hi, 7 ; checking MSB for sign rjmp display_out subi sum_low,LOW(lowE_TH1) ;Subtract low bytes sbci sum_hi,HIGH(lowE_TH1) ;Sub high byte with carry sbrc sum_hi, 7 ; checking MSB for sign ldi temp2, 0b01000000 sbrc sum_hi, 7 ; checking MSB for sign rjmp display_out ldi temp2, 0b10000000 rjmp display_out check1b: cpi button, A_str brne check2b subi sum_low,LOW(A_TH8) ;Subtract low bytes sbci sum_hi,HIGH(A_TH8) ;Sub high byte with carry sbrc sum_hi, 7 ; checking MSB for sign ldi temp2, 0b00000001 sbrc sum_hi, 7 ; checking MSB for sign rjmp display_out subi sum_low,LOW(A_TH7) ;Subtract low bytes sbci sum_hi,HIGH(A_TH7) ;Sub high byte with carry sbrc sum_hi, 7 ; checking MSB for sign ldi temp2, 0b00000010 sbrc sum_hi, 7 ; checking MSB for sign rjmp display_out subi sum_low,LOW(A_TH6) ;Subtract low bytes sbci sum_hi,HIGH(A_TH6) ;Sub high byte with carry sbrc sum_hi, 7 ; checking MSB for sign ldi temp2, 0b00000100 sbrc sum_hi, 7 ; checking MSB for sign rjmp display_out subi sum_low,LOW(A_TH5) ;Subtract low bytes sbci sum_hi,HIGH(A_TH5) ;Sub high byte with carry sbrc sum_hi, 7 ; checking MSB for sign ldi temp2, 0b00001000 sbrc sum_hi, 7 ; checking MSB for sign rjmp display_out subi sum_low,LOW(A_TH4) ;Subtract low bytes sbci sum_hi,HIGH(A_TH4) ;Sub high byte with carry sbrc sum_hi, 7 ; checking MSB for sign ldi temp2, 0b00011000 sbrc sum_hi, 7 ; checking MSB for sign rjmp display_out subi sum_low,LOW(A_TH3) ;Subtract low bytes sbci sum_hi,HIGH(A_TH3) ;Sub high byte with carry sbrc sum_hi, 7 ; checking MSB for sign ldi temp2, 0b00010000 sbrc sum_hi, 7 ; checking MSB for sign rjmp display_out subi sum_low,LOW(A_TH2) ;Subtract low bytes sbci sum_hi,HIGH(A_TH2) ;Sub high byte with carry sbrc sum_hi, 7 ; checking MSB for sign ldi temp2, 0b00100000 sbrc sum_hi, 7 ; checking MSB for sign rjmp display_out subi sum_low,LOW(A_TH1) ;Subtract low bytes sbci sum_hi,HIGH(A_TH1) ;Sub high byte with carry sbrc sum_hi, 7 ; checking MSB for sign ldi temp2, 0b01000000 sbrc sum_hi, 7 ; checking MSB for sign rjmp display_out ldi temp2, 0b10000000 rjmp display_out check2b: cpi button, D_str brne check3b subi sum_low,LOW(D_TH8) ;Subtract low bytes sbci sum_hi,HIGH(D_TH8) ;Sub high byte with carry sbrc sum_hi, 7 ; checking MSB for sign ldi temp2, 0b00000001 sbrc sum_hi, 7 ; checking MSB for sign rjmp display_out subi sum_low,LOW(D_TH7) ;Subtract low bytes sbci sum_hi,HIGH(D_TH7) ;Sub high byte with carry sbrc sum_hi, 7 ; checking MSB for sign ldi temp2, 0b00000010 sbrc sum_hi, 7 ; checking MSB for sign rjmp display_out subi sum_low,LOW(D_TH6) ;Subtract low bytes sbci sum_hi,HIGH(D_TH6) ;Sub high byte with carry sbrc sum_hi, 7 ; checking MSB for sign ldi temp2, 0b00000100 sbrc sum_hi, 7 ; checking MSB for sign rjmp display_out subi sum_low,LOW(D_TH5) ;Subtract low bytes sbci sum_hi,HIGH(D_TH5) ;Sub high byte with carry sbrc sum_hi, 7 ; checking MSB for sign ldi temp2, 0b00001000 sbrc sum_hi, 7 ; checking MSB for sign rjmp display_out subi sum_low,LOW(D_TH4) ;Subtract low bytes sbci sum_hi,HIGH(D_TH4) ;Sub high byte with carry sbrc sum_hi, 7 ; checking MSB for sign ldi temp2, 0b00011000 sbrc sum_hi, 7 ; checking MSB for sign rjmp display_out subi sum_low,LOW(D_TH3) ;Subtract low bytes sbci sum_hi,HIGH(D_TH3) ;Sub high byte with carry sbrc sum_hi, 7 ; checking MSB for sign ldi temp2, 0b00010000 sbrc sum_hi, 7 ; checking MSB for sign rjmp display_out subi sum_low,LOW(D_TH2) ;Subtract low bytes sbci sum_hi,HIGH(D_TH2) ;Sub high byte with carry sbrc sum_hi, 7 ; checking MSB for sign ldi temp2, 0b00100000 sbrc sum_hi, 7 ; checking MSB for sign rjmp display_out subi sum_low,LOW(D_TH1) ;Subtract low bytes sbci sum_hi,HIGH(D_TH1) ;Sub high byte with carry sbrc sum_hi, 7 ; checking MSB for sign ldi temp2, 0b01000000 sbrc sum_hi, 7 ; checking MSB for sign rjmp display_out ldi temp2, 0b10000000 rjmp display_out check3b: cpi button, G_str brne check4b subi sum_low,LOW(G_TH8) ;Subtract low bytes sbci sum_hi,HIGH(G_TH8) ;Sub high byte with carry sbrc sum_hi, 7 ; checking MSB for sign ldi temp2, 0b00000001 sbrc sum_hi, 7 ; checking MSB for sign rjmp display_out subi sum_low,LOW(G_TH7) ;Subtract low bytes sbci sum_hi,HIGH(G_TH7) ;Sub high byte with carry sbrc sum_hi, 7 ; checking MSB for sign ldi temp2, 0b00000010 sbrc sum_hi, 7 ; checking MSB for sign rjmp display_out subi sum_low,LOW(G_TH6) ;Subtract low bytes sbci sum_hi,HIGH(G_TH6) ;Sub high byte with carry sbrc sum_hi, 7 ; checking MSB for sign ldi temp2, 0b00000100 sbrc sum_hi, 7 ; checking MSB for sign rjmp display_out subi sum_low,LOW(G_TH5) ;Subtract low bytes sbci sum_hi,HIGH(G_TH5) ;Sub high byte with carry sbrc sum_hi, 7 ; checking MSB for sign ldi temp2, 0b00001000 sbrc sum_hi, 7 ; checking MSB for sign rjmp display_out subi sum_low,LOW(G_TH4) ;Subtract low bytes sbci sum_hi,HIGH(G_TH4) ;Sub high byte with carry sbrc sum_hi, 7 ; checking MSB for sign ldi temp2, 0b00011000 sbrc sum_hi, 7 ; checking MSB for sign rjmp display_out subi sum_low,LOW(G_TH3) ;Subtract low bytes sbci sum_hi,HIGH(G_TH3) ;Sub high byte with carry sbrc sum_hi, 7 ; checking MSB for sign ldi temp2, 0b00010000 sbrc sum_hi, 7 ; checking MSB for sign rjmp display_out subi sum_low,LOW(G_TH2) ;Subtract low bytes sbci sum_hi,HIGH(G_TH2) ;Sub high byte with carry sbrc sum_hi, 7 ; checking MSB for sign ldi temp2, 0b00100000 sbrc sum_hi, 7 ; checking MSB for sign rjmp display_out subi sum_low,LOW(G_TH1) ;Subtract low bytes sbci sum_hi,HIGH(G_TH1) ;Sub high byte with carry sbrc sum_hi, 7 ; checking MSB for sign ldi temp2, 0b01000000 sbrc sum_hi, 7 ; checking MSB for sign rjmp display_out ldi temp2, 0b10000000 rjmp display_out check4b: cpi button, B_str brne check5b subi sum_low,LOW(B_TH8) ;Subtract low bytes sbci sum_hi,HIGH(B_TH8) ;Sub high byte with carry sbrc sum_hi, 7 ; checking MSB for sign ldi temp2, 0b00000001 sbrc sum_hi, 7 ; checking MSB for sign rjmp display_out subi sum_low,LOW(B_TH7) ;Subtract low bytes sbci sum_hi,HIGH(B_TH7) ;Sub high byte with carry sbrc sum_hi, 7 ; checking MSB for sign ldi temp2, 0b00000010 sbrc sum_hi, 7 ; checking MSB for sign rjmp display_out subi sum_low,LOW(B_TH6) ;Subtract low bytes sbci sum_hi,HIGH(B_TH6) ;Sub high byte with carry sbrc sum_hi, 7 ; checking MSB for sign ldi temp2, 0b00000100 sbrc sum_hi, 7 ; checking MSB for sign rjmp display_out subi sum_low,LOW(B_TH5) ;Subtract low bytes sbci sum_hi,HIGH(B_TH5) ;Sub high byte with carry sbrc sum_hi, 7 ; checking MSB for sign ldi temp2, 0b00001000 sbrc sum_hi, 7 ; checking MSB for sign rjmp display_out subi sum_low,LOW(B_TH4) ;Subtract low bytes sbci sum_hi,HIGH(B_TH4) ;Sub high byte with carry sbrc sum_hi, 7 ; checking MSB for sign ldi temp2, 0b00011000 sbrc sum_hi, 7 ; checking MSB for sign rjmp display_out subi sum_low,LOW(B_TH3) ;Subtract low bytes sbci sum_hi,HIGH(B_TH3) ;Sub high byte with carry sbrc sum_hi, 7 ; checking MSB for sign ldi temp2, 0b00010000 sbrc sum_hi, 7 ; checking MSB for sign rjmp display_out subi sum_low,LOW(B_TH2) ;Subtract low bytes sbci sum_hi,HIGH(B_TH2) ;Sub high byte with carry sbrc sum_hi, 7 ; checking MSB for sign ldi temp2, 0b00100000 sbrc sum_hi, 7 ; checking MSB for sign rjmp display_out subi sum_low,LOW(B_TH1) ;Subtract low bytes sbci sum_hi,HIGH(B_TH1) ;Sub high byte with carry sbrc sum_hi, 7 ; checking MSB for sign ldi temp2, 0b01000000 sbrc sum_hi, 7 ; checking MSB for sign rjmp display_out ldi temp2, 0b10000000 rjmp display_out check5b: cpi button, HiE_str brne check_doneb subi sum_low,LOW(hiE_TH8) ;Subtract low bytes sbci sum_hi,HIGH(hiE_TH8) ;Sub high byte with carry sbrc sum_hi, 7 ; checking MSB for sign ldi temp2, 0b00000001 sbrc sum_hi, 7 ; checking MSB for sign rjmp display_out subi sum_low,LOW(hiE_TH7) ;Subtract low bytes sbci sum_hi,HIGH(hiE_TH7) ;Sub high byte with carry sbrc sum_hi, 7 ; checking MSB for sign ldi temp2, 0b00000010 sbrc sum_hi, 7 ; checking MSB for sign rjmp display_out subi sum_low,LOW(hiE_TH6) ;Subtract low bytes sbci sum_hi,HIGH(hiE_TH6) ;Sub high byte with carry sbrc sum_hi, 7 ; checking MSB for sign ldi temp2, 0b00000100 sbrc sum_hi, 7 ; checking MSB for sign rjmp display_out subi sum_low,LOW(hiE_TH5) ;Subtract low bytes sbci sum_hi,HIGH(hiE_TH5) ;Sub high byte with carry sbrc sum_hi, 7 ; checking MSB for sign ldi temp2, 0b00001000 sbrc sum_hi, 7 ; checking MSB for sign rjmp display_out subi sum_low,LOW(hiE_TH4) ;Subtract low bytes sbci sum_hi,HIGH(hiE_TH4) ;Sub high byte with carry sbrc sum_hi, 7 ; checking MSB for sign ldi temp2, 0b00011000 sbrc sum_hi, 7 ; checking MSB for sign rjmp display_out subi sum_low,LOW(hiE_TH3) ;Subtract low bytes sbci sum_hi,HIGH(hiE_TH3) ;Sub high byte with carry sbrc sum_hi, 7 ; checking MSB for sign ldi temp2, 0b00010000 sbrc sum_hi, 7 ; checking MSB for sign rjmp display_out subi sum_low,LOW(hiE_TH2) ;Subtract low bytes sbci sum_hi,HIGH(hiE_TH2) ;Sub high byte with carry sbrc sum_hi, 7 ; checking MSB for sign ldi temp2, 0b00100000 sbrc sum_hi, 7 ; checking MSB for sign rjmp display_out subi sum_low,LOW(hiE_TH1) ;Subtract low bytes sbci sum_hi,HIGH(hiE_TH1) ;Sub high byte with carry sbrc sum_hi, 7 ; checking MSB for sign ldi temp2, 0b01000000 sbrc sum_hi, 7 ; checking MSB for sign rjmp display_out ldi temp2, 0b10000000 rjmp display_out check_doneb: display_out: com temp2 out PORTB, temp2 ret