| | |
Division in Assembly?
![]() |
•
•
Join Date: Apr 2009
Posts: 39
Reputation:
Solved Threads: 5
•
•
•
•
How can I perform Division in Marie Assembly Language? The functions available in Marie programming are for Addition and Subtraction. Any help will be appreciated.
60 / 3 if I subtract 3 from 60 it will take 20 times before 60 < 3
•
•
Join Date: Dec 2008
Posts: 8
Reputation:
Solved Threads: 0
•
•
•
•
You can do division using subtraction.
60 / 3 if I subtract 3 from 60 it will take 20 times before 60 < 3
Store A
Input /Input B value
Store B
Loop, Load A
Skipcond 800 If AC > 0, continue loop
Jump Endloop
Subt One
Store A
Load C
Subt B
Store C
Jump Loop
Endloop, Load C
Output
Halt
C, DEC 0
A, DEC 0
B, DEC 0
One, DEC 1
Division doesn't seems to be working for me. Is there something I could change in multiplication code to make division work? Multiplication is repeated adding, similar to Division, repeated subtraction.
•
•
Join Date: Apr 2009
Posts: 39
Reputation:
Solved Threads: 5
Psuedocode
Assembly Syntax (Toggle Plain Text)
a = 60 b = 3 divide a b divide a b: c=0 while a isn't less then b a = a - b c = c + 1
•
•
Join Date: Dec 2008
Posts: 8
Reputation:
Solved Threads: 0
•
•
•
•
Psuedocode
Assembly Syntax (Toggle Plain Text)
a = 60 b = 3 divide a b divide a b: c=0 while a isn't less then b a = a - b c = c + 1
Input
Store X
Input
Store Y
Load Zero / Move 0 into AC
Store Z / Set Z to 0
If, Load Z / Load Z
Skipcond 400 / If AC=0 (Z=0), skip the next instruction
Jump Endif / Jump to Endif if X is not greater than 1
Then, Load X
Subt Y / X - Y
Store X / X= X - Y
Endif, Load Z / Load Z into AC
Add One / Add 1 to Z
Store Z / Z = Z + 1
Output
Halt / Terminate program
X, Dec 0 / X has starting value, not given in problem
Y, Dec 0 / Y has starting value, not given in problem
Z, Dec 0
One, Dec 1 / Use as a constant
Zero, Dec 0 / Use as a constant
END
What am I missing?
•
•
Join Date: Dec 2008
Posts: 8
Reputation:
Solved Threads: 0
•
•
•
•
ORG 100
Input
Store X
Input
Store Y
Load Zero / Move 0 into AC
Store Z / Set Z to 0
If, Load Z / Load Z
Skipcond 400 / If AC=0 (Z=0), skip the next instruction
Jump Endif / Jump to Endif if X is not greater than 1
Then, Load X
Subt Y / X - Y
Store X / X= X - Y
Endif, Load Z / Load Z into AC
Add One / Add 1 to Z
Store Z / Z = Z + 1
Output
Halt / Terminate program
X, Dec 0 / X has starting value, not given in problem
Y, Dec 0 / Y has starting value, not given in problem
Z, Dec 0
One, Dec 1 / Use as a constant
Zero, Dec 0 / Use as a constant
END
What am I missing?
![]() |
Similar Threads
- DIVISION in assembly? (NASM) (Assembly)
- Learning Assembly in Linux (Assembly)
- Floating point in Assembly (Assembly)
- Division operand? (Assembly)
- Assembly - Detecting negative value and adding quotient and remainder (Assembly)
- URGENT: Code for 32 Bit Division (Assembly)
- Unsigned Division (Assembly)
- FREE Win32 RAD Assembly Tool (Assembly)
Other Threads in the Assembly Forum
- Previous Thread: Correct me if i'm wrong pls.....
- Next Thread: Assembly Help
| Thread Tools | Search this Thread |





