|
| |
| | Stack (computing) - Wikipedia, the free encyclopedia |
 | | The stack method of expression evaluation was first proposed by early German computer scientist F.L. Bauer, who received the IEEE Computer Society Pioneer Award in 1988 for his work on Computer Stacks. |  | | A stack-based computer system is one that is based on the use of stacks, rather than being register based. |  | | A stack may be represented in computers inside block of memory cells, with the bottom at a fixed location, and a variable stack pointer to the current top cell. |
|
http://www.wikipedia.org/wiki/Stack_pointer
(787 words)
|
|
| |
| | Stack frame - Wikipedia, the free encyclopedia |
 | | In computing, a stack frame is a data structure used to create temporary storage for data and saved state in functions. |  | | We could save the return address somewhere, and jump back to that return address, and this scheme works significantly better, however one problem remains - that all registers are essentially in use and the function could use a register with a useful value in it and thus the caller may be adversely affected. |  | | Say we wish to implement a function to return a number's square. |
|
http://en.wikipedia.org/wiki/Stack_frame
(339 words)
|
|
| |
| | Design and Implementation of Stack Pointer |
 | | This input is an AND of S0 and the current pointer which results in an output of 0 (since S0 is 0), thus resetting the counter to zero on the next clock edge. |  | | One pointer points to the next push location (output of the positive edge register) and the pop pointer (address flowing from the decrementor to the third mux). |  | | On a clear, the second mux (that is the one with S1 as a selector) chooses the 4 bit input on the 0 selector side. |
