How Can I Determine the Effective Address in Assembly Language?

  • Thread starter Ald
  • Start date
  • Tags
    Assembly
In summary: Typically the cpu would take in the command type and parameters. After that it would look at the segment registers to see what it's doing. If the instruction is in a different segment than what the segment registers say then it will need to load the segment register with the address of the instruction. If it's in the same segment as what the segment registers say then it will just use the effective address.
  • #1
Ald
25
1
I am suppose to determine the effective address if the instruction below and the contents of any affected register (except the PC) or memory location after each of the instructions in problem is executed. Assume the initial state (in hex) of the CPU and memory before every instruction is as follows: Processor is MC68hc12.
ACCA = 00 ACCB = 05 IX = 0111 IY = 0100

0100 FF E7 00 20 58 66 00 80 FF BC 10 00 9D 33 EF 76
0110 41 CC 71 55 00 00 D3 17 11 22 A1 01 13 66 85 EE

I don't even know how to start the problem. From what I could find the effective address is the address of the data referred to in the instruction. My textbook didn't even define effective address. Could someone provide a little explanation on this or point me to some simple explanation of the concept.

Thanks
 
Last edited:
Technology news on Phys.org
  • #2
Each CPU type will have a slightly different machine language so you should first try to determine what commands the two instruction lines are executing. Typically CPUs take in instructions which contain the command type and command parameters, e.g. <command type> <parameter 1> <parameter 2>. Also, find out what the segment registers are, etc.

You need to do some reading on the processor.
 
  • #3
The latextlab site seems to be down any other suggestions for information. This is an assignment from the 1st chapter of a MC68hc12 book. It doesn't explain effective addressing, just uses the term. I'm totally lost.
Thanks for your help.
 
  • #4
Effective address just means the actual address used for an instruction's operand, or when the address itself is the operand, as in the case of the Load Effective Address (LEA) instruction on Intel cpu's.
 
  • #5
Thanks, so in the instructions below the effective address is in the operand, correct? How do I determine the address and affect registers?

I am suppose to determine the effective address and the contents of any affected register (except the PC) or memory location after each of these instructions are executed.

a. LDX [10,X]
b. LDY $100
c. LDY #100
d. LDY 0,Y
e. STAB -5,X
f. LDAB B,X
g. LDAB [D,Y]
h. STAA 1,-X
i. LDY 2,X+

Assume the initial state (in hex) of the CPU and memory before every instruction is as follows: Processor is MC68hc12.
ACCA = 00 ACCB = 05 IX = 0111 IY = 0100

0100 FF E7 00 20 58 66 00 80 FF BC 10 00 9D 33 EF 76
0110 41 CC 71 55 00 00 D3 17 11 22 A1 01 13 66 85 EE
 
Last edited:
  • #6
Ald said:
Thanks, so in the instructions below the effective address is in the operand, correct?
The effective address is the address of the operand. Assuming # means immediate, then it's a special case.

How do I determine the address and affect registers?
Go through the process that the cpu would go through.
 

Related to How Can I Determine the Effective Address in Assembly Language?

What is an effective address in assembly?

An effective address in assembly is a memory address that is used to access data or instructions. It is calculated by adding an offset value to a base address.

How is an effective address calculated in assembly?

The effective address is calculated by adding the offset value to the base address. The offset value can be a constant value or a value stored in a register, and the base address can also be a constant or a value stored in a register.

What is the purpose of an effective address in assembly?

An effective address allows the assembly program to access data and instructions stored in memory. It provides a way to dynamically access different locations in memory based on the values of the offset and base addresses.

Can multiple effective addresses be used in one instruction?

Yes, some instructions in assembly can take multiple effective addresses as operands. This allows for more complex memory operations, such as moving data between different memory locations.

Are there different types of effective addresses in assembly?

Yes, there are different types of effective addresses in assembly, such as direct, indirect, indexed, and relative. Each type has its own way of calculating the memory address and is used for different purposes in assembly programming.

Similar threads

Back
Top