0da1c5dcca
First commit of the 4.5 version (latest version available)
1768 lines
76 KiB
HTML
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> </TD>
|
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
|
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
|
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
|
</TR>
|
|
</TABLE>
|
|
</TD>
|
|
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
|
</EM>
|
|
</TD>
|
|
</TR>
|
|
|
|
<TR>
|
|
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
|
<A HREF="../../../mars/mips/hardware/InvalidRegisterAccessException.html" title="class in mars.mips.hardware"><B>PREV CLASS</B></A>
|
|
<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>
|
|
<A HREF="Memory.html" target="_top"><B>NO FRAMES</B></A>
|
|
<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: NESTED | <A HREF="#field_summary">FIELD</A> | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
|
|
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
|
DETAIL: <A HREF="#field_detail">FIELD</A> | CONSTR | <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 boolean</CODE></FONT></TD>
|
|
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#BIG_ENDIAN">BIG_ENDIAN</A></B></CODE>
|
|
|
|
<BR>
|
|
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 int</CODE></FONT></TD>
|
|
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#dataBaseAddress">dataBaseAddress</A></B></CODE>
|
|
|
|
<BR>
|
|
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 int</CODE></FONT></TD>
|
|
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#dataSegmentBaseAddress">dataSegmentBaseAddress</A></B></CODE>
|
|
|
|
<BR>
|
|
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 int</CODE></FONT></TD>
|
|
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#dataSegmentLimitAddress">dataSegmentLimitAddress</A></B></CODE>
|
|
|
|
<BR>
|
|
</TD>
|
|
</TR>
|
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
|
<CODE>static int</CODE></FONT></TD>
|
|
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#exceptionHandlerAddress">exceptionHandlerAddress</A></B></CODE>
|
|
|
|
<BR>
|
|
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 int</CODE></FONT></TD>
|
|
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#externBaseAddress">externBaseAddress</A></B></CODE>
|
|
|
|
<BR>
|
|
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 int</CODE></FONT></TD>
|
|
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#globalPointer">globalPointer</A></B></CODE>
|
|
|
|
<BR>
|
|
base address for storing globals</TD>
|
|
</TR>
|
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
|
<CODE>static int</CODE></FONT></TD>
|
|
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#heapAddress">heapAddress</A></B></CODE>
|
|
|
|
<BR>
|
|
</TD>
|
|
</TR>
|
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
|
<CODE>static int</CODE></FONT></TD>
|
|
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#heapBaseAddress">heapBaseAddress</A></B></CODE>
|
|
|
|
<BR>
|
|
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 int</CODE></FONT></TD>
|
|
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#kernelBaseAddress">kernelBaseAddress</A></B></CODE>
|
|
|
|
<BR>
|
|
kernel boundary.</TD>
|
|
</TR>
|
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
|
<CODE>static int</CODE></FONT></TD>
|
|
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#kernelDataBaseAddress">kernelDataBaseAddress</A></B></CODE>
|
|
|
|
<BR>
|
|
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 int</CODE></FONT></TD>
|
|
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#kernelDataSegmentLimitAddress">kernelDataSegmentLimitAddress</A></B></CODE>
|
|
|
|
<BR>
|
|
</TD>
|
|
</TR>
|
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
|
<CODE>static int</CODE></FONT></TD>
|
|
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#kernelHighAddress">kernelHighAddress</A></B></CODE>
|
|
|
|
<BR>
|
|
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 int</CODE></FONT></TD>
|
|
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#kernelTextBaseAddress">kernelTextBaseAddress</A></B></CODE>
|
|
|
|
<BR>
|
|
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 int</CODE></FONT></TD>
|
|
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#kernelTextLimitAddress">kernelTextLimitAddress</A></B></CODE>
|
|
|
|
<BR>
|
|
</TD>
|
|
</TR>
|
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
|
<CODE>static boolean</CODE></FONT></TD>
|
|
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#LITTLE_ENDIAN">LITTLE_ENDIAN</A></B></CODE>
|
|
|
|
<BR>
|
|
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 int</CODE></FONT></TD>
|
|
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#memoryMapBaseAddress">memoryMapBaseAddress</A></B></CODE>
|
|
|
|
<BR>
|
|
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 int</CODE></FONT></TD>
|
|
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#memoryMapLimitAddress">memoryMapLimitAddress</A></B></CODE>
|
|
|
|
<BR>
|
|
</TD>
|
|
</TR>
|
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
|
<CODE>static int</CODE></FONT></TD>
|
|
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#stackBaseAddress">stackBaseAddress</A></B></CODE>
|
|
|
|
<BR>
|
|
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 int</CODE></FONT></TD>
|
|
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#stackLimitAddress">stackLimitAddress</A></B></CODE>
|
|
|
|
<BR>
|
|
</TD>
|
|
</TR>
|
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
|
<CODE>static int</CODE></FONT></TD>
|
|
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#stackPointer">stackPointer</A></B></CODE>
|
|
|
|
<BR>
|
|
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 int</CODE></FONT></TD>
|
|
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#textBaseAddress">textBaseAddress</A></B></CODE>
|
|
|
|
<BR>
|
|
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 int</CODE></FONT></TD>
|
|
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#textLimitAddress">textLimitAddress</A></B></CODE>
|
|
|
|
<BR>
|
|
</TD>
|
|
</TR>
|
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
|
<CODE>static int</CODE></FONT></TD>
|
|
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#userHighAddress">userHighAddress</A></B></CODE>
|
|
|
|
<BR>
|
|
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 int</CODE></FONT></TD>
|
|
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#WORD_LENGTH_BYTES">WORD_LENGTH_BYTES</A></B></CODE>
|
|
|
|
<BR>
|
|
MIPS word length in bytes.</TD>
|
|
</TR>
|
|
</TABLE>
|
|
|
|
<!-- ========== 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> 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> obs)</CODE>
|
|
|
|
<BR>
|
|
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> 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> obs,
|
|
int addr)</CODE>
|
|
|
|
<BR>
|
|
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> 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> obs,
|
|
int startAddr,
|
|
int endAddr)</CODE>
|
|
|
|
<BR>
|
|
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 int</CODE></FONT></TD>
|
|
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#alignToWordBoundary(int)">alignToWordBoundary</A></B>(int address)</CODE>
|
|
|
|
<BR>
|
|
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> int</CODE></FONT></TD>
|
|
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#allocateBytesFromHeap(int)">allocateBytesFromHeap</A></B>(int numBytes)</CODE>
|
|
|
|
<BR>
|
|
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> void</CODE></FONT></TD>
|
|
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#clear()">clear</A></B>()</CODE>
|
|
|
|
<BR>
|
|
Explicitly clear the contents of memory.</TD>
|
|
</TR>
|
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
|
<CODE> int</CODE></FONT></TD>
|
|
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#countObservers()">countObservers</A></B>()</CODE>
|
|
|
|
<BR>
|
|
Return number of observers</TD>
|
|
</TR>
|
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
|
<CODE> 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> obs)</CODE>
|
|
|
|
<BR>
|
|
Remove specified memory observers</TD>
|
|
</TR>
|
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
|
<CODE> void</CODE></FONT></TD>
|
|
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#deleteObservers()">deleteObservers</A></B>()</CODE>
|
|
|
|
<BR>
|
|
Remove all memory observers</TD>
|
|
</TR>
|
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
|
<CODE>static boolean</CODE></FONT></TD>
|
|
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#doublewordAligned(int)">doublewordAligned</A></B>(int address)</CODE>
|
|
|
|
<BR>
|
|
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> int</CODE></FONT></TD>
|
|
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#get(int, int)">get</A></B>(int address,
|
|
int length)</CODE>
|
|
|
|
<BR>
|
|
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> int</CODE></FONT></TD>
|
|
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#getAddressOfFirstNull(int, int)">getAddressOfFirstNull</A></B>(int baseAddress,
|
|
int limitAddress)</CODE>
|
|
|
|
<BR>
|
|
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> int</CODE></FONT></TD>
|
|
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#getByte(int)">getByte</A></B>(int address)</CODE>
|
|
|
|
<BR>
|
|
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> boolean</CODE></FONT></TD>
|
|
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#getByteOrder()">getByteOrder</A></B>()</CODE>
|
|
|
|
<BR>
|
|
Retrieve memory byte order.</TD>
|
|
</TR>
|
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
|
<CODE> int</CODE></FONT></TD>
|
|
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#getHalf(int)">getHalf</A></B>(int address)</CODE>
|
|
|
|
<BR>
|
|
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 <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>
|
|
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> int</CODE></FONT></TD>
|
|
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#getRawWord(int)">getRawWord</A></B>(int address)</CODE>
|
|
|
|
<BR>
|
|
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> <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 address)</CODE>
|
|
|
|
<BR>
|
|
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> <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 address)</CODE>
|
|
|
|
<BR>
|
|
Gets ProgramStatement from Text Segment.</TD>
|
|
</TR>
|
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
|
<CODE> <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 address)</CODE>
|
|
|
|
<BR>
|
|
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> int</CODE></FONT></TD>
|
|
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#getWord(int)">getWord</A></B>(int address)</CODE>
|
|
|
|
<BR>
|
|
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> int</CODE></FONT></TD>
|
|
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#getWordNoNotify(int)">getWordNoNotify</A></B>(int address)</CODE>
|
|
|
|
<BR>
|
|
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 boolean</CODE></FONT></TD>
|
|
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#inDataSegment(int)">inDataSegment</A></B>(int address)</CODE>
|
|
|
|
<BR>
|
|
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 boolean</CODE></FONT></TD>
|
|
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#inKernelDataSegment(int)">inKernelDataSegment</A></B>(int address)</CODE>
|
|
|
|
<BR>
|
|
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 boolean</CODE></FONT></TD>
|
|
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#inKernelTextSegment(int)">inKernelTextSegment</A></B>(int address)</CODE>
|
|
|
|
<BR>
|
|
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 boolean</CODE></FONT></TD>
|
|
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#inMemoryMapSegment(int)">inMemoryMapSegment</A></B>(int address)</CODE>
|
|
|
|
<BR>
|
|
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 boolean</CODE></FONT></TD>
|
|
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#inTextSegment(int)">inTextSegment</A></B>(int address)</CODE>
|
|
|
|
<BR>
|
|
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> void</CODE></FONT></TD>
|
|
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#notifyObservers()">notifyObservers</A></B>()</CODE>
|
|
|
|
<BR>
|
|
Overridden to be unavailable.</TD>
|
|
</TR>
|
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
|
<CODE> 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> obj)</CODE>
|
|
|
|
<BR>
|
|
Overridden to be unavailable.</TD>
|
|
</TR>
|
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
|
<CODE> int</CODE></FONT></TD>
|
|
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#set(int, int, int)">set</A></B>(int address,
|
|
int value,
|
|
int length)</CODE>
|
|
|
|
<BR>
|
|
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> int</CODE></FONT></TD>
|
|
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#setByte(int, int)">setByte</A></B>(int address,
|
|
int value)</CODE>
|
|
|
|
<BR>
|
|
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> void</CODE></FONT></TD>
|
|
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#setByteOrder(boolean)">setByteOrder</A></B>(boolean order)</CODE>
|
|
|
|
<BR>
|
|
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 void</CODE></FONT></TD>
|
|
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#setConfiguration()">setConfiguration</A></B>()</CODE>
|
|
|
|
<BR>
|
|
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> double</CODE></FONT></TD>
|
|
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#setDouble(int, double)">setDouble</A></B>(int address,
|
|
double value)</CODE>
|
|
|
|
<BR>
|
|
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> int</CODE></FONT></TD>
|
|
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#setHalf(int, int)">setHalf</A></B>(int address,
|
|
int value)</CODE>
|
|
|
|
<BR>
|
|
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> int</CODE></FONT></TD>
|
|
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#setRawWord(int, int)">setRawWord</A></B>(int address,
|
|
int value)</CODE>
|
|
|
|
<BR>
|
|
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> void</CODE></FONT></TD>
|
|
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#setStatement(int, mars.ProgramStatement)">setStatement</A></B>(int address,
|
|
<A HREF="../../../mars/ProgramStatement.html" title="class in mars">ProgramStatement</A> statement)</CODE>
|
|
|
|
<BR>
|
|
Stores ProgramStatement in Text Segment.</TD>
|
|
</TR>
|
|
<TR BGCOLOR="white" CLASS="TableRowColor">
|
|
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
|
<CODE> int</CODE></FONT></TD>
|
|
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#setWord(int, int)">setWord</A></B>(int address,
|
|
int value)</CODE>
|
|
|
|
<BR>
|
|
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> boolean</CODE></FONT></TD>
|
|
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#usingCompactMemoryConfiguration()">usingCompactMemoryConfiguration</A></B>()</CODE>
|
|
|
|
<BR>
|
|
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 boolean</CODE></FONT></TD>
|
|
<TD><CODE><B><A HREF="../../../mars/mips/hardware/Memory.html#wordAligned(int)">wordAligned</A></B>(int address)</CODE>
|
|
|
|
<BR>
|
|
Utility to determine if given address is word-aligned.</TD>
|
|
</TR>
|
|
</TABLE>
|
|
<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>
|
|
<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>
|
|
|
|
<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 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 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 address,
|
|
int value,
|
|
int 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 address,
|
|
int 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 address,
|
|
int 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 address,
|
|
int 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 address,
|
|
int 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 address,
|
|
double 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 address,
|
|
<A HREF="../../../mars/ProgramStatement.html" title="class in mars">ProgramStatement</A> 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 address,
|
|
int 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 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 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 baseAddress,
|
|
int 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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> 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> obs,
|
|
int 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> obs,
|
|
int startAddr,
|
|
int 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> 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> 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> </TD>
|
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
|
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
|
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
|
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
|
</TR>
|
|
</TABLE>
|
|
</TD>
|
|
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
|
</EM>
|
|
</TD>
|
|
</TR>
|
|
|
|
<TR>
|
|
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
|
<A HREF="../../../mars/mips/hardware/InvalidRegisterAccessException.html" title="class in mars.mips.hardware"><B>PREV CLASS</B></A>
|
|
<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>
|
|
<A HREF="Memory.html" target="_top"><B>NO FRAMES</B></A>
|
|
<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: NESTED | <A HREF="#field_summary">FIELD</A> | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
|
|
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
|
DETAIL: <A HREF="#field_detail">FIELD</A> | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
|
|
</TR>
|
|
</TABLE>
|
|
<A NAME="skip-navbar_bottom"></A>
|
|
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
|
|
|
<HR>
|
|
|
|
</BODY>
|
|
</HTML>
|