Mercurial > hg > Members > kono > nitros9-code
view lib/alib/mult16x16.as @ 2989:5944d79e3fe5
sysgo: Update copyright year
author | Tormod Volden <debian.tormod@gmail.com> |
---|---|
date | Sun, 13 Apr 2014 21:19:25 +0200 |
parents | 03f26e88b809 |
children |
line wrap: on
line source
************************************ * 16 x 16 Multiply * ENTRY: D = multiplier * X = multiplicand * EXIT: Y = product 2 msbs * U = " 2 lsbs * D & X preserved nam 16x16 bit Multiply ttl Assembler Library Module section .text MULT16: PSHS D,X,Y,U save #s and make stack room CLR 4,S reset overflow flag LDA 3,S get byte MUL STD 6,S save B x Xl LDD 1,S MUL B x Xh ADDB 6,S ADCA #0 STD 5,S add 1st 2 mult. LDB 0,S LDA 3,S MUL A x Xl ADDD 5,S STD 5,S add result to previous BCC no.ov branch if no overflow INC 4,S set overflow flag no.ov LDA 0,S LDB 2,S MUL A x Xh ADDD 4,S STD 4,S PULS D,X,Y,U,PC return endsect