<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> <html> <head> <title>.:: The Converted Virtual Machine Instruction Set ::.</title> </head> <body BGCOLOR="#DbDbDb" text="#000000" LINK="#0C0C0C" VLINK="#070707" ALINK="#007007"> <h1 align="center"> Pointer handling </h1><br><hr><p> <table border="0" align="center" width="80%"> <tr><td> <!--LEFT BLOCK--> <table border="0" bordercolor="#CDCDCD" align="left" cellspacing="3" cellpadding="5" cols="4"> <tr> <td> <a href="#bread"><b>bread</b></a></td><td> <a href="#bwrite"><b>bwrite</b></a></td><td> <a href="#bwrite_r"><b>bwrite_r</b></a></td><td> <a href="#dread"><b>dread</b></a></td></tr><tr><td> <a href="#dwrite"><b>dwrite</b></a></td><td> <a href="#dwrite_r"><b>dwrite_r</b></a></td><td> <a href="#fread"><b>fread</b></a></td><td> <a href="#fwrite"><b>fwrite</b></a></td></tr><tr><td> <a href="#fwrite_r"><b>fwrite_r</b></a></td><td> <a href="#iread"><b>iread</b></a></td><td> <a href="#iwrite"><b>iwrite</b></a></td><td> <a href="#iwrite_r"><b>iwrite_r</b></a></td></tr><tr><td> <a href="#mread"><b>mread</b></a></td><td> <a href="#mwrite"><b>mwrite</b></a></td><td> <a href="#mwrite_r"><b>mwrite_r</b></a></td><td> <a href="#padd_i4"><b>padd_i4</b></a></td></tr><tr><td> <a href="#padd_i4_r"><b>padd_i4_r</b></a></td><td> <a href="#padd_i8"><b>padd_i8</b></a></td><td> <a href="#padd_i8_r"><b>padd_i8_r</b></a></td><td> <a href="#padd_offset"><b>padd_offset</b></a></td></tr><tr><td> <a href="#padd_offset_n"><b>padd_offset_n</b></a></td><td> <a href="#pread"><b>pread</b></a></td><td> <a href="#psub"><b>psub</b></a></td><td> <a href="#psub_i4"><b>psub_i4</b></a></td></tr><tr><td> <a href="#psub_i8"><b>psub_i8</b></a></td><td> <a href="#pwrite"><b>pwrite</b></a></td><td> <a href="#pwrite_r"><b>pwrite_r</b></a></td><td> <a href="#sread"><b>sread</b></a></td></tr><tr><td> <a href="#swrite"><b>swrite</b></a></td><td> <a href="#swrite_r"><b>swrite_r</b></a></td><td> <a href="#ubread"><b>ubread</b></a></td><td> <a href="#usread"><b>usread</b></a></td></tr><tr></tr></table></td></tr></table><p><hr><p><table cellpadding="5" cellspacing="0" bordercolor="#000000" border=" 1" align="center" width="80%"> <tr bgcolor="#7F7F7F" border="2"><td border="0" width="30%"> <a name="bread"> <font color="#FFFFFF" size="+5"> bread</font></a></td><td align="right" border="0"> </td></tr><tr border="1"><td border="0"> · <b>Operation</b></td><td border="0">Read <code>int8</code> from pointer</td></tr><tr border="0"><td border="0"> · <b>Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>bread</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Direct Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>{bread}</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Forms </b></td><td border="0"><i>bread</i> = 33 (0x21)<br></td></tr><tr border="0"><td border="0"> · <b>Stack</b></td><td border="0"><i>..., pointer</i> => <i>..., value</i></td></tr><tr border="0"><td border="0" valign="top"> · <b>Description </b></td><td border="0">Pop <i>pointer</i> from the stack as type <code>ptr</code>. Read the 8 bit value at <i>pointer</i> in memory, sign-extend it to <code>int32</code> and push it onto the stack.</td></tr></table><br><br><table cellpadding="5" cellspacing="0" bordercolor="#000000" border=" 1" align="center" width="80%"> <tr bgcolor="#7F7F7F" border="2"><td border="0" width="30%"> <a name="bwrite"> <font color="#FFFFFF" size="+5"> bwrite</font></a></td><td align="right" border="0"> </td></tr><tr border="1"><td border="0"> · <b>Operation</b></td><td border="0">Write <code>int8</code> to pointer</td></tr><tr border="0"><td border="0"> · <b>Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>bwrite</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Direct Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>{bwrite}</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Forms </b></td><td border="0"><i>bwrite</i> = 42 (0x2A)<br></td></tr><tr border="0"><td border="0"> · <b>Stack</b></td><td border="0"><i>..., pointer, value</i> => <i>...</i></td></tr><tr border="0"><td border="0" valign="top"> · <b>Description </b></td><td border="0">Pop <i>pointer</i> and <i>value</i> from the stack as the types <code>ptr</code> and <code>int32</code> respectively. Truncate <i>value</i> to 8 bits and write it to <i>pointer</i> in memory.</td></tr><tr border="0"><td border="0" valign="top"> · <b>Notes </b></td><td border="0">This instruction can also be used to write values of type <code>uint8</code> to memory.</td></tr></table><br><br><table cellpadding="5" cellspacing="0" bordercolor="#000000" border=" 1" align="center" width="80%"> <tr bgcolor="#7F7F7F" border="2"><td border="0" width="30%"> <a name="bwrite_r"> <font color="#FFFFFF" size="+5"> bwrite_r</font></a></td><td align="right" border="0"> </td></tr><tr border="1"><td border="0"> · <b>Operation</b></td><td border="0">Write <code>int8</code> to pointer with reversed arguments</td></tr><tr border="0"><td border="0"> · <b>Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>bwrite_r</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Direct Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>{bwrite_r}</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Forms </b></td><td border="0"><i>bwrite_r</i> = 49 (0x31)<br></td></tr><tr border="0"><td border="0"> · <b>Stack</b></td><td border="0"><i>..., value, pointer</i> => <i>...</i></td></tr><tr border="0"><td border="0" valign="top"> · <b>Description </b></td><td border="0">Pop <i>value</i> and <i>pointer</i> from the stack as the types <code>int32</code> and <code>ptr</code> respectively. Truncate <i>value</i> to 8 bits and write it to <i>pointer</i> in memory.</td></tr><tr border="0"><td border="0" valign="top"> · <b>Notes </b></td><td border="0">This instruction can also be used to write values of type <code>uint8</code> to memory.</td></tr></table><br><br><table cellpadding="5" cellspacing="0" bordercolor="#000000" border=" 1" align="center" width="80%"> <tr bgcolor="#7F7F7F" border="2"><td border="0" width="30%"> <a name="dread"> <font color="#FFFFFF" size="+5"> dread</font></a></td><td align="right" border="0"> </td></tr><tr border="1"><td border="0"> · <b>Operation</b></td><td border="0">Read <code>float64</code> from pointer</td></tr><tr border="0"><td border="0"> · <b>Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>dread</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Direct Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>{dread}</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Forms </b></td><td border="0"><i>dread</i> = 39 (0x27)<br></td></tr><tr border="0"><td border="0"> · <b>Stack</b></td><td border="0"><i>..., pointer</i> => <i>..., value</i></td></tr><tr border="0"><td border="0" valign="top"> · <b>Description </b></td><td border="0">Pop <i>pointer</i> from the stack as type <code>ptr</code>. Read the 64 bit <code>float64</code> value at <i>pointer</i> in memory, extend it to <code>native float</code>, and push it onto the stack.</td></tr></table><br><br><table cellpadding="5" cellspacing="0" bordercolor="#000000" border=" 1" align="center" width="80%"> <tr bgcolor="#7F7F7F" border="2"><td border="0" width="30%"> <a name="dwrite"> <font color="#FFFFFF" size="+5"> dwrite</font></a></td><td align="right" border="0"> </td></tr><tr border="1"><td border="0"> · <b>Operation</b></td><td border="0">Write <code>float64</code> to pointer</td></tr><tr border="0"><td border="0"> · <b>Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>dwrite</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Direct Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>{dwrite}</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Forms </b></td><td border="0"><i>dwrite</i> = 46 (0x2E)<br></td></tr><tr border="0"><td border="0"> · <b>Stack</b></td><td border="0"><i>..., pointer, value</i> => <i>...</i></td></tr><tr border="0"><td border="0" valign="top"> · <b>Description </b></td><td border="0">Pop <i>pointer</i> and <i>value</i> from the stack as the types <code>ptr</code> and <code>native float</code> respectively. Truncate <i>value</i> to <code>float64</code> and write it to <i>pointer</i> in memory.</td></tr></table><br><br><table cellpadding="5" cellspacing="0" bordercolor="#000000" border=" 1" align="center" width="80%"> <tr bgcolor="#7F7F7F" border="2"><td border="0" width="30%"> <a name="dwrite_r"> <font color="#FFFFFF" size="+5"> dwrite_r</font></a></td><td align="right" border="0"> </td></tr><tr border="1"><td border="0"> · <b>Operation</b></td><td border="0">Write <code>float64</code> to pointer with reversed arguments</td></tr><tr border="0"><td border="0"> · <b>Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>dwrite_r</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Direct Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>{dwrite_r}</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Forms </b></td><td border="0"><i>dwrite_r</i> = 53 (0x35)<br></td></tr><tr border="0"><td border="0"> · <b>Stack</b></td><td border="0"><i>..., value, pointer</i> => <i>...</i></td></tr><tr border="0"><td border="0" valign="top"> · <b>Description </b></td><td border="0">Pop <i>value</i> and <i>pointer</i> from the stack as the types <code>native float</code> and <code>ptr</code> respectively. Truncate <i>value</i> to <code>float64</code> and write it to <i>pointer</i> in memory.</td></tr></table><br><br><table cellpadding="5" cellspacing="0" bordercolor="#000000" border=" 1" align="center" width="80%"> <tr bgcolor="#7F7F7F" border="2"><td border="0" width="30%"> <a name="fread"> <font color="#FFFFFF" size="+5"> fread</font></a></td><td align="right" border="0"> </td></tr><tr border="1"><td border="0"> · <b>Operation</b></td><td border="0">Read <code>float32</code> from pointer</td></tr><tr border="0"><td border="0"> · <b>Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>fread</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Direct Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>{fread}</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Forms </b></td><td border="0"><i>fread</i> = 38 (0x26)<br></td></tr><tr border="0"><td border="0"> · <b>Stack</b></td><td border="0"><i>..., pointer</i> => <i>..., value</i></td></tr><tr border="0"><td border="0" valign="top"> · <b>Description </b></td><td border="0">Pop <i>pointer</i> from the stack as type <code>ptr</code>. Read the 32 bit <code>float32</code> value at <i>pointer</i> in memory, extend it to <code>native float</code>, and push it onto the stack.</td></tr></table><br><br><table cellpadding="5" cellspacing="0" bordercolor="#000000" border=" 1" align="center" width="80%"> <tr bgcolor="#7F7F7F" border="2"><td border="0" width="30%"> <a name="fwrite"> <font color="#FFFFFF" size="+5"> fwrite</font></a></td><td align="right" border="0"> </td></tr><tr border="1"><td border="0"> · <b>Operation</b></td><td border="0">Write <code>float32</code> to pointer</td></tr><tr border="0"><td border="0"> · <b>Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>fwrite</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Direct Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>{fwrite}</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Forms </b></td><td border="0"><i>fwrite</i> = 45 (0x2D)<br></td></tr><tr border="0"><td border="0"> · <b>Stack</b></td><td border="0"><i>..., pointer, value</i> => <i>...</i></td></tr><tr border="0"><td border="0" valign="top"> · <b>Description </b></td><td border="0">Pop <i>pointer</i> and <i>value</i> from the stack as the types <code>ptr</code> and <code>native float</code> respectively. Truncate <i>value</i> to <code>float32</code> and write it to <i>pointer</i> in memory.</td></tr></table><br><br><table cellpadding="5" cellspacing="0" bordercolor="#000000" border=" 1" align="center" width="80%"> <tr bgcolor="#7F7F7F" border="2"><td border="0" width="30%"> <a name="fwrite_r"> <font color="#FFFFFF" size="+5"> fwrite_r</font></a></td><td align="right" border="0"> </td></tr><tr border="1"><td border="0"> · <b>Operation</b></td><td border="0">Write <code>float32</code> to pointer with reversed arguments</td></tr><tr border="0"><td border="0"> · <b>Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>fwrite_r</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Direct Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>{fwrite_r}</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Forms </b></td><td border="0"><i>fwrite_r</i> = 52 (0x34)<br></td></tr><tr border="0"><td border="0"> · <b>Stack</b></td><td border="0"><i>..., value, pointer</i> => <i>...</i></td></tr><tr border="0"><td border="0" valign="top"> · <b>Description </b></td><td border="0">Pop <i>value</i> and <i>pointer</i> from the stack as the types <code>native float</code> and <code>ptr</code> respectively. Truncate <i>value</i> to <code>float32</code> and write it to <i>pointer</i> in memory.</td></tr></table><br><br><table cellpadding="5" cellspacing="0" bordercolor="#000000" border=" 1" align="center" width="80%"> <tr bgcolor="#7F7F7F" border="2"><td border="0" width="30%"> <a name="iread"> <font color="#FFFFFF" size="+5"> iread</font></a></td><td align="right" border="0"> </td></tr><tr border="1"><td border="0"> · <b>Operation</b></td><td border="0">Read <code>int32</code> from pointer</td></tr><tr border="0"><td border="0"> · <b>Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>iread</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Direct Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>{iread}</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Forms </b></td><td border="0"><i>iread</i> = 37 (0x25)<br></td></tr><tr border="0"><td border="0"> · <b>Stack</b></td><td border="0"><i>..., pointer</i> => <i>..., value</i></td></tr><tr border="0"><td border="0" valign="top"> · <b>Description </b></td><td border="0">Pop <i>pointer</i> from the stack as type <code>ptr</code>. Read the 32 bit <code>int32</code> value at <i>pointer</i> in memory, and push it onto the stack.</td></tr><tr border="0"><td border="0" valign="top"> · <b>Notes </b></td><td border="0">This instruction can also be used to read <code>uint32</code> values from memory.</td></tr></table><br><br><table cellpadding="5" cellspacing="0" bordercolor="#000000" border=" 1" align="center" width="80%"> <tr bgcolor="#7F7F7F" border="2"><td border="0" width="30%"> <a name="iwrite"> <font color="#FFFFFF" size="+5"> iwrite</font></a></td><td align="right" border="0"> </td></tr><tr border="1"><td border="0"> · <b>Operation</b></td><td border="0">Write <code>int32</code> to pointer</td></tr><tr border="0"><td border="0"> · <b>Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>iwrite</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Direct Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>{iwrite}</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Forms </b></td><td border="0"><i>iwrite</i> = 44 (0x2C)<br></td></tr><tr border="0"><td border="0"> · <b>Stack</b></td><td border="0"><i>..., pointer, value</i> => <i>...</i></td></tr><tr border="0"><td border="0" valign="top"> · <b>Description </b></td><td border="0">Pop <i>pointer</i> and <i>value</i> from the stack as the types <code>ptr</code> and <code>int32</code> respectively. Write <i>value</i> to <i>pointer</i> in memory.</td></tr><tr border="0"><td border="0" valign="top"> · <b>Notes </b></td><td border="0">This instruction can also be used to write values of type <code>uint32</code> to memory.</td></tr></table><br><br><table cellpadding="5" cellspacing="0" bordercolor="#000000" border=" 1" align="center" width="80%"> <tr bgcolor="#7F7F7F" border="2"><td border="0" width="30%"> <a name="iwrite_r"> <font color="#FFFFFF" size="+5"> iwrite_r</font></a></td><td align="right" border="0"> </td></tr><tr border="1"><td border="0"> · <b>Operation</b></td><td border="0">Write <code>int32</code> to pointer with reversed arguments</td></tr><tr border="0"><td border="0"> · <b>Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>iwrite_r</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Direct Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>{iwrite_r}</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Forms </b></td><td border="0"><i>iwrite_r</i> = 51 (0x33)<br></td></tr><tr border="0"><td border="0"> · <b>Stack</b></td><td border="0"><i>..., value, pointer</i> => <i>...</i></td></tr><tr border="0"><td border="0" valign="top"> · <b>Description </b></td><td border="0">Pop <i>value</i> and <i>pointer</i> from the stack as the types <code>int32</code> and <code>ptr</code> respectively. Write <i>value</i> to <i>pointer</i> in memory.</td></tr><tr border="0"><td border="0" valign="top"> · <b>Notes </b></td><td border="0">This instruction can also be used to write values of type <code>uint32</code> to memory.</td></tr></table><br><br><table cellpadding="5" cellspacing="0" bordercolor="#000000" border=" 1" align="center" width="80%"> <tr bgcolor="#7F7F7F" border="2"><td border="0" width="30%"> <a name="mread"> <font color="#FFFFFF" size="+5"> mread</font></a></td><td align="right" border="0"> </td></tr><tr border="1"><td border="0"> · <b>Operation</b></td><td border="0">Read multiple bytes from pointer</td></tr><tr border="0"><td border="0"> · <b>Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>mread</i></td></tr><tr><td align="center" width="100"><i>N[1]</i></td></tr></table></td><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>wide</i></td></tr><tr><td align="center" width="100"><i>mread</i></td></tr><tr><td align="center" width="100"><i>N[4]</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Direct Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>{mread}</i></td></tr><tr><td align="center" width="100"><i>N</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Forms </b></td><td border="0"><i>mread</i> = 41 (0x29)<br></td></tr><tr border="0"><td border="0"> · <b>Stack</b></td><td border="0"><i>..., pointer</i> => <i>..., value</i></td></tr><tr border="0"><td border="0" valign="top"> · <b>Description </b></td><td border="0">Pop <i>pointer</i> from the stack as type <code>ptr</code>. Read <i>N</i> bytes from <i>pointer</i> in memory, and push them onto the stack, aligned on a word boundary.</td></tr><tr border="0"><td border="0" valign="top"> · <b>Notes </b></td><td border="0">The exact number of stack words that is pushed depends upon the underlying platform.</td></tr></table><br><br><table cellpadding="5" cellspacing="0" bordercolor="#000000" border=" 1" align="center" width="80%"> <tr bgcolor="#7F7F7F" border="2"><td border="0" width="30%"> <a name="mwrite"> <font color="#FFFFFF" size="+5"> mwrite</font></a></td><td align="right" border="0"> </td></tr><tr border="1"><td border="0"> · <b>Operation</b></td><td border="0">Write multiple bytes to pointer</td></tr><tr border="0"><td border="0"> · <b>Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>mwrite</i></td></tr><tr><td align="center" width="100"><i>N[1]</i></td></tr></table></td><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>wide</i></td></tr><tr><td align="center" width="100"><i>mwrite</i></td></tr><tr><td align="center" width="100"><i>N[4]</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Direct Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>{mwrite}</i></td></tr><tr><td align="center" width="100"><i>N</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Forms </b></td><td border="0"><i>mwrite</i> = 48 (0x30)<br></td></tr><tr border="0"><td border="0"> · <b>Stack</b></td><td border="0"><i>..., pointer, value</i> => <i>...</i></td></tr><tr border="0"><td border="0" valign="top"> · <b>Description </b></td><td border="0">Pop <i>pointer</i> and <i>value</i> from the stack as the types <code>ptr</code> and <code>uint8[N]</code> (i.e. <i>N</i> bytes of data, aligned on a stack word) respectively. Write <i>value</i> to <i>pointer</i> in memory.</td></tr></table><br><br><table cellpadding="5" cellspacing="0" bordercolor="#000000" border=" 1" align="center" width="80%"> <tr bgcolor="#7F7F7F" border="2"><td border="0" width="30%"> <a name="mwrite_r"> <font color="#FFFFFF" size="+5"> mwrite_r</font></a></td><td align="right" border="0"> </td></tr><tr border="1"><td border="0"> · <b>Operation</b></td><td border="0">Write multiple bytes to pointer with reversed arguments</td></tr><tr border="0"><td border="0"> · <b>Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>mwrite_r</i></td></tr><tr><td align="center" width="100"><i>N[1]</i></td></tr></table></td><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>wide</i></td></tr><tr><td align="center" width="100"><i>mwrite_r</i></td></tr><tr><td align="center" width="100"><i>N[4]</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Direct Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>{mwrite_r}</i></td></tr><tr><td align="center" width="100"><i>N</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Forms </b></td><td border="0"><i>mwrite_r</i> = 55 (0x37)<br></td></tr><tr border="0"><td border="0"> · <b>Stack</b></td><td border="0"><i>..., value, pointer</i> => <i>...</i></td></tr><tr border="0"><td border="0" valign="top"> · <b>Description </b></td><td border="0">Pop <i>value</i> and <i>pointer</i> from the stack as the types <code>uint8[N]</code> (i.e. <i>N</i> bytes of data, aligned on a stack word) and <code>ptr</code> respectively. Write <i>value</i> to <i>pointer</i> in memory.</td></tr></table><br><br><table cellpadding="5" cellspacing="0" bordercolor="#000000" border=" 1" align="center" width="80%"> <tr bgcolor="#7F7F7F" border="2"><td border="0" width="30%"> <a name="padd_i4"> <font color="#FFFFFF" size="+5"> padd_i4</font></a></td><td align="right" border="0"> </td></tr><tr border="1"><td border="0"> · <b>Operation</b></td><td border="0">Add <code>int32</code> value to pointer</td></tr><tr border="0"><td border="0"> · <b>Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>padd_i4</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Direct Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>{padd_i4}</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Forms </b></td><td border="0"><i>padd_i4</i> = 135 (0x87)<br></td></tr><tr border="0"><td border="0"> · <b>Stack</b></td><td border="0"><i>..., pointer, value</i> => <i>..., newpointer</i></td></tr><tr border="0"><td border="0" valign="top"> · <b>Description </b></td><td border="0">Pop <i>pointer</i> and <i>value</i> from the stack as the types <code>ptr</code> and <code>int32</code> respectively. Compute <i>newpointer = pointer + value</i> and push <i>newpointer</i> onto the stack.</td></tr><tr border="0"><td border="0" valign="top"> · <b>Notes </b></td><td border="0">The <i>padd_offset</i> instruction is more efficient if <i>value</i> is constant and less than 256.</td></tr></table><br><br><table cellpadding="5" cellspacing="0" bordercolor="#000000" border=" 1" align="center" width="80%"> <tr bgcolor="#7F7F7F" border="2"><td border="0" width="30%"> <a name="padd_i4_r"> <font color="#FFFFFF" size="+5"> padd_i4_r</font></a></td><td align="right" border="0"> </td></tr><tr border="1"><td border="0"> · <b>Operation</b></td><td border="0">Add <code>int32</code> value to pointer with reversed arguments</td></tr><tr border="0"><td border="0"> · <b>Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>padd_i4_r</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Direct Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>{padd_i4_r}</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Forms </b></td><td border="0"><i>padd_i4_r</i> = 136 (0x88)<br></td></tr><tr border="0"><td border="0"> · <b>Stack</b></td><td border="0"><i>..., value, pointer</i> => <i>..., newpointer</i></td></tr><tr border="0"><td border="0" valign="top"> · <b>Description </b></td><td border="0">Pop <i>value</i> and <i>pointer</i> from the stack as the types <code>int32</code> and <code>ptr</code> respectively. Compute <i>newpointer = pointer + value</i> and push <i>newpointer</i> onto the stack.</td></tr></table><br><br><table cellpadding="5" cellspacing="0" bordercolor="#000000" border=" 1" align="center" width="80%"> <tr bgcolor="#7F7F7F" border="2"><td border="0" width="30%"> <a name="padd_i8"> <font color="#FFFFFF" size="+5"> padd_i8</font></a></td><td align="right" border="0"> </td></tr><tr border="1"><td border="0"> · <b>Operation</b></td><td border="0">Add <code>int64</code> value to pointer</td></tr><tr border="0"><td border="0"> · <b>Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>padd_i8</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Direct Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>{padd_i8}</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Forms </b></td><td border="0"><i>padd_i8</i> = 137 (0x89)<br></td></tr><tr border="0"><td border="0"> · <b>Stack</b></td><td border="0"><i>..., pointer, value</i> => <i>..., newpointer</i></td></tr><tr border="0"><td border="0" valign="top"> · <b>Description </b></td><td border="0">Pop <i>pointer</i> and <i>value</i> from the stack as the types <code>ptr</code> and <code>int64</code> respectively. Compute <i>newpointer = pointer + value</i> and push <i>newpointer</i> onto the stack.</td></tr><tr border="0"><td border="0" valign="top"> · <b>Notes </b></td><td border="0">The <i>value</i> will be truncated to 32 bits on platforms with 32 bit pointers.</td></tr></table><br><br><table cellpadding="5" cellspacing="0" bordercolor="#000000" border=" 1" align="center" width="80%"> <tr bgcolor="#7F7F7F" border="2"><td border="0" width="30%"> <a name="padd_i8_r"> <font color="#FFFFFF" size="+5"> padd_i8_r</font></a></td><td align="right" border="0"> </td></tr><tr border="1"><td border="0"> · <b>Operation</b></td><td border="0">Add <code>int64</code> value to pointer with reversed arguments</td></tr><tr border="0"><td border="0"> · <b>Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>padd_i8_r</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Direct Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>{padd_i8_r}</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Forms </b></td><td border="0"><i>padd_i8_r</i> = 138 (0x8A)<br></td></tr><tr border="0"><td border="0"> · <b>Stack</b></td><td border="0"><i>..., value, pointer</i> => <i>..., newpointer</i></td></tr><tr border="0"><td border="0" valign="top"> · <b>Description </b></td><td border="0">Pop <i>value</i> and <i>pointer</i> from the stack as the types <code>int64</code> and <code>ptr</code> respectively. Compute <i>newpointer = pointer + value</i> and push <i>newpointer</i> onto the stack.</td></tr><tr border="0"><td border="0" valign="top"> · <b>Notes </b></td><td border="0">The <i>value</i> will be truncated to 32 bits on platforms with 32 bit pointers.</td></tr></table><br><br><table cellpadding="5" cellspacing="0" bordercolor="#000000" border=" 1" align="center" width="80%"> <tr bgcolor="#7F7F7F" border="2"><td border="0" width="30%"> <a name="padd_offset"> <font color="#FFFFFF" size="+5"> padd_offset</font></a></td><td align="right" border="0"> </td></tr><tr border="1"><td border="0"> · <b>Operation</b></td><td border="0">Add a literal byte offset to a pointer</td></tr><tr border="0"><td border="0"> · <b>Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>padd_offset</i></td></tr><tr><td align="center" width="100"><i>N[1]</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Direct Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>{padd_offset}</i></td></tr><tr><td align="center" width="100"><i>N</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Forms </b></td><td border="0"><i>padd_offset</i> = 133 (0x85)<br></td></tr><tr border="0"><td border="0"> · <b>Stack</b></td><td border="0"><i>..., pointer</i> => <i>..., newpointer</i></td></tr><tr border="0"><td border="0" valign="top"> · <b>Description </b></td><td border="0">Pop <i>pointer</i> from the stack as type <code>ptr</code>. Compute <i>newpointer = pointer + N</i> and push <i>newpointer</i> onto the stack.</td></tr></table><br><br><table cellpadding="5" cellspacing="0" bordercolor="#000000" border=" 1" align="center" width="80%"> <tr bgcolor="#7F7F7F" border="2"><td border="0" width="30%"> <a name="padd_offset_n"> <font color="#FFFFFF" size="+5"> padd_offset_n</font></a></td><td align="right" border="0"> </td></tr><tr border="1"><td border="0"> · <b>Operation</b></td><td border="0">Add a literal byte offset to a pointer that is several words down the stack</td></tr><tr border="0"><td border="0"> · <b>Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>padd_offset_n</i></td></tr><tr><td align="center" width="100"><i>N[1]</i></td></tr><tr><td align="center" width="100"><i>M[1]</i></td></tr></table></td><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>wide</i></td></tr><tr><td align="center" width="100"><i>padd_offset_n</i></td></tr><tr><td align="center" width="100"><i>N[4]</i></td></tr><tr><td align="center" width="100"><i>M[4]</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Direct Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>{padd_offset_n}</i></td></tr><tr><td align="center" width="100"><i>N</i></td></tr><tr><td align="center" width="100"><i>M</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Forms </b></td><td border="0"><i>padd_offset_n</i> = 134 (0x86)<br></td></tr><tr border="0"><td border="0"> · <b>Stack</b></td><td border="0"><i>..., pointer, val1, ..., valN</i> => <i>..., newpointer, val1, ..., valN</i></td></tr><tr border="0"><td border="0" valign="top"> · <b>Description </b></td><td border="0">Read <i>pointer</i> from the <i>N</i> positions down the stack as type <code>ptr</code>. Compute <i>newpointer = pointer + M</i> and replace <i>pointer</i> with <i>newpointer</i>. A value of <i>N == 0</i> indicates the top-most stack word.</td></tr><tr border="0"><td border="0" valign="top"> · <b>Notes </b></td><td border="0">The <i>padd_offset</i> instruction is more efficient if <i>N == 0</i> and <i>M < 256</i>.</td></tr></table><br><br><table cellpadding="5" cellspacing="0" bordercolor="#000000" border=" 1" align="center" width="80%"> <tr bgcolor="#7F7F7F" border="2"><td border="0" width="30%"> <a name="pread"> <font color="#FFFFFF" size="+5"> pread</font></a></td><td align="right" border="0"> </td></tr><tr border="1"><td border="0"> · <b>Operation</b></td><td border="0">Read <code>ptr</code> from pointer</td></tr><tr border="0"><td border="0"> · <b>Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>pread</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Direct Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>{pread}</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Forms </b></td><td border="0"><i>pread</i> = 40 (0x28)<br></td></tr><tr border="0"><td border="0"> · <b>Stack</b></td><td border="0"><i>..., pointer</i> => <i>..., value</i></td></tr><tr border="0"><td border="0" valign="top"> · <b>Description </b></td><td border="0">Pop <i>pointer</i> from the stack as type <code>ptr</code>. Read the <code>ptr</code> value at <i>pointer</i> in memory, and push it onto the stack.</td></tr><tr border="0"><td border="0" valign="top"> · <b>Notes </b></td><td border="0">This instruction must not be confused with <i>iread</i>. Values of type <code>int32</code> and <code>ptr</code> do not necessarily occupy the same amount of memory space on all platforms.</td></tr></table><br><br><table cellpadding="5" cellspacing="0" bordercolor="#000000" border=" 1" align="center" width="80%"> <tr bgcolor="#7F7F7F" border="2"><td border="0" width="30%"> <a name="psub"> <font color="#FFFFFF" size="+5"> psub</font></a></td><td align="right" border="0"> </td></tr><tr border="1"><td border="0"> · <b>Operation</b></td><td border="0">Subtract pointer values</td></tr><tr border="0"><td border="0"> · <b>Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>psub</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Direct Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>{psub}</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Forms </b></td><td border="0"><i>psub</i> = 139 (0x8B)<br></td></tr><tr border="0"><td border="0"> · <b>Stack</b></td><td border="0"><i>..., value1, value2</i> => <i>..., result</i></td></tr><tr border="0"><td border="0" valign="top"> · <b>Description </b></td><td border="0">Pop <i>value1</i> and <i>value2</i> from the stack as type <code>ptr</code>. Compute <i>result = value1 - value2</i> and push <i>result</i> onto the stack. The type of <i>result</i> will be either <code>int32</code> or <code>int64</code>, depending upon the platform.</td></tr></table><br><br><table cellpadding="5" cellspacing="0" bordercolor="#000000" border=" 1" align="center" width="80%"> <tr bgcolor="#7F7F7F" border="2"><td border="0" width="30%"> <a name="psub_i4"> <font color="#FFFFFF" size="+5"> psub_i4</font></a></td><td align="right" border="0"> </td></tr><tr border="1"><td border="0"> · <b>Operation</b></td><td border="0">Subtract <code>int32</code> from pointer</td></tr><tr border="0"><td border="0"> · <b>Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>psub_i4</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Direct Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>{psub_i4}</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Forms </b></td><td border="0"><i>psub_i4</i> = 140 (0x8C)<br></td></tr><tr border="0"><td border="0"> · <b>Stack</b></td><td border="0"><i>..., pointer, value</i> => <i>..., newpointer</i></td></tr><tr border="0"><td border="0" valign="top"> · <b>Description </b></td><td border="0">Pop <i>pointer</i> and <i>value</i> from the stack as the types <code>ptr</code> and <code>int32</code> respectively. Compute <i>newpointer = pointer - value</i> and push <i>newpointer</i> onto the stack.</td></tr></table><br><br><table cellpadding="5" cellspacing="0" bordercolor="#000000" border=" 1" align="center" width="80%"> <tr bgcolor="#7F7F7F" border="2"><td border="0" width="30%"> <a name="psub_i8"> <font color="#FFFFFF" size="+5"> psub_i8</font></a></td><td align="right" border="0"> </td></tr><tr border="1"><td border="0"> · <b>Operation</b></td><td border="0">Subtract <code>int64</code> from pointer</td></tr><tr border="0"><td border="0"> · <b>Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>psub_i8</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Direct Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>{psub_i8}</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Forms </b></td><td border="0"><i>psub_i8</i> = 141 (0x8D)<br></td></tr><tr border="0"><td border="0"> · <b>Stack</b></td><td border="0"><i>..., pointer, value</i> => <i>..., newpointer</i></td></tr><tr border="0"><td border="0" valign="top"> · <b>Description </b></td><td border="0">Pop <i>pointer</i> and <i>value</i> from the stack as the types <code>ptr</code> and <code>int64</code> respectively. Compute <i>newpointer = pointer - value</i> and push <i>newpointer</i> onto the stack.</td></tr><tr border="0"><td border="0" valign="top"> · <b>Notes </b></td><td border="0">The <i>value</i> will be truncated to 32 bits on platforms with 32 bit pointers.</td></tr></table><br><br><table cellpadding="5" cellspacing="0" bordercolor="#000000" border=" 1" align="center" width="80%"> <tr bgcolor="#7F7F7F" border="2"><td border="0" width="30%"> <a name="pwrite"> <font color="#FFFFFF" size="+5"> pwrite</font></a></td><td align="right" border="0"> </td></tr><tr border="1"><td border="0"> · <b>Operation</b></td><td border="0">Write <code>ptr</code> to pointer</td></tr><tr border="0"><td border="0"> · <b>Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>pwrite</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Direct Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>{pwrite}</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Forms </b></td><td border="0"><i>pwrite</i> = 47 (0x2F)<br></td></tr><tr border="0"><td border="0"> · <b>Stack</b></td><td border="0"><i>..., pointer, value</i> => <i>...</i></td></tr><tr border="0"><td border="0" valign="top"> · <b>Description </b></td><td border="0">Pop <i>pointer</i> and <i>value</i> from the stack as type <code>ptr</code>. Write <i>value</i> to <i>pointer</i> in memory.</td></tr><tr border="0"><td border="0" valign="top"> · <b>Notes </b></td><td border="0">This instruction must not be confused with <i>iwrite</i>. Values of type <code>int32</code> and <code>ptr</code> do not necessarily occupy the same amount of memory space on all platforms.</td></tr></table><br><br><table cellpadding="5" cellspacing="0" bordercolor="#000000" border=" 1" align="center" width="80%"> <tr bgcolor="#7F7F7F" border="2"><td border="0" width="30%"> <a name="pwrite_r"> <font color="#FFFFFF" size="+5"> pwrite_r</font></a></td><td align="right" border="0"> </td></tr><tr border="1"><td border="0"> · <b>Operation</b></td><td border="0">Write <code>ptr</code> to pointer with reversed arguments</td></tr><tr border="0"><td border="0"> · <b>Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>pwrite_r</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Direct Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>{pwrite_r}</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Forms </b></td><td border="0"><i>pwrite_r</i> = 54 (0x36)<br></td></tr><tr border="0"><td border="0"> · <b>Stack</b></td><td border="0"><i>..., value, pointer</i> => <i>...</i></td></tr><tr border="0"><td border="0" valign="top"> · <b>Description </b></td><td border="0">Pop <i>value</i> and <i>pointer</i> from the stack as type <code>ptr</code>. Write <i>value</i> to <i>pointer</i> in memory.</td></tr><tr border="0"><td border="0" valign="top"> · <b>Notes </b></td><td border="0">This instruction must not be confused with <i>iwrite_r</i>. Values of type <code>int32</code> and <code>ptr</code> do not necessarily occupy the same amount of memory space on all platforms.</td></tr></table><br><br><table cellpadding="5" cellspacing="0" bordercolor="#000000" border=" 1" align="center" width="80%"> <tr bgcolor="#7F7F7F" border="2"><td border="0" width="30%"> <a name="sread"> <font color="#FFFFFF" size="+5"> sread</font></a></td><td align="right" border="0"> </td></tr><tr border="1"><td border="0"> · <b>Operation</b></td><td border="0">Read <code>int16</code> from pointer</td></tr><tr border="0"><td border="0"> · <b>Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>sread</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Direct Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>{sread}</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Forms </b></td><td border="0"><i>sread</i> = 35 (0x23)<br></td></tr><tr border="0"><td border="0"> · <b>Stack</b></td><td border="0"><i>..., pointer</i> => <i>..., value</i></td></tr><tr border="0"><td border="0" valign="top"> · <b>Description </b></td><td border="0">Pop <i>pointer</i> from the stack as type <code>ptr</code>. Read the 16 bit value at <i>pointer</i> in memory, sign-extend it to <code>int32</code> and push it onto the stack.</td></tr></table><br><br><table cellpadding="5" cellspacing="0" bordercolor="#000000" border=" 1" align="center" width="80%"> <tr bgcolor="#7F7F7F" border="2"><td border="0" width="30%"> <a name="swrite"> <font color="#FFFFFF" size="+5"> swrite</font></a></td><td align="right" border="0"> </td></tr><tr border="1"><td border="0"> · <b>Operation</b></td><td border="0">Write <code>int16</code> to pointer</td></tr><tr border="0"><td border="0"> · <b>Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>swrite</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Direct Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>{swrite}</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Forms </b></td><td border="0"><i>swrite</i> = 43 (0x2B)<br></td></tr><tr border="0"><td border="0"> · <b>Stack</b></td><td border="0"><i>..., pointer, value</i> => <i>...</i></td></tr><tr border="0"><td border="0" valign="top"> · <b>Description </b></td><td border="0">Pop <i>pointer</i> and <i>value</i> from the stack as the types <code>ptr</code> and <code>int32</code> respectively. Truncate <i>value</i> to 16 bits and write it to <i>pointer</i> in memory.</td></tr><tr border="0"><td border="0" valign="top"> · <b>Notes </b></td><td border="0">This instruction can also be used to write values of type <code>uint16</code> to memory.</td></tr></table><br><br><table cellpadding="5" cellspacing="0" bordercolor="#000000" border=" 1" align="center" width="80%"> <tr bgcolor="#7F7F7F" border="2"><td border="0" width="30%"> <a name="swrite_r"> <font color="#FFFFFF" size="+5"> swrite_r</font></a></td><td align="right" border="0"> </td></tr><tr border="1"><td border="0"> · <b>Operation</b></td><td border="0">Write <code>int16</code> to pointer with reversed arguments</td></tr><tr border="0"><td border="0"> · <b>Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>swrite_r</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Direct Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>{swrite_r}</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Forms </b></td><td border="0"><i>swrite_r</i> = 50 (0x32)<br></td></tr><tr border="0"><td border="0"> · <b>Stack</b></td><td border="0"><i>..., value, pointer</i> => <i>...</i></td></tr><tr border="0"><td border="0" valign="top"> · <b>Description </b></td><td border="0">Pop <i>value</i> and <i>pointer</i> from the stack as the types <code>int32</code> and <code>ptr</code> respectively. Truncate <i>value</i> to 16 bits and write it to <i>pointer</i> in memory.</td></tr><tr border="0"><td border="0" valign="top"> · <b>Notes </b></td><td border="0">This instruction can also be used to write values of type <code>uint16</code> to memory.</td></tr></table><br><br><table cellpadding="5" cellspacing="0" bordercolor="#000000" border=" 1" align="center" width="80%"> <tr bgcolor="#7F7F7F" border="2"><td border="0" width="30%"> <a name="ubread"> <font color="#FFFFFF" size="+5"> ubread</font></a></td><td align="right" border="0"> </td></tr><tr border="1"><td border="0"> · <b>Operation</b></td><td border="0">Read <code>uint8</code> from pointer</td></tr><tr border="0"><td border="0"> · <b>Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>ubread</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Direct Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>{ubread}</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Forms </b></td><td border="0"><i>ubread</i> = 34 (0x22)<br></td></tr><tr border="0"><td border="0"> · <b>Stack</b></td><td border="0"><i>..., pointer</i> => <i>..., value</i></td></tr><tr border="0"><td border="0" valign="top"> · <b>Description </b></td><td border="0">Pop <i>pointer</i> from the stack as type <code>ptr</code>. Read the 8 bit value at <i>pointer</i> in memory, zero-extend it to <code>int32</code> and push it onto the stack.</td></tr></table><br><br><table cellpadding="5" cellspacing="0" bordercolor="#000000" border=" 1" align="center" width="80%"> <tr bgcolor="#7F7F7F" border="2"><td border="0" width="30%"> <a name="usread"> <font color="#FFFFFF" size="+5"> usread</font></a></td><td align="right" border="0"> </td></tr><tr border="1"><td border="0"> · <b>Operation</b></td><td border="0">Read <code>uint16</code> from pointer</td></tr><tr border="0"><td border="0"> · <b>Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>usread</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Direct Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>{usread}</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Forms </b></td><td border="0"><i>usread</i> = 36 (0x24)<br></td></tr><tr border="0"><td border="0"> · <b>Stack</b></td><td border="0"><i>..., pointer</i> => <i>..., value</i></td></tr><tr border="0"><td border="0" valign="top"> · <b>Description </b></td><td border="0">Pop <i>pointer</i> from the stack as type <code>ptr</code>. Read the 16 bit value at <i>pointer</i> in memory, zero-extend it to <code>int32</code> and push it onto the stack.</td></tr></table><br><br><p align="center"> <font size="-2">Copyright © Southern Storm Software Pty Ltd 2002 <br> Licensed under GNU FDL </font></p></body></html>