Find Jobs
Hire Freelancers

Arithmetic routine

$15-20 USD

Completed
Posted over 20 years ago

$15-20 USD

Paid on delivery
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.: 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 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
Project ID: 3006863

About the project

3 proposals
Remote project
Active 20 yrs ago

Looking to make some money?

Benefits of bidding on Freelancer

Set your budget and timeframe
Get paid for your work
Outline your proposal
It's free to sign up and bid on jobs
Awarded to:
User Avatar
See private message.
$3 USD in 1 day
5.0 (9 reviews)
3.0
3.0
3 freelancers are bidding on average $11 USD for this job
User Avatar
See private message.
$14.45 USD in 1 day
4.4 (5 reviews)
2.8
2.8
User Avatar
See private message.
$17 USD in 1 day
0.0 (0 reviews)
0.0
0.0

About the client

Flag of UNITED STATES
United States
4.8
37
Member since Nov 10, 2003

Client Verification

Thanks! We’ve emailed you a link to claim your free credit.
Something went wrong while sending your email. Please try again.
Registered Users Total Jobs Posted
Freelancer ® is a registered Trademark of Freelancer Technology Pty Limited (ACN 142 189 759)
Copyright © 2024 Freelancer Technology Pty Limited (ACN 142 189 759)
Loading preview
Permission granted for Geolocation.
Your login session has expired and you have been logged out. Please log in again.