# Arithmetic routine

The problem is to start an arithmetic routine package by writing

a multiplication subroutine named mlt:

mlt

; On input R2 and R3 contain two non-negative integers a (multiplicand)

;and b (multiplier) respectively, and on return R1 and R0 contain

; non-negative numbers h and l such the R1,R0 together contain the product

; of a and b :

; a * b = 2^15 * h + l . No other registers should be affected.

; On return R2 is trashed and R3 contains an error flag, which in this case

; is set iff either a or b is negative.

;EXAMPLE: multiply #1000 by #2000 to obtain #2000000

; ld R2,M1000 ; address M1000 contains #1000

; add R3,R2,R2 ; R3 <-- #2000

; jsr mlt

; On return R3 is 0, R1 contains #61 and R0 contains #1152 since

; 2000000 = 2^15 * 61 + 1152

There are several algorithms for multiplication. One can be developed based on

the binary place value system and noting that doubling a number

(i.e.,adding it to itself) shifts the bits one place left.

A simpler algorithm is based on adding R2 to itself R3 times. In this case

it might be better to test the operands to make sure R2 contains the larger of a and b.

(Adding 1000 to itself 3 times is much faster than adding 3 to itself 1000 times).

The product of a and b need not fit into one word: Say you are adding R2 to R0.

Remembering that the operands are all positive, a negative sum signifies overflow,

so the msb must be cleared and R1 incremented; e.g.:

BRzp mlt_goon ; go on if no overflow

AND R0,R0,R4 ; R4 previously loaded with x7FFF = b0111111111111111

mlt_goon

## Deliverables

1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done.

## Platform

Windows assembler

Habilidades: Montagem, Engenharia, MySQL, PHP, Arquitetura de software, Teste de Software

( 37 comentários ) United States

ID do Projeto: #3006863

## Premiar a:

etaxvw

See private message.

\$3 USD em 1 dia
(9 Avaliações)
3.0

## 3 freelancers estão ofertando em média \$11 para este trabalho

kidronvw

See private message.

\$14.45 USD em 1 dia
(5 Comentários)
2.8
purcel

See private message.

\$17 USD em 1 dia
(0 Comentários)
0.0