<?xml version="1.0" encoding="utf-8"?>
<!-- generator="wordpress/1.5.1-alpha" -->
<rss version="2.0" 
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
>

<channel>
	<title>in the name of zero</title>
	<link>http://gnurbs.blogsome.com</link>
	<description>amerei's my blessed holy rants</description>
	<pubDate>Sun, 13 Dec 2009 13:31:01 +0000</pubDate>
	<generator>http://wordpress.org/?v=1.5.1-alpha</generator>
	<language>en</language>

		<item>
		<title>more on c99 vlas</title>
		<link>http://gnurbs.blogsome.com/2009/12/13/more-on-c99-vlas/</link>
		<comments>http://gnurbs.blogsome.com/2009/12/13/more-on-c99-vlas/#comments</comments>
		<pubDate>Sun, 13 Dec 2009 13:28:57 +0000</pubDate>
		<dc:creator>sleepy jenkins</dc:creator>
		
	<category>hermetic studies</category>
		<guid>http://gnurbs.blogsome.com/2009/12/13/more-on-c99-vlas/</guid>
		<description><![CDATA[	i found time to whip a quick c mojo to test c99 variable length arrays for some
low level inspection.
	but first, i quote gcc info:
	A new edition of the ISO C standard was published in 1999 as ISO/IEC
9899:1999, and is commonly known as &#8220;C99&#8243;.  GCC has incomplete support
for this standard version; see
`http://gcc.gnu.org/gcc-4.3/c99status.html&#8217; for details.  [...]]]></description>
			<content:encoded><![CDATA[	<p>i found time to whip a quick c mojo to test c99 variable length arrays for some<br />
low level inspection.</p>
	<p>but first, i quote gcc info:</p>
	<blockquote><p>A new edition of the ISO C standard was published in 1999 as ISO/IEC<br />
9899:1999, and is commonly known as &#8220;C99&#8243;.  GCC has incomplete support<br />
for this standard version; see<br />
`http://gcc.gnu.org/gcc-4.3/c99status.html&#8217; for details.  To select this<br />
standard, use `-std=c99&#8242; or `-std=iso9899:1999&#8242;.  (While in<br />
development, drafts of this standard version were referred to as &#8220;C9X&#8221;.)</p></blockquote>
	<p>it was interesting to note that gcc prevented me from doing a file scope VLA<br />
definition. see below.</p>
	<p><code>stef@angela ~/git/trash/variable_length_arrays $ gcc -std=c99 -o vlatest vlatest.c<br />
vlatest.c:5: error: variably modified 's3' at file scope</code></p>
	<p>im rather satisfied with this so i&#8217;ll leave it as it is. observing the assemler<br />
listing after the prolog suggested that the compiler puts in a lot of work to<br />
support the variable length array:</p>
	<p>1) allocating of a minimalist stack area for for the operation<br />
2) then, subsequently computing the space needed to further subtract the esp.</p>
	<p>&#8230; it&#8217;s almost as if alloca() has been inlined.</p>
]]></content:encoded>
			<wfw:commentRss>http://gnurbs.blogsome.com/2009/12/13/more-on-c99-vlas/feed/</wfw:commentRss>
	</item>
		<item>
		<title>c99 VLA is a great solid new feature, but im sticking to the old ways</title>
		<link>http://gnurbs.blogsome.com/2009/12/12/c99-vla-is-a-great-solid-new-feature-but-im-sticking-to-the-old-ways/</link>
		<comments>http://gnurbs.blogsome.com/2009/12/12/c99-vla-is-a-great-solid-new-feature-but-im-sticking-to-the-old-ways/#comments</comments>
		<pubDate>Fri, 11 Dec 2009 23:05:20 +0000</pubDate>
		<dc:creator>sleepy jenkins</dc:creator>
		
	<category>hermetic studies</category>
		<guid>http://gnurbs.blogsome.com/2009/12/12/c99-vla-is-a-great-solid-new-feature-but-im-sticking-to-the-old-ways/</guid>
		<description><![CDATA[	i come from a language that restricts the size of arrays to static compile time length. any c programmer wishing to get around this inconvenience simply has to call malloc() to return a memory region that fits. but malloc() calls require an equal number of free(), which basically means overhead if you&#8217;re allocating temporary (in-function) [...]]]></description>
			<content:encoded><![CDATA[	<p>i come from a language that restricts the size of arrays to static compile time length. any c programmer wishing to get around this inconvenience simply has to call malloc() to return a memory region that fits. but malloc() calls require an equal number of free(), which basically means overhead if you&#8217;re allocating temporary (in-function) buffers - we have alloca() for that sort of stuff. more often than not, alloca() is a compiler instrinsic interface (since it manipulates the stack and god knows what the compiler follows for a stack allocation convention apart from the ABI).</p>
	<p>VLAs permit for a good clean code though. i havent read the entire c99 standard yet so i dont know the scopes and limitations for this feature. but if ever i care to use the c99 VLAs, the first thing i wanna know is how the compiler will generate code when i declare my variable length array at file scope with another file scope variable (hopefully, without the use of any libstdc).</p>
	<p>in file scope:</p>
	<p>char array1[10]; // static block at section .bss (compile time)<br />
char array2[10] = {0}; // at .data section (compile time)</p>
	<p>but if i say:</p>
	<p>extern int size;<br />
char array1[size]; </p>
	<p>how would the section be allocated since size is also unknown? i doubt they&#8217;ll place allocations in the startup runtime lib (since, hell im  a broken record, size is unknown during startup) - and would array1[] still be allocated at .bss? (more like the heap since its runtime allocated but i&#8217;ll see soon enough)</p>
	<p>i need to study up on this.
</p>
]]></content:encoded>
			<wfw:commentRss>http://gnurbs.blogsome.com/2009/12/12/c99-vla-is-a-great-solid-new-feature-but-im-sticking-to-the-old-ways/feed/</wfw:commentRss>
	</item>
		<item>
		<title>salutations manny &#8220;pacman&#8221; pacquiao!!</title>
		<link>http://gnurbs.blogsome.com/2009/11/15/salutations-manny-pacman-pacquiao/</link>
		<comments>http://gnurbs.blogsome.com/2009/11/15/salutations-manny-pacman-pacquiao/#comments</comments>
		<pubDate>Sun, 15 Nov 2009 06:29:50 +0000</pubDate>
		<dc:creator>sleepy jenkins</dc:creator>
		
	<category>easter eggs</category>
		<guid>http://gnurbs.blogsome.com/2009/11/15/salutations-manny-pacman-pacquiao/</guid>
		<description><![CDATA[	godd@mn! i could have sworn my heart stopped beating at the crucial 12th round!

]]></description>
			<content:encoded><![CDATA[	<p>godd@mn! i could have sworn my heart stopped beating at the crucial 12th round!
</p>
]]></content:encoded>
			<wfw:commentRss>http://gnurbs.blogsome.com/2009/11/15/salutations-manny-pacman-pacquiao/feed/</wfw:commentRss>
	</item>
		<item>
		<title>bangungot, but not quite</title>
		<link>http://gnurbs.blogsome.com/2009/10/22/bangungot-but-not-quite/</link>
		<comments>http://gnurbs.blogsome.com/2009/10/22/bangungot-but-not-quite/#comments</comments>
		<pubDate>Wed, 21 Oct 2009 19:20:48 +0000</pubDate>
		<dc:creator>sleepy jenkins</dc:creator>
		
	<category>notes, letters, reflections</category>
		<guid>http://gnurbs.blogsome.com/2009/10/22/bangungot-but-not-quite/</guid>
		<description><![CDATA[	experienced sleep paralysis. freaky as hell! i was half asleep. i knew.. because i can see my room. a few minutes before.. i felt someone/or something creeping up from behind me-and then it happened. the whole ordeal freaked me out!
	the extreme malevolent evil manifest with every intention to kill - i guess i knew instinctively. [...]]]></description>
			<content:encoded><![CDATA[	<p>experienced sleep paralysis. freaky as hell! i was half asleep. i knew.. because i can see my room. a few minutes before.. i felt someone/or something creeping up from behind me-and then it happened. the whole ordeal freaked me out!</p>
	<p>the extreme malevolent evil manifest with every intention to kill - i guess i knew instinctively. Manifest evil is not something I am given to commonly contemplating. I grew up with a religious fear of both God and the Devil.  So this image and theme came as a disturbing revelation.</p>
	<p>the science explained by wikipedia (http://en.wikipedia.org/wiki/Sleep_paralysis) is supposed to make me feel better and a little more educated&#8230; i guess. but im not feeling reassured anytime soon. infact, im writing this entry at 3:17 am - to just keep myself awake!</p>
	<p>that is some freaky shit i just experienced.</p>
]]></content:encoded>
			<wfw:commentRss>http://gnurbs.blogsome.com/2009/10/22/bangungot-but-not-quite/feed/</wfw:commentRss>
	</item>
		<item>
		<title>beginning simple circuits analysis with kirchoffs laws</title>
		<link>http://gnurbs.blogsome.com/2009/10/10/beginning-simple-circuits-analysis-with-kirchoffs-laws/</link>
		<comments>http://gnurbs.blogsome.com/2009/10/10/beginning-simple-circuits-analysis-with-kirchoffs-laws/#comments</comments>
		<pubDate>Sat, 10 Oct 2009 06:12:26 +0000</pubDate>
		<dc:creator>sleepy jenkins</dc:creator>
		
	<category>hermetic studies</category>
		<guid>http://gnurbs.blogsome.com/2009/10/10/beginning-simple-circuits-analysis-with-kirchoffs-laws/</guid>
		<description><![CDATA[	i&#8217;ve been rather consistent in my electrical learning with regards to schedule. the concepts, compelling, and i plan to drill the fundamentals (minus the hardcore physics stuff) in my head. my officemates have been more than helpful in explaining and teaching me the ways of electricity.
	[ teaching the mind to do tricks is painful ]
	the [...]]]></description>
			<content:encoded><![CDATA[	<p>i&#8217;ve been rather consistent in my electrical learning with regards to schedule. the concepts, compelling, and i plan to drill the fundamentals (minus the hardcore physics stuff) in my head. my officemates have been more than helpful in explaining and teaching me the ways of electricity.</p>
	<p>[ <b>teaching the mind to do tricks is painful</b> ]</p>
	<p>the past nights, i&#8217;ve covered Ohm&#8217;s law and have solved some beginner problems.BUT - the thing i found frustrating at first was determining if a specific circuit is series or parallel - especially in bigger circuits with multiple paths. anyway, i&#8217;m over that frustration now and i&#8217;m beginning to have that automatic mental ability of re-drawing a circuit in my mind so i can see things clearly.</p>
	<p>[ <b>kirchoff&#8217;s law</b> ]</p>
	<p>&#8220;The algebraic sum of the currents into any point of the circuit must equal the algebraic sum of the currents going out of that point&#8221;</p>
	<p>and </p>
	<p>&#8220;The algebraic sum of all voltages in a loop must equal zero&#8221;</p>
	<p>the first sample circuit problem is outlined below: solve for the current across resistor R3.</p>
	<p><img src='/images/sample_circuit.png' alt='' /></p>
	<p>i reached only up to the two equations part since the I1 terms of both equations could not cancel out each other. </p>
	<p><img src='/images/equations_breakdown.png' alt='' /></p>
	<p>stuck halfway&#8230;</p>
	<p><img src='/images/loop_breakdown.png' alt='' /></p>
	<p>i still had 2 unkowns (I1 and I2). turning to the book, it said i need to normalize I1 in such a way that subtraction of those two equations will cancel out the terms with I1 - multiplying the second equation by 4.</p>
	<p><img src='/images/final_answer.png' alt='' /></p>
	<p>there are many more problems i plan to solve but i&#8217;ve had enough kirchoffs law for one day.</p>
]]></content:encoded>
			<wfw:commentRss>http://gnurbs.blogsome.com/2009/10/10/beginning-simple-circuits-analysis-with-kirchoffs-laws/feed/</wfw:commentRss>
	</item>
		<item>
		<title>kmap and boolean algebra</title>
		<link>http://gnurbs.blogsome.com/2009/10/03/kmap-and-boolean-algebra/</link>
		<comments>http://gnurbs.blogsome.com/2009/10/03/kmap-and-boolean-algebra/#comments</comments>
		<pubDate>Sat, 03 Oct 2009 06:59:10 +0000</pubDate>
		<dc:creator>sleepy jenkins</dc:creator>
		
	<category>hermetic studies</category>
		<guid>http://gnurbs.blogsome.com/2009/10/03/kmap-and-boolean-algebra/</guid>
		<description><![CDATA[	being your own teacher&#8230; is its own reward
	i&#8217;ve been reading and learning about analog and digital electronics during my free time and during weekends. it has been a great learning experience and i wish i had a formal curriculum to follow with this gig. its been at most 4 years since i last used boolean [...]]]></description>
			<content:encoded><![CDATA[	<blockquote><p>being your own teacher&#8230; is its own reward</p></blockquote>
	<p>i&#8217;ve been reading and learning about analog and digital electronics during my free time and during weekends. it has been a great learning experience and i wish i had a formal curriculum to follow with this gig. its been at most 4 years since i last used boolean algebra to this extent so im expecting things to be a bit rusty and wrong. i&#8217;m starting with the infamous 4 bit BCD to 7 segment since it&#8217;s the most basic, confidence boosting, hands-on activity i can think of.</p>
	<p>[<b>updates</b>]</p>
	<p>the problem with my initial kmaps was that they didn&#8217;t follow gray code. therefore, 00, 01, 10, 11 should have been 00, 01, 11, 00 wherein only a single bit changes everytime. a binary sequence from 01 to 10 changes two bits; 0 to 1, and 1 to 0 in their corresponding places.</p>
	<p>i also noticed that the number of logic gates used to implement a 7 segment that displays 0x0-0xF is staggering and it would take up an exceedingly large space in my breadboard, so i lowered the digits it could display up to 9 only.</p>
	<p>the figure below is my new truth table, with 10-15 as dont-cares.</p>
	<p><img src="http://img.photobucket.com/albums/v298/amerei1/ee/seven_segment_truth_table.png" alt="" /></p>
	<p>which yields the following logic circuit for A to G.</p>
	<p><img src="http://img.photobucket.com/albums/v298/amerei1/ee/0-9-kmap.png" alt="" /></p>
	<p>but a simplification is still in order, mainly because there are combinations that yield a shorter sub-expression. </p>
	<pre class="block">A = A + C + BD + B'D'
	
1) (A + C + BD + B'D')'              ; de morgan's
	
2) (A') (C') (B' + D') (B + D)       ; distribute
	
3) (A') (C') (B'B + B'D + BD' + D'D) ; theorem 16: A'A = 0
	
4) (A') (C') (B'D + BD')             ; A'B + AB' < => A xor B
	
5) ((A&#8217;) (C&#8217;) (B xor D))&#8217;            ; de morgan&#8217;s
	
6) A + C + (B xor D)&#8217;                ; final answer</pre>
	<p>assuming only single - 2 input cmos gates + sinle inverters</p>
	<pre class="block">A + C + BD + B'D' = 6 gates
	
A + C + (B xor D)' = 4 gates</pre>
	<p>thats a savings of 2 logic gates! </p>
	<p>the simplified XOR expression is very elegant, but i don&#8217;t have any CMOS xor gates in hand right now. so i&#8217;m sticking with the longer logic expressions which does not utilize an XOR operation.</p>
]]></content:encoded>
			<wfw:commentRss>http://gnurbs.blogsome.com/2009/10/03/kmap-and-boolean-algebra/feed/</wfw:commentRss>
	</item>
		<item>
		<title>say what!?</title>
		<link>http://gnurbs.blogsome.com/2009/03/29/say-what/</link>
		<comments>http://gnurbs.blogsome.com/2009/03/29/say-what/#comments</comments>
		<pubDate>Sun, 29 Mar 2009 06:00:10 +0000</pubDate>
		<dc:creator>sleepy jenkins</dc:creator>
		
	<category>Uncategorized</category>
	<category>easter eggs</category>
		<guid>http://gnurbs.blogsome.com/2009/03/29/say-what/</guid>
		<description><![CDATA[	achtung! grand douche-baggery&#8230;  http://hk-magazine.com/feature/war-home 
	update! update! update! update! update! update! update! 
	 http://dfa.gov.ph/?p=3962

]]></description>
			<content:encoded><![CDATA[	<p>achtung! <strong>grand douche-baggery</strong>&#8230;  http://hk-magazine.com/feature/war-home </p>
	<p><strong>update! update! update! update! update! update! update! </strong></p>
	<p> http://dfa.gov.ph/?p=3962
</p>
]]></content:encoded>
			<wfw:commentRss>http://gnurbs.blogsome.com/2009/03/29/say-what/feed/</wfw:commentRss>
	</item>
		<item>
		<title>merry christmas</title>
		<link>http://gnurbs.blogsome.com/2008/12/24/merry-christmas-2/</link>
		<comments>http://gnurbs.blogsome.com/2008/12/24/merry-christmas-2/#comments</comments>
		<pubDate>Wed, 24 Dec 2008 09:28:41 +0000</pubDate>
		<dc:creator>sleepy jenkins</dc:creator>
		
	<category>Uncategorized</category>
	<category>easter eggs</category>
		<guid>http://gnurbs.blogsome.com/2008/12/24/merry-christmas-2/</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[
]]></content:encoded>
			<wfw:commentRss>http://gnurbs.blogsome.com/2008/12/24/merry-christmas-2/feed/</wfw:commentRss>
	</item>
		<item>
		<title>negima</title>
		<link>http://gnurbs.blogsome.com/2008/11/23/negima/</link>
		<comments>http://gnurbs.blogsome.com/2008/11/23/negima/#comments</comments>
		<pubDate>Sun, 23 Nov 2008 05:46:49 +0000</pubDate>
		<dc:creator>sleepy jenkins</dc:creator>
		
	<category>stuff i watch and stuff i listen to</category>
		<guid>http://gnurbs.blogsome.com/2008/11/23/negima/</guid>
		<description><![CDATA[	
	ain&#8217;t she the cutest!!!!!!?????? i&#8217;m soo&#8230; like&#8230; smitten! but geez! i can&#8217;t believe i&#8217;m in love with a damn drawing!

]]></description>
			<content:encoded><![CDATA[	<p><a href="http://smg.photobucket.com/albums/v298/amerei1/?action=view&#038;current=nodokafull.jpg" target="_blank"><img src="http://img.photobucket.com/albums/v298/amerei1/nodokafull.jpg" border="0" alt="nodoka"/></a></p>
	<p><b><font size="56">ain&#8217;t she the cutest!!!!!!??????</font></b> i&#8217;m soo&#8230; like&#8230; <b><font size="56">smitten!</font></b> but geez! i can&#8217;t believe i&#8217;m in love with a damn drawing!
</p>
]]></content:encoded>
			<wfw:commentRss>http://gnurbs.blogsome.com/2008/11/23/negima/feed/</wfw:commentRss>
	</item>
		<item>
		<title>let&#8217;s learn powerpc linux!</title>
		<link>http://gnurbs.blogsome.com/2008/11/08/lets-learn-powerpc-linux/</link>
		<comments>http://gnurbs.blogsome.com/2008/11/08/lets-learn-powerpc-linux/#comments</comments>
		<pubDate>Sat, 08 Nov 2008 10:27:23 +0000</pubDate>
		<dc:creator>sleepy jenkins</dc:creator>
		
	<category>hermetic studies</category>
	<category>reverse engineering</category>
		<guid>http://gnurbs.blogsome.com/2008/11/08/lets-learn-powerpc-linux/</guid>
		<description><![CDATA[	       i&#8217;m actually using gcc4 and noticed that there are minor deviations
        from the usual prolog/epilog functions since gcc3 when doing intel. i
        have to read up on this.
	so let&#8217;s try to follow a simple [...]]]></description>
			<content:encoded><![CDATA[	<p>       i&#8217;m actually using gcc4 and noticed that there are minor deviations<br />
        from the usual prolog/epilog functions since gcc3 when doing intel. i<br />
        have to read up on this.</p>
	<p>so let&#8217;s try to follow a simple &#8220;hello world&#8221; program to see how gcc makes ppc<br />
programs. it&#8217;s compiled with no optimizations.</p>
	<pre class="block">int procedure1(const char *string)
{
        printf(string);
        return 0;
}
	
int main(int argc, char *argv[])
{
        return procedure1(\"hello world\n\");
}</pre>
	<p>the V4 stack frame.</p>
	<pre class="block">	SP---->	+---------------------------------------+
		| back chain to caller			| 0
		+---------------------------------------+
		| saved LR				| 4
		+---------------------------------------+
		| Parameter save area (P)		| 8
		+---------------------------------------+
		| Alloca space (A)			| 8+P
		+---------------------------------------+
		| Local variable space (L)		| 8+P+A
		+---------------------------------------+
		| saved CR (C)				| 8+P+A+L
		+---------------------------------------+
		| Save area for GP registers (G)	| 8+P+A+L+C
		+---------------------------------------+
		| Save area for FP registers (F)	| 8+P+A+L+C+G
		+---------------------------------------+
	old SP->| back chain to caller's caller		|
		+---------------------------------------+
</pre>
	<p>the V4 Registers</p>
	<p>    r0		volatile, may be used by function linkage<br />
    r1		stack pointer<br />
    r2		reserved for system<br />
    r3	.. r4	volatile, pass 1st - 2nd int args, return 1st - 2nd ints<br />
    r5  .. r10	volatile, pass 3rd - 8th int args<br />
    r11	.. r12	volatile, may be used by function linkage<br />
    r13		small data area pointer<br />
    r14 .. r31	saved<br />
    f0		volatile<br />
    f1		volatile, pass 1st float arg, return 1st float<br />
    f2  .. f8	volatile, pass 2nd - 8th float args<br />
    f9  .. f13	volatile<br />
    f14 .. f30	saved<br />
    f31		saved, static chain if needed.<br />
    lr		volatile, return address<br />
    ctr		volatile<br />
    xer		volatile<br />
    fpscr	volatile*<br />
    cr0		volatile<br />
    cr1		volatile**<br />
    cr2 .. cr4	saved<br />
    cr5 .. cr7	volatile</p>
	<p>* The VE, OE, UE, ZE, XE, NI, and RN (rounding mode) bits of the FPSCR may be<br />
changed only by a called function such as fpsetround that has the documented<br />
effect of changing them, the rest of the FPSCR is volatile.</p>
	<p>** Bit 6 of the CR (CR1 floating point invalid exception bit) is set to 1 if a<br />
variable argument function is passed floating point arguments in registers.</p>
	<p>the PPC architecture does not have a push/pop instruction that implicitly<br />
operates on the stack. as such, stack management could be a little more &#8220;hands<br />
on&#8221; on PPC in comparison to intel. the stack frame convention above is defined<br />
to support parameter passing, reserved registers (nonvolatile) preservation and<br />
local variables. each function which either calls another function or modifies<br />
saved register must create a stack frame from memory set aside for use as a<br />
stack defined by the r1 register (r1 = sp). </p>
	<p>the stwu instruction assures that stack frame allocation is atomic. stack<br />
space is allocated and the sp (r1) is updated in just one instruction.</p>
	<p>parameter passing. ppc passes function parameters thru registers rather than<br />
pushing them all in the stack.</p>
	<pre class="block">&lt;procedure1&gt;
stwu    r1,-32(r1)  ; save former and allocate a new stack frame
mflr    r0          ; return addr of procedure1()
stw     r31,28(r1)  ; save r31
stw     r0,36(r1)   ; save r0
mr      r31,r1      ; mirror sp
stw     r3,8(r31)   ; save char * to stack
lwz     r3,8(r31)   ; argument to printf
bl      10010a00
<printf @plt>
li      r0,0        ; r0 = 0
mr      r3,r0       ; r3 = 0 = return value
lwz     r11,0(r1)   ; access back chain
lwz     r0,4(r11)   ; access return address
mtlr    r0          ; update link register with return addr of procedure1()
lwz     r31,-4(r11) ; restore r31
mr      r1,r11      ; restore caller&#8217;s stack
blr                 ; return to caller
	
&lt;main&gt;
stwu    r1,-32(r1)      ; save former frame and allocate a new stack frame
mflr    r0              ; return address of main()
stw     r31,28(r1)      ; save r31
stw     r0,36(r1)       ; save link register
mr      r31,r1          ; mirror sp
stw     r3,8(r31)       ; save r3
stw     r4,12(r31)      ; save r4
lis     r9,4096         ; lower 16 bits of string addr
addi    r3,r9,2176      ; higher 16 bits of string addr
bl      10000434
<procedure1> ; procedure1(char *)
mr      r0,r3           ; r0 = return val of procedure1()
mr      r3,r0           ; r3 = 0 (retval)
lwz     r11,0(r1)       ; access back chain
lwz     r0,4(r11)       ; access return address
mtlr    r0              ; update link register
lwz     r31,-4(r11)     ; restore r31
mr      r1,r11          ; restore stack frame
blr                     ; leave main()
</procedure1></printf></pre>
	<p>next time, we&#8217;ll delve more deeper and see how to access system calls directly<br />
and how these system calls are implemented.</p>
]]></content:encoded>
			<wfw:commentRss>http://gnurbs.blogsome.com/2008/11/08/lets-learn-powerpc-linux/feed/</wfw:commentRss>
	</item>
	</channel>
</rss>