|
http://www.mit.edu/~benleong/6.371_project/stack_pointer.html
(666 words)
|
|
| |
| | The Stack, Pointers, And Memory |
 | | Pointers are a very useful way to share data between functions.One particularly good use is to have `output' variables.Pointers are also the only way to share array data between functions, making them very critical. |  | | First of all, the size of the item, in bytes, is subtracted from the stack pointer. |  | | In response to the general lack of understanding and even worse, misunderstanding of how memory and pointers works inside of modern computers, I decided to write this document describing the inherant simplicity of it all. |
|
http://www.biglal.net/Memory.html
(2557 words)
|
|
| |
| | Calling Conventions |
 | | The stack pointer is typically aligned on a doubleword (8 byte) or quadword (16 byte) boundary which allows register values to be moved to and from the stack more efficiently. |  | | If you push a single byte on a stack, the stack pointer decrements by two bytes, rather than one. |  | | Structures and other large values are returned differently: the caller allocates space for the result and then passes a pointer to this storage as the first (leftmost) parameter. |
|
http://physinfo.ulb.ac.be/divers_html/PowerPC_Programming_Info/intro_to_ppc/ppc4_runtime2.html
(2557 words)
|
|
| |
| | [No title] |
 | | The stack is also used to dynamically allocate the local variables used in functions, to pass parameters to the functions, and to return values from the function. |  | | This is the way the stack grows on many computers including the Intel, Motorola, SPARC and MIPS processors. |  | | A stack of objects has the property that the last object placed on the stack will be the first object removed. |
|
http://www.shmoo.com/phrack/Phrack49/p49-14
(2759 words)
|
|
| |
| | Microprocessor having register bank and using a general purpose register as a stack pointer - Patent 5491826 |
 | | In the microprocessor described above, when a current task is switched to another task, the content of the stack pointer of the current task is set as one of the registers in the general purpose register group. |  | | wherein when a current task is switched to another task, said stack pointer means of the current task is set as one of the registers in said general purpose register means. |  | | wherein, when a current task is switched to another task, said stack pointer means of the current task is set as one of the registers in said general purpose register means, and |
|
http://www.freepatentsonline.com/5491826.html
(4397 words)
|
|
| |
| | The Stack |
 | | The stack uses LIFO (Last In First Out) algorithm, this means that if we Push registers or data one by one onto the stack as 1, 2, 3, 4, 5 then the first value that we will get on Pull will be 5, then 4, 3, 2, and finally 1. |  | | The Stack is used when the Branch/Jump to Subroutine instructions are used to keep the return address for the next instruction in the main programme. |  | | Data is placed onto the Stack with a Push instruction and removed with a Pull instruction. |
|
http://www.electronics.dit.ie/staff/tscarff/6800/stack/stack.htm
(272 words)
|
|
| |
| | [No title] |
 | | The stack is faintly analogous to a data structural stack, but it has its own memory. |  | | For instance, when a computer executes a procedure call, it places on the stack the "return address" of the machine instruction being executed. |  | | The stack is a stretch of memory used to store information related to procedure/method calls. |
|
http://www.cs.berkeley.edu/~jrs/61bf98/lectures/38/README
(495 words)
|
|
| |
| | Stack Pointer Limitation |
 | | The stack pointer for the chip I'm using is 8bits (address 256 bytes max). |  | | This "simulated" stack does not use the SP register, but rather is built somewhere else in memory (depending on your memory model), possibly using the DPTR and xdata. |  | | Parameters and local variables are not stored on the hardware stack, but instead assigned to fixed memory locations, which can be reused from function to function depending on the compiler/linker call tree overlay analysis. |
|
http://www.keil.com/discuss/docs/thread2065.htm
(700 words)
|
|
| |
| | CALL - single segment Pascal calling sequence. |
 | | It would be possible to just load the stack pointer and jump to the label, but this would not spring traps set to do such things as closing tempfiles opened in between. |  | | where "fsize" is the number of words of stack required and "dpoint" is a pointer (possibly zero) to optional debug information. |  | | On entry, X7 will contain a pointer to a copy of the display for the statically enclosing procedure. |
|
http://www.thinkage.on.ca/english/gcos/expl/pasc/call.html
(1262 words)
|
|
| |
| | C To 68000 Assembly Translation (Frame Pointer Operations) |
 | | Even though most of Embedded and Realtime programming is now carried out in high level languages, a good understanding of the generated assembly code really helps in debugging, performance analysis and performance tuning. |  | | When a function is called, the function first saves the current value of A6 on the stack. |  | | Before the function ends UNLK is executed to undo the actions taken by the LINK instruction. |
|
http://www.eventhelix.com/RealtimeMantra/Basics/CToAssemblyTranslation.htm
(722 words)
|
|
| |
| | Stack Computers: the new wave -- an on-line book |
 | | The author commences with an overview of how stacks are used in computing, and a taxonomy of hardware stack support which includes a survey of approximately 70 stack machines past and present. |  | | Published in 1989, this was the first book to explore the new breed of stack computers led by the introduction of the Novix NC4016 chip. |  | | My Stack Computer web page serves as a starting point to exploring recent developments in the area. |
|
http://www.ece.cmu.edu/~koopman/stack_computers
(513 words)
|
|
| |
| | [No title] |
 | | Because, starting from the stack pointer which points to the top of the stack, we have a NULL terminated character array. |  | | This is so because, memory, also the stack, is addressed in frames of four bytes. |  | | Because we can calculate the address of environment pointers, we put the shellcode to first environment variable's place. |
|
http://www.enderunix.org/docs/eng/bof-eng.txt
(2026 words)
|
|
| |
| | STARTUP.A51 |
 | | Indicates the number of bytes of pdata to be initialized to 0. |  | | A value of 0 prevents initialization of this pointer. |
|
http://www.fsinc.com/reference/html/com9ak0.htm
(571 words)
|
|
| |
| | CORBA-Served Price Foundation Class Implementations: GsArr |
 | | The stack grows toward positive array indicies; that is, a stack with 1 item pushed onto it would have a array index value of 1 and the stacked item would be in element 0 of the array. |  | | For these reasons, the array storage allocation is internal to the GArr instance and, because of all the necessary functionality is already there, that storage is implemented by a tie (although not a formal one) through the GsArr class to a PArr(-derived) object. |  | | This data member provides a pointer to a PArr-derived array object implementing the actual array. |
|
http://www.grc.nasa.gov/WWW/price000/pfc/htc/gsarr.html
(206 words)
|
|
| |
| | SP |
 | | The Stack Pointer is first incremented so that now it has FEh in it instead of FDh. |  | | However if the program changes the Accumulator contents, there is no worry of losing the data as it is obvious it has been saved into the stack. |  | | A POP instruction could be used later to retrieve it. |
|
http://www.mcumaster.com/8051/registers/SP/sp.html
(438 words)
|
|
| |
| | [No title] |
 | | When \ a task relinquished control of the cpu, the dispatcher advances the \ current_task pointer by using the loop_link pointer in the TCB to \ determine the next task to dispatch. |  | | The dispatcher maintains a current_task \ pointer that points to the TCB of the currently executing task. |  | | Put task's initial return stack pointer in RP_save field of TCB. |
|
http://www.elilabs.com/~rj/rr-tasker.4th
(2182 words)
|
|
| |
| | Stack pointer etc |
 | | There is nothing in the x86 that prevents the classical virtual memory model from being used, ie, program at 0, stack at 0 (which is the wrapped top of memory), and all memory unregulated and virtual. |  | | This is the reason why very large arrays on many platforms must be defined statically or dynamically allocated, and not automatically allocated on the stack. |  | | Consider: void some_func(void) { double d_array [10000000]; /* no problem so far */ d[0] = 1.2; /* might fault */ } d0 is some 80,000,000 bytes away from the value of the stack pointer on entry to the function. |
|
http://www.codecomments.com/message169077.html
(1077 words)
|
|
| |
| | [No title] |
 | | --------------------------------------------------------------------------- a) Diagram the stack frame for compute (label each component and give the # of bytes for each) <------ stack pointer <------ frame pointer local variable X (4 bytes) X and Y can be in local variable Y (4 bytes) either order. |  | | saved $22 (4 bytes) $22 and $23 could have saved $23 (4 bytes) been reversed old frame pointer (4 bytes) return address (4 bytes) actual parameter D (value) (4 bytes) (i.e. |  | | X = B; return (A + B); } main calls compute as follows: C=compute (D, E); --------------------------------------------------------------------------- IMPORTANT Note: per the book, the sp should always be at the first empty word above the top of the stack. |
|
http://www.cs.utexas.edu/users/chris/cs310/f99/hdt/handt15.txt
(423 words)
|
|
| |
| | [Question]activities of stack pointer and frame pointer when function called |
 | | Next time supply some pointers to the article you read, it'll be easier to answer your query. |  | | Then try to google for web pages with these keywords: stack frame function call convention Then if you have more questions, come back here, and I'll prepare a longer answer. |  | | Code Comments > Programming Languages > C > |
|
http://www.codecomments.com/message362274.html
(700 words)
|
|
| |
| | Pointer to stack variables |
 | | I have a function that creates an instance of a structure on the users stack. |  | | This code seems so fundamental that I didn't even consider the possibility that it could be a bug. |  | | Or I suppose I could make object static but I would rather use temporary RAM space. |
|
http://www.keil.com/discuss/docs/thread1273.htm
(347 words)
|
|
| |
| | Stack Pointer (SP) |
 | | The stack is configured as a data structure that grows downward from high memory to low memory. |  | | Normally the SP is initialized by one of the first instructions in an application program. |  | | This stack can be located anywhere in the address space and can be any size up to the amount of memory available in the system. |
|
http://www.bridgeport.edu/~risc/html/proj/introb/node45.html
(155 words)
|
|
| |
| | problem with stack pointer for reentrant functions |
 | | Copy the file STARTUP.A51 from the "lib" directory of the Keil distribution to your project. |  | | RE: problem with stack pointer for reentrant functions |  | | But when i want to link my project, there is an error : |
|
http://www.keil.com/discuss/docs/thread2552.htm
(117 words)
|
|
| |
| | Data Structures on Tapes |
 | | A binary quoteflag determining whether the instructions pointed to by ip will get executed or just quoted, that is, pushed onto ds. |  | | refers to the topmost entry containing the current instruction pointer |  | | current base pointer into ds right below the current input arguments |
|
http://www.idsia.ch/~juergen/oopsweb/node42.html
(321 words)
|
|
| |
| | Problem: Failed to trace the value of the stack pointer |
 | | Description: The value of the stack pointer at the end of the function is different from its value at the start of the function. |  | | If you have found the offending function, change its attributes (namely, number of bytes purged upon return). |  | | Usually it fails because some called function changed the stack pointer (by purging the input parameters, for example) 2. |
|
http://www.datarescue.com/idadoc/1368.htm
(157 words)
|
|
| |
| | MC6802 - LDS - Load Stack Pointer |
 | | Loads the most significant byte of the stack pointer from the byte memory at the address specified by the program, and loads the less significant byte of the stack pointer from the next byte of memory, at one plus the address spcified by the program. |  | | Coding of the first (or only) byte of machine code |  | | Set if the most significant bit of the stack pointer is set by the operation; cleared otherwise. |
|
http://www.geocities.com/pevansph2002/lds.htm
(87 words)
|
|
| |
| | Comp.compilers: Re: SPARC references |
 | | Anyway, this is where the 96 bytes per stack frame disappears to. |  | | A. Check the instruction at the return location. |  | | This takes care of the first 64 bytes, or 16 words, that Dan Salomon |
|
http://compilers.iecc.com/comparch/article/91-04-038
(1303 words)
|
|
| |
| | stack pointer - OneLook Dictionary Search |
 | | stack pointer : Free On-line Dictionary of Computing [home, info] |  | | stack pointer : Dictionary of Computing and Digital Media [home, info] |  | | Tip: Click on the first link on a line below to go directly to a page where "stack pointer" is defined. |
|
http://www.onelook.com/cgi-bin/cgiwrap/bware/dofind.cgi?word=stack+pointer
(92 words)
|
|
| |
| | Change Stack Pointer |
 | | This command allows you to specify how the stack pointer (SP) is modified by the current instruction. |  | | You can't use this command if the current instruction does not belong to any function. |  | | An example of such a situation is an indirect call of a function that purges its parameters from the stack. |
|
http://www.datarescue.com/idadoc/489.htm
(153 words)
|
|
| |
| | Info Node: (gccint.info)Frame Registers |
 | | The variables `stack_pointer_rtx', `frame_pointer_rtx', and `arg_pointer_rtx' will have been initialized prior to the use of these macros and should be used to refer to those items. |  | | On some machines, the hardware determines which register this is. On other machines, you can choose any register you wish for this purpose. |  | | On some machines, this is the same as the frame pointer register. |
|
http://www.cs.vassar.edu/cgi-bin/info2www?(gccint)Frame+Registers
(746 words)
|
|
| |
| | LinuxQuestions.org - red hat 9 stack pointer - where Linux users come for help |
 | | The class of exploit you are trying to pull off (or at least, the class of exploit it sounds like) may still be fairly trivial depending on what other randomisation ExecShield incorporates and how much (it does not appear to perform that much). |  | | LinuxQuestions.org - red hat 9 stack pointer - where Linux users come for help |  | | sp is a little program that prints out the stack pointer. |
|
http://www.linuxquestions.org/questions/showthread.php?postid=778505
(348 words)
|
|
| |
| | Problems with stack pointer in ASM |
 | | module overlaps the first byte of the stack pointer. |  | | J don't understand why pointing to #STACK -1 !! |  | | All pushes increment the stack pointer before storing data. |
|
http://www.keil.com/discuss/docs/thread4215.htm
(177 words)
|
|
| |
| | Cosmic compiler and problem with stack pointer. |
 | | do you understand why do you need to reset the stack pointer? |  | | ST Mission: to offer strategic independence to our |  | | PHP-Nuke is a free software released under the GNU/GPL license. |
|
http://mcu.st.com/forums-cat-105-1.html
(461 words)
|
|
| |
| | MMT: Stack Pointer |
 | | Supervisory stack pointer - handles the interrupt processing, traps, error conditions and subroutine calls in supervisory mode. |  | | The stack is neccessary if the flow of a program is changed by an interupt or a subroutine call. |  | | Essential information to continue the running of the program is store on the stack i.e. |
|
http://www.dca.fee.unicamp.br/courses/EA877/1s1997/68K/stack.html
(162 words)
|
|
| |
| | Implementing Stack with Pointer and Array |
 | | The Java applet below (by Akira Mori, based on an original by Grant Malcolm) shows the behavior of both the original stack abstraction and of its array with pointer implementation. |  | | Since the stack operations are defined in the implementation, we have |  | | A standard benchmark for correctness proofs is verifying the pointer-array implementation of stack. |
|
http://www.cse.ucsd.edu/groups/tatami/kumo/exs/stack
(275 words)
|
|
| |
| | The Stack |
 | | Thus, the ownership of any particular byte in this area depends on which block of the function is executing. |  | | Because a function's code is stored in an abstract syntax tree, the address of the next line of code to execute is not a simple increment of the current line's address, even if we are executing sequentially; e.g. |  | | The utility of the base pointer is that a function can index to its parameters and its local variables from the base pointer (just as in C). |
|
http://zoo.cs.yale.edu/classes/cs490/99-00a/bernstein.michael.msb35/node3.html
(525 words)
|
|
| |
| | [No title] |
 | | This program will simulate the operation of a stack and a queue with a 10 items maximum. |  | | To simulate the operation of a queue (Last In First Out). |  | | ii) To use a linked list instead of arrays(simulating a stack and queue). |
|
http://www.bsdg.org/SWAG/POINTERS/0027.PAS
(98 words)
|
|
| |
| | cc65 mailing list archive: Re: [cc65] Atari stack pointer? |
 | | This sort of gets around the > problem of the stack in upper memory, but my other memory areas are > hard-coded still. |  | | So the > >stack pointer would initially be around 8k below MEMTOP. |  | | > >By default, the runtime assumes the largest possible memory use for > >graphics (graphics 9) and adjusts the stack pointer accordingly. |
|
http://www.cc65.org/mailarchive/2003-09/3406.html
(398 words)
|
|
| |
| | Stack pointer handling |
 | | Apart from being the way I currently do it, this seems to me more flexible than assuming the sp is always available as a global variable. |  | | SPTR, where SPTR is the type of a stack pointer (most likely |  | | Implementations which provide stack pointers as global variables can ignore some or all of the manipulations of local sp values, which will hopefully get thrown away as dead code. |
|
http://www.cs.man.ac.uk/arch/people/j-sargeant/slam_if/node8.html
(128 words)
|
|
| |
| | C++ Programming: Problem with stack pointer in C++ |
 | | In the WndProc function I have a static variable that is a pointer to the above class object (see code above). |  | | C++ Programming: Problem with stack pointer in C++ |  | | Solution Title: Problem with stack pointer in C++ |
|
http://www.experts-exchange.com/Programming/Programming_Languages/Cplusplus/Q_20373911.html
(296 words)
|
|
| |
| | [kaffe] STACK_POINTER for signals on IRIX, help! |
 | | Digging inside the SGI IRIX headers I found clearly stated that sigcontext * is NOT part of the ABI... |  | | In any case using this (most probably wrong) choice I was able to compile much further up to ending with a new error I report separately. |  | | Thanks to guilhem pointing out to the use of sigcontext* I was able to define most the problem remains for STACK_POINTER(scp) I found no clear presence of a stack pointer place! |
|
http://www.kaffe.org/pipermail/kaffe/2004-July/098911.html
(196 words)
|
|
| |
| | [uClinux-dev] Kernel Stack Pointer. |
 | | My question is: "How can I setup the Kernel Stack Pointer (ksp)?" While processing an interrupt (e.g. |  | | Clearly its a system with no mmu and only one stack pointer (MCF5206 has only one). |  | | Hello there, I am working with Motorola ColdFire MCF5206, uClinux version 2.0.38.0; and the board under study is by Arnewsh. |
|
http://mailman.uclinux.org/pipermail/uclinux-dev/2001-October/004612.html
(194 words)
|
|
| |
| | U.S. Pregrant 20010003201 - Pre-decoded stack pointer with post increment /decrement operation |
 | | Addressing or accessing the instruction operand or the result |  | | The stack pointer is used for generating the next unutilized location in the stack memory device in order to indicate where a current value in the program counter is to be written. |  | | The stack pointer will further perform either a post increment or post decrement operation on the next unutilized location in the stack memory device after execution of a current instruction. |
|
http://cxp.paterra.com/uspregrant20010003201.html
(213 words)
|
|
| |
| | LWN: Patch: Patch 4/6 randomize the stack pointer |
 | | One * thing we can do is to shuffle the initial stack for them. |  | | The patch below replaces the existing 8Kb randomisation of the userspace stack pointer (which is currently only done for Hyperthreaded P-IVs) with a more general randomisation over a 64Kb range. |  | | LWN: Patch: Patch 4/6 randomize the stack pointer |
|
http://lwn.net/Articles/120969
(126 words)
|
|
| |
| | Slides |
 | | x86: "MOV SP, value" to load stack pointer |  | | 8085: "LXI SP value" to load stack pointer |  | | push a register: puts the value into the top of stack, then increments the stack pointer |
|
http://www2.ics.hawaii.edu/~esb/2000spring.ics331/may01.html
(218 words)
|
|
| |
| | Re: Patch 4/6 randomize the stack pointer |
 | | > > Your suggestion of 256MB of randomization for the stack SIMPLY IS NOT > ACCEPTABLE for a lot of uses. |  | | People on 32-bit archtiectures have issues > with usable virtual memory areas etc. > > > > > No. This just re-affirms that you are an inflexible person who cannot see > the big picture. |  | | Web Server Talk > Unix and Linux reviews > Linux support forum > Linux Kernel > Re: Patch 4/6 randomize the stack pointer |
|
http://www.webservertalk.com/message899232.html
(1689 words)
|
|
| |
| | C51: REENTRANT FUNCTIONS AND THE REENTRANT STACK POINTER |
 | | Copy the STARTUP.A51 file from the \KEIL\C51\LIB folder into your project directory. |  | | The stack allows the functions to be called many times or recursively. |  | | If you are using reentrant functions, then you must have a reentrant stack configured and the pointer initialized. |
|
http://www.keil.com/support/docs/671.htm
(133 words)
|
|
| |
| | [uClinux-dev] Stack pointer.. |
 | | The stack space for a user program is normally fixed at the time you run elf2flt on the elf image to produce a flat binary. |  | | If you are using the uClinux distribution this conversion is done in the user application makefiles. |  | | You can use elf2flt -s 16184 -o foo foo.gdb or flthdr -s 16184 foo To adjust the stack. |
|
http://mailman.uclinux.org/pipermail/uclinux-dev/2002-August/010499.html
(139 words)
|
|
|