Advertisement
pat35

labP3

May 6th, 2018
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. D16BY8: CLR A
  2.     CJNE    A,DIVISOR,OK
  3.  
  4. DIVIDE_BY_ZERO:
  5.     SETB    OV
  6.     RET
  7.  
  8. OK: MOV QUOTIENT,A
  9.     MOV R4,#8
  10.     MOV R5,DIVIDEND
  11.     MOV R6,DIVIDEND+1
  12.     MOV R7,A
  13.  
  14.     MOV A,R6
  15.     MOV B,DIVISOR
  16.     DIV AB
  17.     MOV QUOTIENT+1,A
  18.     MOV R6,B
  19.  
  20. TIMES_TWO:
  21.     MOV A,R5
  22.     RLC A
  23.     MOV R5,A
  24.     MOV A,R6
  25.     RLC A
  26.     MOV R6,A
  27.     MOV A,R7
  28.     RLC A
  29.     MOV R7,A
  30.  
  31. COMPARE:
  32.     CJNE    A,#0,DONE
  33.     MOV A,R6
  34.     CJNE    A,DIVISOR,DONE
  35.     CJNE    R5,#0,DONE
  36. DONE:   CPL C
  37.  
  38. BUILD_QUOTIENT:
  39.     MOV A,QUOTIENT
  40.     RLC A
  41.     MOV QUOTIENT,A
  42.     JNB ACC.0,LOOP
  43.  
  44. SUBTRACT:
  45.     MOV A,R6
  46.     SUBB    A,DIVISOR
  47.     MOV R6,A
  48.     MOV A,R7
  49.     SUBB    A,#0
  50.     MOV R7,A
  51.  
  52. LOOP:   DJNZ    R4,TIMES_TWO
  53.  
  54.     MOV A,DIVISOR
  55.     MOV B,QUOTIENT
  56.     MUL AB
  57.     MOV B,A
  58.     MOV A,DIVIDEND
  59.     SUBB    A,B
  60.     MOV REMAINDER,A
  61.     CLR OV
  62.     RET
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69. END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement