home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 15 / 15.iso / s / s235 / 1.ddi / NBINT.ASM < prev    next >
Encoding:
Assembly Source File  |  1988-09-06  |  4.4 KB  |  390 lines

  1. ;
  2. ;THIS IS THE FILE OF NBINT.ASM
  3. ;
  4. ;
  5. NIADD:    MOV    A,R0        ; THIS IS SUBROUTING 3-1
  6.     MOV    R4,A
  7.     MOV    A,R3
  8.     MOV    R7,A
  9.     CLR    C
  10. SA20:    MOV    A,@R0
  11.     ADDC    A,@R1
  12.     MOV    @R0,A
  13.     INC    R0
  14.     INC    R1
  15.     DJNZ    R7,SA20
  16.     CLR    A
  17.     MOV    ACC.0,C
  18.     MOV    @R0,A
  19.     INC    R3
  20. SA21:    MOV    A,R4
  21.     MOV    R0,A
  22.     RET
  23. ;
  24. ;
  25. ;
  26. NISUB:    MOV    A, R0        ; THIS IS SUBROUTING 3-2
  27.     MOV    R4, A
  28.     MOV    A, R3
  29.     MOV    R7, A
  30.     CLR    C
  31. SB20:    MOV    A,@R0
  32.     SUBB    A,@R1
  33.     MOV    @R0, A
  34.     INC    R0
  35.     INC    R1
  36.     DJNZ    R7,SB20
  37.     MOV    A,R4
  38.     MOV    R0,A
  39.     RET
  40. ;
  41. ;
  42. ;
  43. ;
  44. ;
  45. ;
  46. NIMUL:    MOV    A,R0        ; THIS IS SUBROUTING 3-3
  47.     MOV    R4,A
  48.     MOV    A,R3
  49.     MOV    R7,A
  50.     MOV    A,R1
  51.     MOV    R5,A
  52. SE20:    CLR    C
  53.     SUBB    A,R7
  54.     MOV    R6,A
  55.     MOV    R1,A
  56.     LCALL    SUBD4
  57.     MOV    A,R7
  58.     ADD    A,R7
  59.     MOV    R2,A
  60.     MOV    B,#04H
  61.     MUL    AB
  62. SE201:    PUSH    ACC
  63.     MOV    A,R6
  64.     MOV    R1,A
  65.     MOV    A,R2
  66.     MOV    R3,A
  67.     LCALL    SUBE4
  68.     JNC    SE203
  69.     MOV    A,R7
  70.     MOV    R3,A
  71.     MOV    A,R6
  72.     MOV    R0,A
  73.     MOV    A,R4
  74.     MOV    R1,A
  75.     CLR    C
  76. SE202:    MOV    A,@R0
  77.     ADDC    A,@R1
  78.     MOV    @R0,A
  79.     INC    R0
  80.     INC    R1
  81.     DJNZ    R3,SE202
  82.     JNC    SE203
  83.     MOV    A,R5
  84.     MOV    R1,A
  85.     MOV    A,R7
  86.     MOV    R3,A
  87. SE204:    MOV    A,@R1
  88.     ADDC    A,#00H
  89.     MOV    @R1,A
  90.     JNC    SE203
  91.     INC    R1
  92.     DJNZ    R3,SE204
  93. SE203:    POP    ACC
  94.     DEC    A
  95.     JNZ    SE201
  96.     MOV    A,R2
  97.     MOV    R3,A
  98.     MOV    A,R6
  99.     MOV    R0,A
  100.     RET
  101. SUBD4:    CLR    A        ;N BYTES  CLR
  102. SD40:    MOV    @R1,A
  103.     INC    R1
  104.     DJNZ    R3,SD40
  105.     RET
  106. SUBE4:    CLR    C
  107. SE40:    MOV    A,@R1
  108.     RLC    A
  109.     MOV    @R1,A
  110.     INC    R1
  111.     DJNZ    R3,SE40
  112.     RET
  113. ;
  114. ;
  115. ;
  116. ;
  117. ;
  118. ;
  119. NINORM: SETB    C        ;; THIS IS SUBROUTING 3-4
  120. SC40:    MOV    A,@R1
  121.     CPL    A
  122.     ADDC    A,#00H
  123.     MOV    @R1,A
  124.     INC    R1
  125.     DJNZ    R3,SC40
  126.     RET
  127. ;
  128. ;
  129. ;
  130. ;
  131. ;
  132. SNIMUL: MOV    A,R0        ; THIS IS SUBROUTING 3-5
  133.     MOV    R4,A
  134.     MOV    A,R1
  135.     MOV    R5,A
  136.     MOV    A,R3
  137.     MOV    R7,A
  138.     DEC    A
  139.     MOV    R6,A
  140.     ADD    A,R4
  141.     MOV    R1,A
  142.     MOV    A,@R1
  143.     ANL    A,#80H
  144.     MOV    R2,A
  145.     JZ    SF21            ; < 0 SF21
  146.     SETB    C
  147. SF23:    MOV    A,@R0
  148.     CPL    A
  149.     ADDC    A,#00H
  150.     MOV    @R0,A
  151.     INC    R0
  152.     DJNZ    R3 ,SF23
  153. SF21:    MOV    A,R5
  154.     ADD    A,R6
  155.     MOV    R1,A
  156.     MOV    A,@R1
  157.     ANL    A,#80H
  158.     MOV    R6,A
  159.     JZ    SF22
  160.     MOV    A,R5
  161.     MOV    R1,A
  162.     MOV    A,R7
  163.     MOV    R3,A
  164.     SETB    C
  165. SF24:    MOV    A,@R1
  166.     CPL    A
  167.     ADDC    A,#00H
  168.     MOV    @R1,A
  169.     INC    R1
  170.     DJNZ    R3,SF24
  171. SF22:    MOV    A,R2
  172.     XRL    A,R6        ;SIGN > STATION
  173.     PUSH    A
  174.     MOV    A,R4
  175.     MOV    R0,A
  176.     MOV    A,R7
  177.     MOV    R3,A
  178.     MOV    A,R5
  179.     MOV    R1,A
  180.     LCALL    SE20
  181.     POP    ACC
  182.     JZ    SF20
  183.     MOV    A,R2
  184.     MOV    R3,A
  185.     MOV    A,R0
  186.     MOV    R1,A
  187.     LCALL    NINORM
  188. SF20:    MOV    A,R2
  189.     MOV    R3,A
  190.     RET
  191. ;
  192. ;
  193. ;
  194. ;
  195. ;
  196. ;
  197. ;
  198. NIZERO: MOV    A,@R1        ; THIS IS SUBROUTING 3-6
  199.     JNZ    SF40
  200.     INC    R1
  201.     DJNZ    R3,NIZERO
  202. SF40:    RET
  203. ;
  204. ;
  205. ;
  206. NIDIV1: MOV    A,R0        ; THIS IS SUBROUTING 3-7
  207.     ADD    A,R7
  208.     MOV    R6,A
  209.     MOV    R1,A
  210.     LCALL    SUBD4
  211.     MOV    A,R7
  212.     ADD    A,R7
  213.     MOV    R2,A
  214.     MOV    B,#04H
  215.     MUL    AB
  216. SA401:    PUSH    ACC
  217.     CLR    C
  218.     MOV    A,R2
  219.     MOV    R3,A
  220.     MOV    A,R4
  221.     MOV    R1,A
  222.     LCALL    SUBE4
  223.     MOV    A,R6
  224.     MOV    R0,A
  225.     MOV    A,R5
  226.     MOV    R1,A
  227.     MOV    A,R7
  228.     MOV    R3,A
  229.     CLR    C
  230. SA402:    MOV    A,@R0
  231.     SUBB    A,@R1
  232.     PUSH    ACC
  233.     INC    R0
  234.     INC    R1
  235.     DJNZ    R3,SA402
  236.     MOV    A,R7
  237.     MOV    R3,A
  238.     JC    SA403
  239.     MOV    A,R4
  240.     MOV    R0,A
  241.     INC    @R0
  242.     MOV    A,R6
  243.     ADD    A,R7
  244.     DEC    A
  245.     MOV    R0,A
  246. SA404:    POP    ACC
  247.     MOV    @R0,A
  248.     DEC    R0
  249.     DJNZ    R3,SA404
  250.     SJMP    SA405
  251. SA403:    POP    ACC
  252.     DJNZ    R3,SA403
  253. SA405:    POP    ACC
  254.     DEC    A
  255.     JNZ    SA401
  256.     MOV    A,R6
  257.     ADD    A,R7
  258.     DEC    A
  259.     MOV    R0,A
  260.     MOV    R2,A
  261.     MOV    A,@R0
  262.     RLC    A
  263.     JC    SA407
  264.     MOV    A,R6
  265.     MOV    R1,A
  266.     MOV    A,R7
  267.     MOV    R3,A
  268.     LCALL    SUBE4
  269.     MOV    A,R2
  270.     MOV    R0,A
  271.     MOV    A,R7
  272.     MOV    R3,A
  273.     ADD    A,R5
  274.     DEC    A
  275.     MOV    R1,A
  276. SA406:    CLR    C
  277.     MOV    A,@R0
  278.     SUBB    A,@R1
  279.     JC    SA409
  280.     JNZ    SA407
  281.     DEC    R0
  282.     DEC    R1
  283.     DJNZ    R3,SA406
  284. SA407:    MOV    A,R4
  285.     MOV    R1,A
  286.     MOV    A,R7
  287.     MOV    R3,A
  288. SA408:    MOV    A,@R1
  289.     ADD    A,#01H
  290.     MOV    @R1,A
  291.     JNC    SA409
  292.     INC    R1
  293.     DJNZ    R7,SA408
  294. SA409:    MOV    A,R4
  295.     MOV    R0,A
  296.     RET
  297. ;
  298. ;
  299. ;
  300. ;
  301. ;
  302. NIDIV2: MOV    A,R0        ; THIS IS SUBROUTING 3-8
  303.     MOV    R4,A
  304.     MOV    A,R1
  305.     MOV    R5,A
  306.     MOV    A,R3
  307.     MOV    R7,A
  308.     LCALL    NIZERO
  309.     JZ    SA41
  310.     MOV    A,R5
  311.     MOV    R1,A
  312.     MOV    A,R7
  313.     MOV    R3,A
  314.     LCALL    NIDIV1
  315.     MOV    A,#0FFH
  316.     MOV    A,R7
  317.     MOV    R3,A
  318. SA41:    RET
  319. ;
  320. ;
  321. ;
  322. ;
  323. ;
  324. SNIDIV: MOV    A,R0        ; THIS IS SUBROUTING 3-9
  325.     MOV    R4,A
  326.     MOV    A,R1
  327.     MOV    R5,A
  328.     MOV    A,R3
  329.     MOV    R7,A
  330.     LCALL    NIZERO
  331.     JZ    SB41
  332.     MOV    A,R7
  333.     MOV    R3,A
  334.     DEC    A
  335.     MOV    R6,A
  336.     ADD    A,R4
  337.     MOV    R1,A
  338.     MOV    A,@R1
  339.     ANL    A,#80H
  340.     MOV    R2,A
  341.     JZ    SB42
  342.     SETB    C
  343. SB43:    MOV    A,@R0
  344.     CPL    A
  345.     ADDC    A,#00H
  346.     MOV    @R0,A
  347.     INC    R0
  348.     DJNZ    R3,SB43
  349. SB42:    MOV    A,R5
  350.     MOV    R0,A
  351.     ADD    A,R6
  352.     MOV    R1,A
  353.     MOV    A,@R1
  354.     ANL    A,#80H
  355.     MOV    R6,A
  356.     JZ    SB44
  357.     MOV    A,R7
  358.     MOV    R3,A
  359.     SETB    C
  360. SB45:    MOV    A,@R0
  361.     CPL    A
  362.     ADDC    A,#00H
  363.     MOV    @R0,A
  364.     INC    R0
  365.     DJNZ    R3,SB45
  366. SB44:    MOV    A,R6
  367.     XRL    A,R2
  368.     PUSH    ACC
  369.     MOV    A,R4
  370.     MOV    R0,A
  371.     MOV    A,R5
  372.     MOV    R1,A
  373.     MOV    A,R7
  374.     MOV    R3,A
  375.     LCALL    NIDIV1
  376.     POP    ACC
  377.     JZ    SB40
  378.     MOV    A,R0
  379.     MOV    R1,A
  380.     MOV    A,R7
  381.     MOV    R3,A
  382.     LCALL    NINORM
  383. SB40:    MOV    A,R7
  384.     MOV    R3,A
  385.     MOV    A,#0FFH
  386. SB41:    RET
  387. ;
  388. ;
  389. ;
  390. ;