"When temp starts to run, it knows that d is located at (-12 + stack pointer). So it will store 10 there. The stack pointer will be in a register and there will be instructions available to load and store indexed by the register."
I still do not get that how or what (some special pointer??)acesses these local variables.what instructions do u mention?can u please explain?
There might be a special register called an index register which has the stack pointer in it. Then you would have a some kind of load/store based on it.
the loadi would load a 10 into a working register (load immediate). The storex would not try to store at location -12. Rather it would add the index register's value to -12 to get the real address. Today's real computers have much more complex instructions than these. These instructions are actually pretty close to the IBM 1130 from the 1960's.
Hi,
I have a basic doubt here.
Consider the following code snippet:
main()
{
int *a;
.
.
}
Here the memory for a gets allocated in heap or stack. (5 Replies)
I would like to use the result of a query in another query. How do I redirect/add the output to another variable?
$result = odbc_exec($connect, $query);
while ($row = odbc_fetch_array($result)) {
echo $row,"\n";
}
odbc_close($connect);
?>
This will output hostnames:
host1... (0 Replies)
Hi,
I have a requirement as below which needs to be done viz UNIX shell script
(1) I have to connect to an Oracle database
(2) Exexute "SELECT field_status from table 1" query on one of the tables.
(3) Based on the result that I get from point (2), I have to update another table in the... (6 Replies)
Hi,
I need to query Oracle database for 100 users. I have these 100 users in a file. I need a shell script which would read this User file (one user at a time) & query database.
For instance:
USER CITY
--------- ----------
A CITY_A
B CITY_B
C ... (2 Replies)
Hi,
I am new to the linux kernel development area. I want to know what is the difference between kernel mode stack and user mode stack? Does each process has a user mode stack and a kernel mode stack?? Or Each process has a user mode stack and there is only one kernel mode stack that is shared by... (4 Replies)
Consider this bad code, edited in Windows and run via CygWin after dos2unix so be
aware of any hidden "\r" charatcers...
#!/bin/bash
n=0
stackit()
{
eval $1
if
then
exit 0
fi
n=$
echo "$n"
stackit stackit
}
stackit stackit
Run under CygWin:-
AMIGA:~> cd /tmp
AMIGA:/tmp>... (2 Replies)
Discussion started by: wisecracker
2 Replies
LEARN ABOUT NETBSD
stack_shrink
STACK(9) BSD Kernel Developer's Manual STACK(9)NAME
STACK -- stack macros
SYNOPSIS
#include <sys/param.h>
type
STACK_ALLOC(sp, size);
type
STACK_MAX(sp, size);
type
STACK_ALIGN(sp, bytes);
type
STACK_GROW(sp, size);
type
STACK_SHRINK(sp, size);
DESCRIPTION
A stack is an area of memory with a fixed origin but with a variable size. A stack pointer points to the most recently referenced location
on the stack. Initially, when the stack has a size of zero, the stack pointer points to the origin of the stack. When data items are added
to the stack, the stack pointer moves away from the origin.
The STACK_ALLOC() macro returns a pointer to allocated stack space of some size. Given the returned pointer sp and size, STACK_MAX() returns
the maximum stack address of the allocated stack space. The STACK_ALIGN() macro can be used to align the stack pointer sp by the specified
amount of bytes.
Two basic operations are common to all stacks: a data item is added (``push'') to the location pointed by sp or a data item is removed
(``pop'') from the stack. The stack pointer must be subsequently adjusted by the size of the data item. The STACK_GROW() and STACK_SHRINK()
macros adjust the stack pointer sp by given size.
A stack may grow either up or down. The described macros take this into account by using the __MACHINE_STACK_GROWS_UP preprocessor define.
SEE ALSO param(3), queue(3)BSD April 8, 2011 BSD