Take the 2-minute tour ×
Computer Science Stack Exchange is a question and answer site for students, researchers and practitioners of computer science. It's 100% free, no registration required.

The Wikipedia article on processor registers mentions:

Address registers hold addresses and are used by instructions that indirectly access primary memory.

Which addresses does this sentence refer to?

share|improve this question

migrated from cstheory.stackexchange.com Jan 4 '13 at 21:55

This question came from our site for theoretical computer scientists and researchers in related fields.

add comment

1 Answer 1

up vote 1 down vote accepted

RAM addresses or addresses of I/O devices. For example, in x86 architecture an IP (instruction pointer) register holds the memory address of the next instruction that is going to be read and executed. This register cannot be accessed directly (it can be modified by jumps though). Also, in x86 an SP (stack pointer) register shows the top of the stack structure (mostly used to hold local variables of functions) and is implicitly modified by push, pop, call, ret instructions (and interrupts). Of course, there are more examples.

share|improve this answer
    
Technically, that should be memory addresses. I/O addressing can be mapped onto the memory address space (memory-mapped I/O) and such addresses are not necessarily RAM (accesses can have side effects). The Motorola 68k is an example of an ISA with distinct address and data registers (8 of each). –  Paul A. Clayton Jan 5 '13 at 0:41
    
what is the stack used for I am trying to understand the stack section –  Registered User Jan 5 '13 at 4:54
    
@PaulA.Clayton, thanks for pointing that out. I'll try to fix the answer.. –  Karolis Juodelė Jan 5 '13 at 10:18
    
@RegisteredUser, call is a special kind of jump. You can call one function from anywhere and after executing it you want to go back to where you called it. The solution to this problem is to write down the address of the instruction which has to be executed after the call. Note that one procedure may call another so that a writing down a single address is not enough. Hence a stack is used. –  Karolis Juodelė Jan 5 '13 at 10:24
1  
@RegisteredUser The following might be a decent start: eli.thegreenplace.net/2011/09/06/stack-frame-layout-on-x86-64 Different ISAs (and OSes) have different Application Binary Interface standards (and ABIs are interoperability standards that compilers can--but usually do not--violate for non-exported functions). –  Paul A. Clayton Jan 5 '13 at 13:38
show 2 more comments

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.