assembly - Assembler i8080 Multiplying two 16bits numbers -


i have prepare program i8080 processor. program have multiplying 2 16b numbers. don't know how check multiplier bit bit.

e.g 1111 * 1011 = first bit of 1011 1 add 1111 second bit 1 add 11110 third bit 0 don't add 111100 forth 1 add 1111000

result 1111+11110+1111000=10100101

and problem how chceck bits of multiplier?

thanks help

probably easiest way shift right , check carry, otherwise have keep changing bit test , that's hard, register pair. shifting bit annoying on 8080 since a can rotated. let's multiplier in bc (and multiplicand in hl , result in de can shift multiplicand dad h , takes xchg add-to-result happens less often)

mov a, b ora    ; reset carry rar mov b, mov a, c rar mov c, jnc skipadd 

using ora a ensures multiplier goes zero, allows exit test such as:

mov a, b ora c jnz looptop 

if unroll 16 can fill bc left carry left shift of multiplicand, won't make difference.


Comments

Popular posts from this blog

php - How to display all orders for a single product showing the most recent first? Woocommerce -

asp.net - How to correctly use QUERY_STRING in ISAPI rewrite? -

angularjs - How restrict admin panel using in backend laravel and admin panel on angular? -