How JustAnswer Works:
  • Ask an Expert
    Experts are full of valuable knowledge and are ready to help with any question. Credentials confirmed by a Fortune 500 verification firm.
  • Get a Professional Answer
    Via email, text message, or notification as you wait on our site. Ask follow up questions if you need to.
  • 100% Satisfaction Guarantee
    Rate the answer you receive.
Ask Ingo U Your Own Question
Ingo U
Ingo U, Software Engineer
Category: Homework
Satisfied Customers: 755
Experience:  Over 25 years experience in software development. Expert in Microsoft .Net, C#, C++, VB, SQL
Type Your Homework Question Here...
Ingo U is online now
A new question is answered every 9 seconds

Programs must run on this simulator located at:

This answer was rated:

Programs must run on this simulator located at:

Write a LMC program that takes two inputs, a number to count down from, and the step value (example: count down from 35 by 5), until it reaches zero. It should print each step, and the last number before zero if the sequence doesn’t end on zero, but if the number goes to negative, that number should not be printed. Example output using 13 and 3 as inputs would be: 13, 10, 7, 4, 1. Example output using 12 and 3 as inputs would be: 12, 9, 6, 3, 0.

Write the code to calculate the area and perimeter of a triangle. The program should take 3 inputs, which are, in order, the base, height, and the third side of the triangle. The code should produce 2 values in the output box, the first number will be the area and the second, the perimeter. (Hint: you’ll probably want to use DAT statements to store some values to start).

Example code:

Calculate perimeter & area - takes L & W as inputs
prints out perimeter first, then area.
00 LDA #01;
01 STA 99;
02 IN;
03 STA 98;
04 LDA #00;
05 STA 96;
06 IN;
07 STA 97;
08 ADD 97;
09 ADD 98;
10 ADD 98;
11 OUT;
12 LDA 96;
13 ADD 98;
14 STA 96;
15 LDA 97;
16 SUB 99;
17 STA 97;
18 SKZ;
19 JMP 12;
20 LDA 96;
21 OUT;
22 HLT;

00 IN;
01 STA 99;
02 STA 97;
03 IN;
04 STA 98;
05 SUB 90;
06 STA 98;
07 SKZ;
08 JMP 12;
09 LDA 97;
10 OUT;
11 HLT;
12 LDA 97;
13 ADD 99;
14 STA 97;
15 LDA 98;
16 JMP 05;
90 DAT 001;

00 IN;
01 STA 90;
02 IN;
03 STA 91;
04 LDA 90;
05 ADD 90;
06 SUB 91;
07 OUT;
08 HLT;

00 IN;
01 OUT;
02 SUB 98;
03 SKP;
04 JMP 06;
05 JMP 01;
06 HLT;
98 DAT 002;

00 IN; take input

01 STA 99; save value as a mulitiplier

02 STA 97; save value as multiplicand

03 SUB 90; subtract one from counter

04 STA 98; copy value to counter

05 LDA 97; load our accumulator number

06 ADD 99; Add original number

07 STA 97; store intermediate sum

08 LDA 98; Load counter

09 SUB 90; subtract one from counter

10 STA 98; Store counter value

11 SKZ; skip if counter is at zero

12 JMP 05; othewise, loop back to 5

13 LDA 97; load our squared number

14 OUT; Write output

15 HLT; stop

90 DAT 01; countdown value

Hello, I'm a moderator for this topic. I've been working hard to find a professional to assist you right away, but sometimes finding the right professional can take a little longer than expected.

I wonder whether you're ok with continuing to wait for an answer. Please let me know and I will assist further. Thank you!




Customer: replied 3 years ago.

I am okay waiting for an answer as long as it gets answered by October 13th by 11:00pm

Thank you for your patience while we continue to search for a professional to assist you.
for the 2nd part, it didn't state that it's a right triangle. In that case, according to my knowledge of geometry, finding the 3rd side (in order to compute perimeter) involves finding a square root, or trig functions. It seems to me that would be excessively complicated. given the nature of the assignment and limited instruction set of LMC.
Could it be that we can assume a right triangle, so the height is the third side?
Ingo U
Customer: replied 3 years ago.

Yes, it can be a right triangle or any type of triangle. I believe right would be the easiest to compute?

Customer: replied 3 years ago.

Ironically I just checked my e-mail and he added this to the instruction set:


For the triangle problem, you should assume a right triangle. The formula for area is 1/2 * b * h, and the perimeter is
b + h + 3rd side. I apologize for any confusion in my wording about "you can assume any triangle". Any triangle has the same formula for area and perimeter, but if it's not a right triangle, there's an extra step you'd need to find the height.

For the test data, I'll be using 6 for base, 8 for height, and 10 for the hypotenuse. The perimeter is 24, and the area is the same.

One last note, I am grading based on whether the code returns the right results, not on efficiency. But, for efficiency, although both 1/2*(b*h) and (1/2*b)*h yield the same answer, the second is much more efficient, especially for something like little man.


You need to spend $3 to view this post. Add Funds to your account and buy credits.
Ingo U, Software Engineer
Category: Homework
Satisfied Customers: 755
Experience: Over 25 years experience in software development. Expert in Microsoft .Net, C#, C++, VB, SQL
Ingo U and other Homework Specialists are ready to help you