Files
EMARS/docs/mars/mips/hardware/Memory.html
T
adolphenom 0da1c5dcca Source code of MARS Assembler
First commit of the 4.5 version (latest version available)
2014-12-21 12:49:28 +01:00

1768 lines
76 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc (build 1.6.0_33) on Tue Aug 20 12:20:50 EDT 2013 -->
<TITLE>
Memory
</TITLE>
<META NAME="date" CONTENT="2013-08-20">
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
<SCRIPT type="text/javascript">
function windowTitle()
{
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="Memory";
}
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>
</HEAD>
<BODY BGCOLOR="white" onload="windowTitle();">
<HR>
<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../mars/mips/hardware/InvalidRegisterAccessException.html" title="class in mars.mips.hardware"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../mars/mips/hardware/MemoryAccessNotice.html" title="class in mars.mips.hardware"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../index.html?mars/mips/hardware/Memory.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="Memory.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
&nbsp;<SCRIPT type="text/javascript">
<!--
if(window==top) {
document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
}
//-->
</SCRIPT>
<NOSCRIPT>
<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->
<HR>
<!-- ======== START OF CLASS DATA ======== -->
<H2>
<FONT SIZE="-1">
mars.mips.hardware</FONT>
<BR>
Class Memory</H2>
<PRE>
<A HREF="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
<IMG SRC="../../../resources/inherit.gif" ALT="extended by "><A HREF="http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Observable.html?is-external=true" title="class or interface in java.util">java.util.Observable</A>
<IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>mars.mips.hardware.Memory</B>
</PRE>
<HR>
<DL>
<DT><PRE>public class <B>Memory</B><DT>extends <A HREF="http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Observable.html?is-external=true" title="class or interface in java.util">Observable</A></DL>
</PRE>
<P>
Represents MIPS memory. Different segments are represented by different data structs.
<P>
<P>
<DL>
<DT><B>Author:</B></DT>
<DD>Pete Sanderson</DD>
</DL>
<HR>
<P>
<!-- =========== FIELD SUMMARY =========== -->
<A NAME="field_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Field Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#BIG_ENDIAN">BIG_ENDIAN</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constant representing byte order of each memory word.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#dataBaseAddress">dataBaseAddress</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;base address for storage of non-global static data in data segment: 0x10010000 (from SPIM)</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#dataSegmentBaseAddress">dataSegmentBaseAddress</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;base address for (user) data segment: 0x10000000</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#dataSegmentLimitAddress">dataSegmentLimitAddress</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#exceptionHandlerAddress">exceptionHandlerAddress</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;starting address for exception handlers: 0x80000180</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#externBaseAddress">externBaseAddress</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;base address for .extern directive: 0x10000000</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#globalPointer">globalPointer</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;base address for storing globals</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#heapAddress">heapAddress</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#heapBaseAddress">heapBaseAddress</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;base address for heap: 0x10040000 (I think from SPIM not MIPS)</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#kernelBaseAddress">kernelBaseAddress</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;kernel boundary.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#kernelDataBaseAddress">kernelDataBaseAddress</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;base address for kernel data segment: 0x90000000</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#kernelDataSegmentLimitAddress">kernelDataSegmentLimitAddress</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#kernelHighAddress">kernelHighAddress</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;highest address acessible in kernel mode.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#kernelTextBaseAddress">kernelTextBaseAddress</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;base address for kernel text segment: 0x80000000</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#kernelTextLimitAddress">kernelTextLimitAddress</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#LITTLE_ENDIAN">LITTLE_ENDIAN</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constant representing byte order of each memory word.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#memoryMapBaseAddress">memoryMapBaseAddress</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;starting address for memory mapped I/O: 0xffff0000 (-65536)</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#memoryMapLimitAddress">memoryMapLimitAddress</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#stackBaseAddress">stackBaseAddress</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;base address for stack: 0x7ffffffc (this is mine - start of highest word below kernel space)</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#stackLimitAddress">stackLimitAddress</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#stackPointer">stackPointer</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;starting address for stack: 0x7fffeffc (this is from SPIM not MIPS)</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#textBaseAddress">textBaseAddress</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;base address for (user) text segment: 0x00400000</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#textLimitAddress">textLimitAddress</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#userHighAddress">userHighAddress</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;highest address accessible in user (not kernel) mode.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#WORD_LENGTH_BYTES">WORD_LENGTH_BYTES</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MIPS word length in bytes.</TD>
</TR>
</TABLE>
&nbsp;
<!-- ========== METHOD SUMMARY =========== -->
<A NAME="method_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Method Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#addObserver(java.util.Observer)">addObserver</A></B>(<A HREF="http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Observer.html?is-external=true" title="class or interface in java.util">Observer</A>&nbsp;obs)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method to accept registration from observer for any memory address.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#addObserver(java.util.Observer, int)">addObserver</A></B>(<A HREF="http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Observer.html?is-external=true" title="class or interface in java.util">Observer</A>&nbsp;obs,
int&nbsp;addr)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method to accept registration from observer for specific address.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#addObserver(java.util.Observer, int, int)">addObserver</A></B>(<A HREF="http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Observer.html?is-external=true" title="class or interface in java.util">Observer</A>&nbsp;obs,
int&nbsp;startAddr,
int&nbsp;endAddr)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method to accept registration from observer for specific address range.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#alignToWordBoundary(int)">alignToWordBoundary</A></B>(int&nbsp;address)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Utility method to align given address to next full word boundary, if not already
aligned.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#allocateBytesFromHeap(int)">allocateBytesFromHeap</A></B>(int&nbsp;numBytes)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the next available word-aligned heap address.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#clear()">clear</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Explicitly clear the contents of memory.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#countObservers()">countObservers</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return number of observers</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#deleteObserver(java.util.Observer)">deleteObserver</A></B>(<A HREF="http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Observer.html?is-external=true" title="class or interface in java.util">Observer</A>&nbsp;obs)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Remove specified memory observers</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#deleteObservers()">deleteObservers</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Remove all memory observers</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#doublewordAligned(int)">doublewordAligned</A></B>(int&nbsp;address)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Utility to determine if given address is doubleword-aligned.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#get(int, int)">get</A></B>(int&nbsp;address,
int&nbsp;length)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Starting at the given word address, read the given number of bytes (max 4).</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#getAddressOfFirstNull(int, int)">getAddressOfFirstNull</A></B>(int&nbsp;baseAddress,
int&nbsp;limitAddress)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Look for first "null" memory value in an address range.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#getByte(int)">getByte</A></B>(int&nbsp;address)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Reads specified Memory byte into low order 8 bits of int.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#getByteOrder()">getByteOrder</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Retrieve memory byte order.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#getHalf(int)">getHalf</A></B>(int&nbsp;address)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Starting at the given word address, read a 2 byte word into lower 16 bits of int.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;<A HREF="../../../mars/mips/hardware/Memory.html" title="class in mars.mips.hardware">Memory</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#getInstance()">getInstance</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the unique Memory instance, which becomes in essence global.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#getRawWord(int)">getRawWord</A></B>(int&nbsp;address)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Starting at the given word address, read a 4 byte word as an int.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#getRawWordOrNull(int)">getRawWordOrNull</A></B>(int&nbsp;address)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Starting at the given word address, read a 4 byte word as an int and return Integer.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../mars/ProgramStatement.html" title="class in mars">ProgramStatement</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#getStatement(int)">getStatement</A></B>(int&nbsp;address)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gets ProgramStatement from Text Segment.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../mars/ProgramStatement.html" title="class in mars">ProgramStatement</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#getStatementNoNotify(int)">getStatementNoNotify</A></B>(int&nbsp;address)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Gets ProgramStatement from Text Segment without notifying observers.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#getWord(int)">getWord</A></B>(int&nbsp;address)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Starting at the given word address, read a 4 byte word as an int.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#getWordNoNotify(int)">getWordNoNotify</A></B>(int&nbsp;address)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Starting at the given word address, read a 4 byte word as an int.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#inDataSegment(int)">inDataSegment</A></B>(int&nbsp;address)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handy little utility to find out if given address is in MARS data
segment (starts at Memory.dataSegmentBaseAddress).</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#inKernelDataSegment(int)">inKernelDataSegment</A></B>(int&nbsp;address)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handy little utility to find out if given address is in MARS kernel data
segment (starts at Memory.kernelDataSegmentBaseAddress).</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#inKernelTextSegment(int)">inKernelTextSegment</A></B>(int&nbsp;address)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handy little utility to find out if given address is in MARS kernel
text segment (starts at Memory.kernelTextBaseAddress).</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#inMemoryMapSegment(int)">inMemoryMapSegment</A></B>(int&nbsp;address)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handy little utility to find out if given address is in the Memory Map area
starts at Memory.memoryMapBaseAddress, range 0xffff0000 to 0xffffffff.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#inTextSegment(int)">inTextSegment</A></B>(int&nbsp;address)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Handy little utility to find out if given address is in MARS text
segment (starts at Memory.textBaseAddress).</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#notifyObservers()">notifyObservers</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Overridden to be unavailable.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#notifyObservers(java.lang.Object)">notifyObservers</A></B>(<A HREF="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Overridden to be unavailable.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#set(int, int, int)">set</A></B>(int&nbsp;address,
int&nbsp;value,
int&nbsp;length)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Starting at the given address, write the given value over the given number of bytes.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#setByte(int, int)">setByte</A></B>(int&nbsp;address,
int&nbsp;value)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Writes low order 8 bits of given value into specified Memory byte.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#setByteOrder(boolean)">setByteOrder</A></B>(boolean&nbsp;order)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set byte order to either LITTLE_ENDIAN or BIG_ENDIAN.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#setConfiguration()">setConfiguration</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sets current memory configuration for simulated MIPS.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;double</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#setDouble(int, double)">setDouble</A></B>(int&nbsp;address,
double&nbsp;value)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Writes 64 bit double value starting at specified Memory address.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#setHalf(int, int)">setHalf</A></B>(int&nbsp;address,
int&nbsp;value)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Starting at the given halfword address, write the lower 16 bits of given value
into 2 bytes (a halfword).</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#setRawWord(int, int)">setRawWord</A></B>(int&nbsp;address,
int&nbsp;value)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Starting at the given word address, write the given value over 4 bytes (a word).</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#setStatement(int, mars.ProgramStatement)">setStatement</A></B>(int&nbsp;address,
<A HREF="../../../mars/ProgramStatement.html" title="class in mars">ProgramStatement</A>&nbsp;statement)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Stores ProgramStatement in Text Segment.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#setWord(int, int)">setWord</A></B>(int&nbsp;address,
int&nbsp;value)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Starting at the given word address, write the given value over 4 bytes (a word).</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#usingCompactMemoryConfiguration()">usingCompactMemoryConfiguration</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Determine whether the current memory configuration has a maximum address that can be stored
in 16 bits.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#wordAligned(int)">wordAligned</A></B>(int&nbsp;address)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Utility to determine if given address is word-aligned.</TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_java.util.Observable"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class java.util.<A HREF="http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Observable.html?is-external=true" title="class or interface in java.util">Observable</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Observable.html?is-external=true#clearChanged()" title="class or interface in java.util">clearChanged</A>, <A HREF="http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Observable.html?is-external=true#hasChanged()" title="class or interface in java.util">hasChanged</A>, <A HREF="http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Observable.html?is-external=true#setChanged()" title="class or interface in java.util">setChanged</A></CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
</TR>
</TABLE>
&nbsp;
<P>
<!-- ============ FIELD DETAIL =========== -->
<A NAME="field_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Field Detail</B></FONT></TH>
</TR>
</TABLE>
<A NAME="textBaseAddress"><!-- --></A><H3>
textBaseAddress</H3>
<PRE>
public static int <B>textBaseAddress</B></PRE>
<DL>
<DD>base address for (user) text segment: 0x00400000
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="dataSegmentBaseAddress"><!-- --></A><H3>
dataSegmentBaseAddress</H3>
<PRE>
public static int <B>dataSegmentBaseAddress</B></PRE>
<DL>
<DD>base address for (user) data segment: 0x10000000
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="externBaseAddress"><!-- --></A><H3>
externBaseAddress</H3>
<PRE>
public static int <B>externBaseAddress</B></PRE>
<DL>
<DD>base address for .extern directive: 0x10000000
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="globalPointer"><!-- --></A><H3>
globalPointer</H3>
<PRE>
public static int <B>globalPointer</B></PRE>
<DL>
<DD>base address for storing globals
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="dataBaseAddress"><!-- --></A><H3>
dataBaseAddress</H3>
<PRE>
public static int <B>dataBaseAddress</B></PRE>
<DL>
<DD>base address for storage of non-global static data in data segment: 0x10010000 (from SPIM)
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="heapBaseAddress"><!-- --></A><H3>
heapBaseAddress</H3>
<PRE>
public static int <B>heapBaseAddress</B></PRE>
<DL>
<DD>base address for heap: 0x10040000 (I think from SPIM not MIPS)
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="stackPointer"><!-- --></A><H3>
stackPointer</H3>
<PRE>
public static int <B>stackPointer</B></PRE>
<DL>
<DD>starting address for stack: 0x7fffeffc (this is from SPIM not MIPS)
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="stackBaseAddress"><!-- --></A><H3>
stackBaseAddress</H3>
<PRE>
public static int <B>stackBaseAddress</B></PRE>
<DL>
<DD>base address for stack: 0x7ffffffc (this is mine - start of highest word below kernel space)
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="userHighAddress"><!-- --></A><H3>
userHighAddress</H3>
<PRE>
public static int <B>userHighAddress</B></PRE>
<DL>
<DD>highest address accessible in user (not kernel) mode.
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="kernelBaseAddress"><!-- --></A><H3>
kernelBaseAddress</H3>
<PRE>
public static int <B>kernelBaseAddress</B></PRE>
<DL>
<DD>kernel boundary. Only OS can access this or higher address
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="kernelTextBaseAddress"><!-- --></A><H3>
kernelTextBaseAddress</H3>
<PRE>
public static int <B>kernelTextBaseAddress</B></PRE>
<DL>
<DD>base address for kernel text segment: 0x80000000
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="exceptionHandlerAddress"><!-- --></A><H3>
exceptionHandlerAddress</H3>
<PRE>
public static int <B>exceptionHandlerAddress</B></PRE>
<DL>
<DD>starting address for exception handlers: 0x80000180
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="kernelDataBaseAddress"><!-- --></A><H3>
kernelDataBaseAddress</H3>
<PRE>
public static int <B>kernelDataBaseAddress</B></PRE>
<DL>
<DD>base address for kernel data segment: 0x90000000
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="memoryMapBaseAddress"><!-- --></A><H3>
memoryMapBaseAddress</H3>
<PRE>
public static int <B>memoryMapBaseAddress</B></PRE>
<DL>
<DD>starting address for memory mapped I/O: 0xffff0000 (-65536)
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="kernelHighAddress"><!-- --></A><H3>
kernelHighAddress</H3>
<PRE>
public static int <B>kernelHighAddress</B></PRE>
<DL>
<DD>highest address acessible in kernel mode.
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="WORD_LENGTH_BYTES"><!-- --></A><H3>
WORD_LENGTH_BYTES</H3>
<PRE>
public static final int <B>WORD_LENGTH_BYTES</B></PRE>
<DL>
<DD>MIPS word length in bytes.
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#mars.mips.hardware.Memory.WORD_LENGTH_BYTES">Constant Field Values</A></DL>
</DL>
<HR>
<A NAME="LITTLE_ENDIAN"><!-- --></A><H3>
LITTLE_ENDIAN</H3>
<PRE>
public static final boolean <B>LITTLE_ENDIAN</B></PRE>
<DL>
<DD>Constant representing byte order of each memory word. Little-endian means lowest
numbered byte is right most [3][2][1][0].
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#mars.mips.hardware.Memory.LITTLE_ENDIAN">Constant Field Values</A></DL>
</DL>
<HR>
<A NAME="BIG_ENDIAN"><!-- --></A><H3>
BIG_ENDIAN</H3>
<PRE>
public static final boolean <B>BIG_ENDIAN</B></PRE>
<DL>
<DD>Constant representing byte order of each memory word. Big-endian means lowest
numbered byte is left most [0][1][2][3].
<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#mars.mips.hardware.Memory.BIG_ENDIAN">Constant Field Values</A></DL>
</DL>
<HR>
<A NAME="heapAddress"><!-- --></A><H3>
heapAddress</H3>
<PRE>
public static int <B>heapAddress</B></PRE>
<DL>
<DL>
</DL>
</DL>
<HR>
<A NAME="dataSegmentLimitAddress"><!-- --></A><H3>
dataSegmentLimitAddress</H3>
<PRE>
public static int <B>dataSegmentLimitAddress</B></PRE>
<DL>
<DL>
</DL>
</DL>
<HR>
<A NAME="textLimitAddress"><!-- --></A><H3>
textLimitAddress</H3>
<PRE>
public static int <B>textLimitAddress</B></PRE>
<DL>
<DL>
</DL>
</DL>
<HR>
<A NAME="kernelDataSegmentLimitAddress"><!-- --></A><H3>
kernelDataSegmentLimitAddress</H3>
<PRE>
public static int <B>kernelDataSegmentLimitAddress</B></PRE>
<DL>
<DL>
</DL>
</DL>
<HR>
<A NAME="kernelTextLimitAddress"><!-- --></A><H3>
kernelTextLimitAddress</H3>
<PRE>
public static int <B>kernelTextLimitAddress</B></PRE>
<DL>
<DL>
</DL>
</DL>
<HR>
<A NAME="stackLimitAddress"><!-- --></A><H3>
stackLimitAddress</H3>
<PRE>
public static int <B>stackLimitAddress</B></PRE>
<DL>
<DL>
</DL>
</DL>
<HR>
<A NAME="memoryMapLimitAddress"><!-- --></A><H3>
memoryMapLimitAddress</H3>
<PRE>
public static int <B>memoryMapLimitAddress</B></PRE>
<DL>
<DL>
</DL>
</DL>
<!-- ============ METHOD DETAIL ========== -->
<A NAME="method_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Method Detail</B></FONT></TH>
</TR>
</TABLE>
<A NAME="getInstance()"><!-- --></A><H3>
getInstance</H3>
<PRE>
public static <A HREF="../../../mars/mips/hardware/Memory.html" title="class in mars.mips.hardware">Memory</A> <B>getInstance</B>()</PRE>
<DL>
<DD>Returns the unique Memory instance, which becomes in essence global.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="clear()"><!-- --></A><H3>
clear</H3>
<PRE>
public void <B>clear</B>()</PRE>
<DL>
<DD>Explicitly clear the contents of memory. Typically done at start of assembly.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="setConfiguration()"><!-- --></A><H3>
setConfiguration</H3>
<PRE>
public static void <B>setConfiguration</B>()</PRE>
<DL>
<DD>Sets current memory configuration for simulated MIPS. Configuration is
collection of memory segment addresses. e.g. text segment starting at
address 0x00400000. Configuration can be modified starting with MARS 3.7.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="usingCompactMemoryConfiguration()"><!-- --></A><H3>
usingCompactMemoryConfiguration</H3>
<PRE>
public boolean <B>usingCompactMemoryConfiguration</B>()</PRE>
<DL>
<DD>Determine whether the current memory configuration has a maximum address that can be stored
in 16 bits.
<P>
<DD><DL>
<DT><B>Returns:</B><DD>true if maximum address can be stored in 16 bits or less, false otherwise</DL>
</DD>
</DL>
<HR>
<A NAME="allocateBytesFromHeap(int)"><!-- --></A><H3>
allocateBytesFromHeap</H3>
<PRE>
public int <B>allocateBytesFromHeap</B>(int&nbsp;numBytes)
throws <A HREF="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</A></PRE>
<DL>
<DD>Returns the next available word-aligned heap address. There is no recycling and
no heap management! There is however nearly 4MB of heap space available in Mars.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>numBytes</CODE> - Number of bytes requested. Should be multiple of 4, otherwise next higher multiple of 4 allocated.
<DT><B>Returns:</B><DD>address of allocated heap storage.
<DT><B>Throws:</B>
<DD><CODE><A HREF="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</A></CODE> - if number of requested bytes is negative or exceeds available heap storage</DL>
</DD>
</DL>
<HR>
<A NAME="setByteOrder(boolean)"><!-- --></A><H3>
setByteOrder</H3>
<PRE>
public void <B>setByteOrder</B>(boolean&nbsp;order)</PRE>
<DL>
<DD>Set byte order to either LITTLE_ENDIAN or BIG_ENDIAN. Default is LITTLE_ENDIAN.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>order</CODE> - either LITTLE_ENDIAN or BIG_ENDIAN</DL>
</DD>
</DL>
<HR>
<A NAME="getByteOrder()"><!-- --></A><H3>
getByteOrder</H3>
<PRE>
public boolean <B>getByteOrder</B>()</PRE>
<DL>
<DD>Retrieve memory byte order. Default is LITTLE_ENDIAN (like PCs).
<P>
<DD><DL>
<DT><B>Returns:</B><DD>either LITTLE_ENDIAN or BIG_ENDIAN</DL>
</DD>
</DL>
<HR>
<A NAME="set(int, int, int)"><!-- --></A><H3>
set</H3>
<PRE>
public int <B>set</B>(int&nbsp;address,
int&nbsp;value,
int&nbsp;length)
throws <A HREF="../../../mars/mips/hardware/AddressErrorException.html" title="class in mars.mips.hardware">AddressErrorException</A></PRE>
<DL>
<DD>Starting at the given address, write the given value over the given number of bytes.
This one does not check for word boundaries, and copies one byte at a time.
If length == 1, takes value from low order byte. If 2, takes from low order half-word.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>address</CODE> - Starting address of Memory address to be set.<DD><CODE>value</CODE> - Value to be stored starting at that address.<DD><CODE>length</CODE> - Number of bytes to be written.
<DT><B>Returns:</B><DD>old value that was replaced by the set operation
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../mars/mips/hardware/AddressErrorException.html" title="class in mars.mips.hardware">AddressErrorException</A></CODE></DL>
</DD>
</DL>
<HR>
<A NAME="setRawWord(int, int)"><!-- --></A><H3>
setRawWord</H3>
<PRE>
public int <B>setRawWord</B>(int&nbsp;address,
int&nbsp;value)
throws <A HREF="../../../mars/mips/hardware/AddressErrorException.html" title="class in mars.mips.hardware">AddressErrorException</A></PRE>
<DL>
<DD>Starting at the given word address, write the given value over 4 bytes (a word).
It must be written as is, without adjusting for byte order (little vs big endian).
Address must be word-aligned.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>address</CODE> - Starting address of Memory address to be set.<DD><CODE>value</CODE> - Value to be stored starting at that address.
<DT><B>Returns:</B><DD>old value that was replaced by the set operation.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../mars/mips/hardware/AddressErrorException.html" title="class in mars.mips.hardware">AddressErrorException</A></CODE> - If address is not on word boundary.</DL>
</DD>
</DL>
<HR>
<A NAME="setWord(int, int)"><!-- --></A><H3>
setWord</H3>
<PRE>
public int <B>setWord</B>(int&nbsp;address,
int&nbsp;value)
throws <A HREF="../../../mars/mips/hardware/AddressErrorException.html" title="class in mars.mips.hardware">AddressErrorException</A></PRE>
<DL>
<DD>Starting at the given word address, write the given value over 4 bytes (a word).
The address must be word-aligned.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>address</CODE> - Starting address of Memory address to be set.<DD><CODE>value</CODE> - Value to be stored starting at that address.
<DT><B>Returns:</B><DD>old value that was replaced by setWord operation.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../mars/mips/hardware/AddressErrorException.html" title="class in mars.mips.hardware">AddressErrorException</A></CODE> - If address is not on word boundary.</DL>
</DD>
</DL>
<HR>
<A NAME="setHalf(int, int)"><!-- --></A><H3>
setHalf</H3>
<PRE>
public int <B>setHalf</B>(int&nbsp;address,
int&nbsp;value)
throws <A HREF="../../../mars/mips/hardware/AddressErrorException.html" title="class in mars.mips.hardware">AddressErrorException</A></PRE>
<DL>
<DD>Starting at the given halfword address, write the lower 16 bits of given value
into 2 bytes (a halfword).
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>address</CODE> - Starting address of Memory address to be set.<DD><CODE>value</CODE> - Value to be stored starting at that address. Only low order 16 bits used.
<DT><B>Returns:</B><DD>old value that was replaced by setHalf operation.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../mars/mips/hardware/AddressErrorException.html" title="class in mars.mips.hardware">AddressErrorException</A></CODE> - If address is not on halfword boundary.</DL>
</DD>
</DL>
<HR>
<A NAME="setByte(int, int)"><!-- --></A><H3>
setByte</H3>
<PRE>
public int <B>setByte</B>(int&nbsp;address,
int&nbsp;value)
throws <A HREF="../../../mars/mips/hardware/AddressErrorException.html" title="class in mars.mips.hardware">AddressErrorException</A></PRE>
<DL>
<DD>Writes low order 8 bits of given value into specified Memory byte.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>address</CODE> - Address of Memory byte to be set.<DD><CODE>value</CODE> - Value to be stored at that address. Only low order 8 bits used.
<DT><B>Returns:</B><DD>old value that was replaced by setByte operation.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../mars/mips/hardware/AddressErrorException.html" title="class in mars.mips.hardware">AddressErrorException</A></CODE></DL>
</DD>
</DL>
<HR>
<A NAME="setDouble(int, double)"><!-- --></A><H3>
setDouble</H3>
<PRE>
public double <B>setDouble</B>(int&nbsp;address,
double&nbsp;value)
throws <A HREF="../../../mars/mips/hardware/AddressErrorException.html" title="class in mars.mips.hardware">AddressErrorException</A></PRE>
<DL>
<DD>Writes 64 bit double value starting at specified Memory address. Note that
high-order 32 bits are stored in higher (second) memory word regardless
of "endianness".
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>address</CODE> - Starting address of Memory address to be set.<DD><CODE>value</CODE> - Value to be stored at that address.
<DT><B>Returns:</B><DD>old value that was replaced by setDouble operation.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../mars/mips/hardware/AddressErrorException.html" title="class in mars.mips.hardware">AddressErrorException</A></CODE></DL>
</DD>
</DL>
<HR>
<A NAME="setStatement(int, mars.ProgramStatement)"><!-- --></A><H3>
setStatement</H3>
<PRE>
public void <B>setStatement</B>(int&nbsp;address,
<A HREF="../../../mars/ProgramStatement.html" title="class in mars">ProgramStatement</A>&nbsp;statement)
throws <A HREF="../../../mars/mips/hardware/AddressErrorException.html" title="class in mars.mips.hardware">AddressErrorException</A></PRE>
<DL>
<DD>Stores ProgramStatement in Text Segment.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>address</CODE> - Starting address of Memory address to be set. Must be word boundary.<DD><CODE>statement</CODE> - Machine code to be stored starting at that address -- for simulation
purposes, actually stores reference to ProgramStatement instead of 32-bit machine code.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../mars/mips/hardware/AddressErrorException.html" title="class in mars.mips.hardware">AddressErrorException</A></CODE> - If address is not on word boundary or is outside Text Segment.<DT><B>See Also:</B><DD><A HREF="../../../mars/ProgramStatement.html" title="class in mars"><CODE>ProgramStatement</CODE></A></DL>
</DD>
</DL>
<HR>
<A NAME="get(int, int)"><!-- --></A><H3>
get</H3>
<PRE>
public int <B>get</B>(int&nbsp;address,
int&nbsp;length)
throws <A HREF="../../../mars/mips/hardware/AddressErrorException.html" title="class in mars.mips.hardware">AddressErrorException</A></PRE>
<DL>
<DD>Starting at the given word address, read the given number of bytes (max 4).
This one does not check for word boundaries, and copies one byte at a time.
If length == 1, puts value in low order byte. If 2, puts into low order half-word.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>address</CODE> - Starting address of Memory address to be read.<DD><CODE>length</CODE> - Number of bytes to be read.
<DT><B>Returns:</B><DD>Value stored starting at that address.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../mars/mips/hardware/AddressErrorException.html" title="class in mars.mips.hardware">AddressErrorException</A></CODE></DL>
</DD>
</DL>
<HR>
<A NAME="getRawWord(int)"><!-- --></A><H3>
getRawWord</H3>
<PRE>
public int <B>getRawWord</B>(int&nbsp;address)
throws <A HREF="../../../mars/mips/hardware/AddressErrorException.html" title="class in mars.mips.hardware">AddressErrorException</A></PRE>
<DL>
<DD>Starting at the given word address, read a 4 byte word as an int.
It transfers the 32 bit value "raw" as stored in memory, and does not adjust
for byte order (big or little endian). Address must be word-aligned.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>address</CODE> - Starting address of word to be read.
<DT><B>Returns:</B><DD>Word (4-byte value) stored starting at that address.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../mars/mips/hardware/AddressErrorException.html" title="class in mars.mips.hardware">AddressErrorException</A></CODE> - If address is not on word boundary.</DL>
</DD>
</DL>
<HR>
<A NAME="getRawWordOrNull(int)"><!-- --></A><H3>
getRawWordOrNull</H3>
<PRE>
public <A HREF="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</A> <B>getRawWordOrNull</B>(int&nbsp;address)
throws <A HREF="../../../mars/mips/hardware/AddressErrorException.html" title="class in mars.mips.hardware">AddressErrorException</A></PRE>
<DL>
<DD>Starting at the given word address, read a 4 byte word as an int and return Integer.
It transfers the 32 bit value "raw" as stored in memory, and does not adjust
for byte order (big or little endian). Address must be word-aligned.
Returns null if reading from text segment and there is no instruction at the
requested address. Returns null if reading from data segment and this is the
first reference to the MARS 4K memory allocation block (i.e., an array to
hold the memory has not been allocated).
This method was developed by Greg Giberling of UC Berkeley to support the memory
dump feature that he implemented in Fall 2007.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>address</CODE> - Starting address of word to be read.
<DT><B>Returns:</B><DD>Word (4-byte value) stored starting at that address as an Integer. Conditions
that cause return value null are described above.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../mars/mips/hardware/AddressErrorException.html" title="class in mars.mips.hardware">AddressErrorException</A></CODE> - If address is not on word boundary.</DL>
</DD>
</DL>
<HR>
<A NAME="getAddressOfFirstNull(int, int)"><!-- --></A><H3>
getAddressOfFirstNull</H3>
<PRE>
public int <B>getAddressOfFirstNull</B>(int&nbsp;baseAddress,
int&nbsp;limitAddress)
throws <A HREF="../../../mars/mips/hardware/AddressErrorException.html" title="class in mars.mips.hardware">AddressErrorException</A></PRE>
<DL>
<DD>Look for first "null" memory value in an address range. For text segment (binary code), this
represents a word that does not contain an instruction. Normally use this to find the end of
the program. For data segment, this represents the first block of simulated memory (block length
currently 4K words) that has not been referenced by an assembled/executing program.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>baseAddress</CODE> - lowest MIPS address to be searched; the starting point<DD><CODE>limitAddress</CODE> - highest MIPS address to be searched
<DT><B>Returns:</B><DD>lowest address within specified range that contains "null" value as described above.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../mars/mips/hardware/AddressErrorException.html" title="class in mars.mips.hardware">AddressErrorException</A></CODE> - if the base address is not on a word boundary</DL>
</DD>
</DL>
<HR>
<A NAME="getWord(int)"><!-- --></A><H3>
getWord</H3>
<PRE>
public int <B>getWord</B>(int&nbsp;address)
throws <A HREF="../../../mars/mips/hardware/AddressErrorException.html" title="class in mars.mips.hardware">AddressErrorException</A></PRE>
<DL>
<DD>Starting at the given word address, read a 4 byte word as an int.
Does not use "get()"; we can do it faster here knowing we're working only
with full words.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>address</CODE> - Starting address of word to be read.
<DT><B>Returns:</B><DD>Word (4-byte value) stored starting at that address.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../mars/mips/hardware/AddressErrorException.html" title="class in mars.mips.hardware">AddressErrorException</A></CODE> - If address is not on word boundary.</DL>
</DD>
</DL>
<HR>
<A NAME="getWordNoNotify(int)"><!-- --></A><H3>
getWordNoNotify</H3>
<PRE>
public int <B>getWordNoNotify</B>(int&nbsp;address)
throws <A HREF="../../../mars/mips/hardware/AddressErrorException.html" title="class in mars.mips.hardware">AddressErrorException</A></PRE>
<DL>
<DD>Starting at the given word address, read a 4 byte word as an int.
Does not use "get()"; we can do it faster here knowing we're working only
with full words. Observers are NOT notified.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>address</CODE> - Starting address of word to be read.
<DT><B>Returns:</B><DD>Word (4-byte value) stored starting at that address.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../mars/mips/hardware/AddressErrorException.html" title="class in mars.mips.hardware">AddressErrorException</A></CODE> - If address is not on word boundary.</DL>
</DD>
</DL>
<HR>
<A NAME="getHalf(int)"><!-- --></A><H3>
getHalf</H3>
<PRE>
public int <B>getHalf</B>(int&nbsp;address)
throws <A HREF="../../../mars/mips/hardware/AddressErrorException.html" title="class in mars.mips.hardware">AddressErrorException</A></PRE>
<DL>
<DD>Starting at the given word address, read a 2 byte word into lower 16 bits of int.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>address</CODE> - Starting address of word to be read.
<DT><B>Returns:</B><DD>Halfword (2-byte value) stored starting at that address, stored in lower 16 bits.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../mars/mips/hardware/AddressErrorException.html" title="class in mars.mips.hardware">AddressErrorException</A></CODE> - If address is not on halfword boundary.</DL>
</DD>
</DL>
<HR>
<A NAME="getByte(int)"><!-- --></A><H3>
getByte</H3>
<PRE>
public int <B>getByte</B>(int&nbsp;address)
throws <A HREF="../../../mars/mips/hardware/AddressErrorException.html" title="class in mars.mips.hardware">AddressErrorException</A></PRE>
<DL>
<DD>Reads specified Memory byte into low order 8 bits of int.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>address</CODE> - Address of Memory byte to be read.
<DT><B>Returns:</B><DD>Value stored at that address. Only low order 8 bits used.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../mars/mips/hardware/AddressErrorException.html" title="class in mars.mips.hardware">AddressErrorException</A></CODE></DL>
</DD>
</DL>
<HR>
<A NAME="getStatement(int)"><!-- --></A><H3>
getStatement</H3>
<PRE>
public <A HREF="../../../mars/ProgramStatement.html" title="class in mars">ProgramStatement</A> <B>getStatement</B>(int&nbsp;address)
throws <A HREF="../../../mars/mips/hardware/AddressErrorException.html" title="class in mars.mips.hardware">AddressErrorException</A></PRE>
<DL>
<DD>Gets ProgramStatement from Text Segment.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>address</CODE> - Starting address of Memory address to be read. Must be word boundary.
<DT><B>Returns:</B><DD>reference to ProgramStatement object associated with that address, or null if none.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../mars/mips/hardware/AddressErrorException.html" title="class in mars.mips.hardware">AddressErrorException</A></CODE> - If address is not on word boundary or is outside Text Segment.<DT><B>See Also:</B><DD><A HREF="../../../mars/ProgramStatement.html" title="class in mars"><CODE>ProgramStatement</CODE></A></DL>
</DD>
</DL>
<HR>
<A NAME="getStatementNoNotify(int)"><!-- --></A><H3>
getStatementNoNotify</H3>
<PRE>
public <A HREF="../../../mars/ProgramStatement.html" title="class in mars">ProgramStatement</A> <B>getStatementNoNotify</B>(int&nbsp;address)
throws <A HREF="../../../mars/mips/hardware/AddressErrorException.html" title="class in mars.mips.hardware">AddressErrorException</A></PRE>
<DL>
<DD>Gets ProgramStatement from Text Segment without notifying observers.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>address</CODE> - Starting address of Memory address to be read. Must be word boundary.
<DT><B>Returns:</B><DD>reference to ProgramStatement object associated with that address, or null if none.
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../mars/mips/hardware/AddressErrorException.html" title="class in mars.mips.hardware">AddressErrorException</A></CODE> - If address is not on word boundary or is outside Text Segment.<DT><B>See Also:</B><DD><A HREF="../../../mars/ProgramStatement.html" title="class in mars"><CODE>ProgramStatement</CODE></A></DL>
</DD>
</DL>
<HR>
<A NAME="wordAligned(int)"><!-- --></A><H3>
wordAligned</H3>
<PRE>
public static boolean <B>wordAligned</B>(int&nbsp;address)</PRE>
<DL>
<DD>Utility to determine if given address is word-aligned.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>address</CODE> - the address to check
<DT><B>Returns:</B><DD>true if address is word-aligned, false otherwise</DL>
</DD>
</DL>
<HR>
<A NAME="doublewordAligned(int)"><!-- --></A><H3>
doublewordAligned</H3>
<PRE>
public static boolean <B>doublewordAligned</B>(int&nbsp;address)</PRE>
<DL>
<DD>Utility to determine if given address is doubleword-aligned.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>address</CODE> - the address to check
<DT><B>Returns:</B><DD>true if address is doubleword-aligned, false otherwise</DL>
</DD>
</DL>
<HR>
<A NAME="alignToWordBoundary(int)"><!-- --></A><H3>
alignToWordBoundary</H3>
<PRE>
public static int <B>alignToWordBoundary</B>(int&nbsp;address)</PRE>
<DL>
<DD>Utility method to align given address to next full word boundary, if not already
aligned.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>address</CODE> - a memory address (any int value is potentially valid)
<DT><B>Returns:</B><DD>address aligned to next word boundary (divisible by 4)</DL>
</DD>
</DL>
<HR>
<A NAME="inTextSegment(int)"><!-- --></A><H3>
inTextSegment</H3>
<PRE>
public static boolean <B>inTextSegment</B>(int&nbsp;address)</PRE>
<DL>
<DD>Handy little utility to find out if given address is in MARS text
segment (starts at Memory.textBaseAddress).
Note that MARS does not implement the entire MIPS text segment space,
but it does implement enough for hundreds of thousands of lines
of code.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>address</CODE> - integer memory address
<DT><B>Returns:</B><DD>true if that address is within MARS-defined text segment,
false otherwise.</DL>
</DD>
</DL>
<HR>
<A NAME="inKernelTextSegment(int)"><!-- --></A><H3>
inKernelTextSegment</H3>
<PRE>
public static boolean <B>inKernelTextSegment</B>(int&nbsp;address)</PRE>
<DL>
<DD>Handy little utility to find out if given address is in MARS kernel
text segment (starts at Memory.kernelTextBaseAddress).
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>address</CODE> - integer memory address
<DT><B>Returns:</B><DD>true if that address is within MARS-defined kernel text segment,
false otherwise.</DL>
</DD>
</DL>
<HR>
<A NAME="inDataSegment(int)"><!-- --></A><H3>
inDataSegment</H3>
<PRE>
public static boolean <B>inDataSegment</B>(int&nbsp;address)</PRE>
<DL>
<DD>Handy little utility to find out if given address is in MARS data
segment (starts at Memory.dataSegmentBaseAddress).
Note that MARS does not implement the entire MIPS data segment space,
but it does support at least 4MB.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>address</CODE> - integer memory address
<DT><B>Returns:</B><DD>true if that address is within MARS-defined data segment,
false otherwise.</DL>
</DD>
</DL>
<HR>
<A NAME="inKernelDataSegment(int)"><!-- --></A><H3>
inKernelDataSegment</H3>
<PRE>
public static boolean <B>inKernelDataSegment</B>(int&nbsp;address)</PRE>
<DL>
<DD>Handy little utility to find out if given address is in MARS kernel data
segment (starts at Memory.kernelDataSegmentBaseAddress).
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>address</CODE> - integer memory address
<DT><B>Returns:</B><DD>true if that address is within MARS-defined kernel data segment,
false otherwise.</DL>
</DD>
</DL>
<HR>
<A NAME="inMemoryMapSegment(int)"><!-- --></A><H3>
inMemoryMapSegment</H3>
<PRE>
public static boolean <B>inMemoryMapSegment</B>(int&nbsp;address)</PRE>
<DL>
<DD>Handy little utility to find out if given address is in the Memory Map area
starts at Memory.memoryMapBaseAddress, range 0xffff0000 to 0xffffffff.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>address</CODE> - integer memory address
<DT><B>Returns:</B><DD>true if that address is within MARS-defined memory map (MMIO) area,
false otherwise.</DL>
</DD>
</DL>
<HR>
<A NAME="addObserver(java.util.Observer)"><!-- --></A><H3>
addObserver</H3>
<PRE>
public void <B>addObserver</B>(<A HREF="http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Observer.html?is-external=true" title="class or interface in java.util">Observer</A>&nbsp;obs)</PRE>
<DL>
<DD>Method to accept registration from observer for any memory address. Overrides
inherited method. Note to observers: this class delegates Observable operations
so notices will come from the delegate, not the memory object.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Observable.html?is-external=true#addObserver(java.util.Observer)" title="class or interface in java.util">addObserver</A></CODE> in class <CODE><A HREF="http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Observable.html?is-external=true" title="class or interface in java.util">Observable</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>obs</CODE> - the observer</DL>
</DD>
</DL>
<HR>
<A NAME="addObserver(java.util.Observer, int)"><!-- --></A><H3>
addObserver</H3>
<PRE>
public void <B>addObserver</B>(<A HREF="http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Observer.html?is-external=true" title="class or interface in java.util">Observer</A>&nbsp;obs,
int&nbsp;addr)
throws <A HREF="../../../mars/mips/hardware/AddressErrorException.html" title="class in mars.mips.hardware">AddressErrorException</A></PRE>
<DL>
<DD>Method to accept registration from observer for specific address. This includes
the memory word starting at the given address. Note to observers: this class delegates Observable operations
so notices will come from the delegate, not the memory object.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>obs</CODE> - the observer<DD><CODE>addr</CODE> - the memory address which must be on word boundary
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../mars/mips/hardware/AddressErrorException.html" title="class in mars.mips.hardware">AddressErrorException</A></CODE></DL>
</DD>
</DL>
<HR>
<A NAME="addObserver(java.util.Observer, int, int)"><!-- --></A><H3>
addObserver</H3>
<PRE>
public void <B>addObserver</B>(<A HREF="http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Observer.html?is-external=true" title="class or interface in java.util">Observer</A>&nbsp;obs,
int&nbsp;startAddr,
int&nbsp;endAddr)
throws <A HREF="../../../mars/mips/hardware/AddressErrorException.html" title="class in mars.mips.hardware">AddressErrorException</A></PRE>
<DL>
<DD>Method to accept registration from observer for specific address range. The
last byte included in the address range is the last byte of the word specified
by the ending address. Note to observers: this class delegates Observable operations
so notices will come from the delegate, not the memory object.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>obs</CODE> - the observer<DD><CODE>startAddr</CODE> - the low end of memory address range, must be on word boundary<DD><CODE>endAddr</CODE> - the high end of memory address range, must be on word boundary
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../mars/mips/hardware/AddressErrorException.html" title="class in mars.mips.hardware">AddressErrorException</A></CODE></DL>
</DD>
</DL>
<HR>
<A NAME="countObservers()"><!-- --></A><H3>
countObservers</H3>
<PRE>
public int <B>countObservers</B>()</PRE>
<DL>
<DD>Return number of observers
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Observable.html?is-external=true#countObservers()" title="class or interface in java.util">countObservers</A></CODE> in class <CODE><A HREF="http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Observable.html?is-external=true" title="class or interface in java.util">Observable</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="deleteObserver(java.util.Observer)"><!-- --></A><H3>
deleteObserver</H3>
<PRE>
public void <B>deleteObserver</B>(<A HREF="http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Observer.html?is-external=true" title="class or interface in java.util">Observer</A>&nbsp;obs)</PRE>
<DL>
<DD>Remove specified memory observers
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Observable.html?is-external=true#deleteObserver(java.util.Observer)" title="class or interface in java.util">deleteObserver</A></CODE> in class <CODE><A HREF="http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Observable.html?is-external=true" title="class or interface in java.util">Observable</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>obs</CODE> - Observer to be removed</DL>
</DD>
</DL>
<HR>
<A NAME="deleteObservers()"><!-- --></A><H3>
deleteObservers</H3>
<PRE>
public void <B>deleteObservers</B>()</PRE>
<DL>
<DD>Remove all memory observers
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Observable.html?is-external=true#deleteObservers()" title="class or interface in java.util">deleteObservers</A></CODE> in class <CODE><A HREF="http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Observable.html?is-external=true" title="class or interface in java.util">Observable</A></CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>
<A NAME="notifyObservers()"><!-- --></A><H3>
notifyObservers</H3>
<PRE>
public void <B>notifyObservers</B>()</PRE>
<DL>
<DD>Overridden to be unavailable. The notice that an Observer
receives does not come from the memory object itself, but
instead from a delegate.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Observable.html?is-external=true#notifyObservers()" title="class or interface in java.util">notifyObservers</A></CODE> in class <CODE><A HREF="http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Observable.html?is-external=true" title="class or interface in java.util">Observable</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Throws:</B>
<DD><CODE><A HREF="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</A></CODE></DL>
</DD>
</DL>
<HR>
<A NAME="notifyObservers(java.lang.Object)"><!-- --></A><H3>
notifyObservers</H3>
<PRE>
public void <B>notifyObservers</B>(<A HREF="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;obj)</PRE>
<DL>
<DD>Overridden to be unavailable. The notice that an Observer
receives does not come from the memory object itself, but
instead from a delegate.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE><A HREF="http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Observable.html?is-external=true#notifyObservers(java.lang.Object)" title="class or interface in java.util">notifyObservers</A></CODE> in class <CODE><A HREF="http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Observable.html?is-external=true" title="class or interface in java.util">Observable</A></CODE></DL>
</DD>
<DD><DL>
<DT><B>Throws:</B>
<DD><CODE><A HREF="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/UnsupportedOperationException.html?is-external=true" title="class or interface in java.lang">UnsupportedOperationException</A></CODE></DL>
</DD>
</DL>
<!-- ========= END OF CLASS DATA ========= -->
<HR>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../mars/mips/hardware/InvalidRegisterAccessException.html" title="class in mars.mips.hardware"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../mars/mips/hardware/MemoryAccessNotice.html" title="class in mars.mips.hardware"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../index.html?mars/mips/hardware/Memory.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="Memory.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
&nbsp;<SCRIPT type="text/javascript">
<!--
if(window==top) {
document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
}
//-->
</SCRIPT>
<NOSCRIPT>
<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<HR>
</BODY>
</HTML>