Advertisement
Guest User

Untitled

a guest
Apr 4th, 2019
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ;programme multiplying 2-byte numbers without signs
  2. ; numbers are stored in internal data memory
  3. ; result is stored in registers R7..R4 (R4-LSB)
  4. N1  equ 28h
  5. N2  equ     30h
  6.  
  7.     mov N1,#low(2000)
  8.     mov N1+1,#high(2000)
  9.  
  10.     mov N2,#low(3000)
  11.     mov N2+1,#high(3000)
  12.  
  13.     mov a,N1    ;A <-LSB(numb1)
  14.     mov     b,N2    ;B <-LSB(numb2)
  15.     mul     ab  ;BA := product
  16.     ;storing results
  17.     mov r4,a
  18.     mov     r5,b
  19.  
  20.     mov a,N1+1  ;A <-MSB(numb2)
  21.     mov b,N2+1  ;B <-MSB(numb2)
  22.     mul     ab  ;BA := product
  23.     ;storing results
  24.     mov r6,a
  25.     mov     r7,b
  26.  
  27.     mov a,N1    ;A <-lSB(numb2)
  28.     mov b,N2+1  ;B <-MSB(numb2)
  29.     mul     ab  ;BA := product
  30.     ;adding results to r7..r5
  31.     add a,r5
  32.     mov     r5,a
  33.     mov a,b
  34.     addc    a,r6
  35.     mov r6,a
  36.     clr a
  37.     addc    a,r7    ;updating R7 with possible overflow
  38.     mov r7,a
  39.  
  40.     mov a,N1+1  ;A <-MSB(numb2)
  41.     mov b,N2    ;B <-LSB(numb2)
  42.     mul     ab  ;BA := product
  43.     ;adding results to r7..r5
  44.     add a,r5
  45.     mov     r5,a
  46.     mov a,b
  47.     addc    a,r6
  48.     mov r6,a
  49.     clr a
  50.     addc    a,r7    ;updating R7 with possible overflow
  51.     mov r7,a
  52.  
  53.     sjmp $
  54.  
  55.     end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement