Arithmetic routine

The problem is to start an arithmetic routine package by writing

a multiplication subroutine named 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.:

ADD R0,R0,R2

BRzp mlt_goon ; go on if no overflow

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

ADD R1,R1,#1 ; add in "carry" from R0


## 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

Veja mais: writing numbers 1 10, writing an algorithm for a program, writing algorithms, the sum of 11 times s and 3, test algorithms, sum binary, set bits in c, set bits, program algorithm example, number algorithms, integers form 1, example of algorithms, binary problem, binary code test, binary algorithms, binary algorithm, all the bits, algorithms test, 2 sum algorithm, msb, form multiplication, add binary, multiplication program, value engineering, mlt

Acerca do Empregador:
( 37 comentários ) United States

ID do Projeto: #3006863

Concedido a:


See private message.

$3 USD em 1 dia
(9 Comentários)

3 freelancers are bidding on average $11 for this job


See private message.

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

See private message.

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