How Do You Program and Design for the MC68000 Microprocessor?

  • Thread starter Thread starter lightgreen
  • Start date Start date
AI Thread Summary
The discussion focuses on programming and designing for the MC68000 microprocessor, specifically addressing the design of an address decoder for RAM, ROM, and I/O devices. Participants emphasize the importance of understanding the instruction set for the Motorola chip, particularly regarding multiplication and squaring numbers. A suggestion is made to use a look-up table (LUT) for squaring values, as it may be more efficient than direct multiplication in some cases. There is confusion about the requirements and memory addresses involved in the programming task, with clarification sought on the purpose of specific memory locations. Overall, the conversation highlights the challenges of working with the MC68000 and the strategies for effective programming.
lightgreen
Messages
11
Reaction score
0
One of my major subjects in this semester is Microprocessor, MC68000. I have a hard time with this subject. Please help me to answer certain questions:

1)Design address decoder for following devices
- RAM(128Kbyte) with initial address of $400000
-ROM(32kbyte) with initial address of $000000
-I/O with address between $800000-$80001F

2) Write a program which satisfies the equation: y= x(square) + z
y is a 16bit unsigned number which store in $1000
x and z is a 8 bit unsigned number which store in $1002-$1003
 
Physics news on Phys.org
Do you know the instruction set for the Motorola chip? You need to know that already.

What work have you done so far? Please you show us.
 
The questios listed all are the theoritical question. We do not have to design the real circuit. For the first question, I already have the answers. But pls help me for the 2nd question.
 
For the square part use a look-up table and an index to count up to x and read the table (which should contain the square of each x values). The rest is straightforward; addition.
 
verafloyd said:
For the square part use a look-up table and an index to count up to x and read the table (which should contain the square of each x values). The rest is straightforward; addition.

the 68K has a multiply instruction. both signed and unsigned. squaring a number is trivial.
 
Sorry to say that I don understand at all what's going on at the moment. I'm thinking of using multiplication before, but the requirements for it really make me confuse. Besides that, if squaring a number is trivial, then can I assume that y=z? If not, what should I do? What are $1000, $1002,$1003? Is it a memory address at address register?
 
rbj said:
the 68K has a multiply instruction. both signed and unsigned. squaring a number is trivial.

You're right. But it -depending on the numbers- takes more clock cycles than doing it with a LUT.
 
Back
Top