📄 mips lab environment reference.mht
字号:
<TD vAlign=3Dtop><FONT =
size=3D-1><CODE>0xA0000000-<BR>0xA00BFFFF</CODE>=20
</FONT></TD>
<TD> </TD>
<TD vAlign=3Dbottom><FONT size=3D-1>1MB SRAM Uncached, same physical =
memory as=20
<CODE>0x80000000-0x800BFFFF</CODE> </FONT></TD></TR>
<TR>
<TD><BR>
<TD></TD>
<TR>
<TD vAlign=3Dtop><FONT =
size=3D-1><CODE>0x80400000-<BR>0x807FFFFF</CODE>=20
</FONT></TD>
<TD> </TD>
<TD vAlign=3Dbottom><FONT size=3D-1>4MB DRAM </FONT></TD></TR>
<TR>
<TD><BR>
<TD></TD>
<TR>
<TD vAlign=3Dtop><FONT =
size=3D-1><CODE>0xA0400000-<BR>0xA07FFFFF</CODE>=20
</FONT></TD>
<TD> </TD>
<TD vAlign=3Dbottom><FONT size=3D-1>4MB DRAM Uncached, same physical =
memory as=20
<CODE>0x80400000-0x807FFFFF</CODE> </FONT></TD></TR>
<TR>
<TD><BR>
<TD></TD>
<TR>
<TD vAlign=3Dtop><FONT size=3D-1><CODE>0x80020000</CODE> =
</FONT></TD>
<TD> </TD>
<TD vAlign=3Dbottom><FONT size=3D-1>Default start address =
</FONT></TD></TR>
<TR>
<TD><BR>
<TD></TD>
<TR>
<TD vAlign=3Dtop><FONT size=3D-1><CODE>0xBF900000</CODE> =
</FONT></TD>
<TD> </TD>
<TD vAlign=3Dbottom><FONT size=3D-1>8-bit I/O </FONT></TD></TR>
<TR>
<TD><BR>
<TD></TD>
<TR>
<TD vAlign=3Dtop><FONT size=3D-1><CODE>0xBFA00000</CODE> =
</FONT></TD>
<TD> </TD>
<TD vAlign=3Dbottom><FONT size=3D-1>Interrupt I/O (8-bit) =
<BR><BR>Bit:<BR>0 =A8C=20
K2 (input only)<BR>1 =A8C K1 (input only)<BR>2 =A8C Timer (input =
only)<BR>3 =A8C=20
N/A (undefined value)<BR>4 =A8C K2 latched<BR>5 =A8C K1 =
latched<BR>6 =A8C Timer=20
latched<BR>7 =A8C N/A (undefined value)<BR><BR>To acknowledge an =
interrupt=20
you have to write to <CODE>0xBFA00000</CODE>. The actual value =
written is=20
ignored, it is the write operation that will reset the state.=20
</FONT></TD></TR>
<TR>
<TD><BR>
<TD></TD>
<TR>
<TD vAlign=3Dtop><FONT size=3D-1><CODE>0xBFB00000</CODE> =
</FONT></TD>
<TD> </TD>
<TD vAlign=3Dbottom><FONT size=3D-1>16-bit I/O =
</FONT></TD></TR></TBODY></TABLE>
<H2>PROM Monitor Routines</H2>The monitor has a collection of routines =
that may=20
come in handy. Arguments to functions are placed in registers a0 to a3, =
if a=20
function has more than four arguments they are placed on the stack. =
Return=20
values are placed in register v0. <BR><BR><BR>
<TABLE cellPadding=3D0 width=3D"100%" bgColor=3D#e0e0e0 border=3D0>
<TBODY>
<TR>
<TD><CODE><B>printf</B></CODE> =
</TD></TR></TBODY></TABLE><BR>Formatted print to=20
standard output (the console).=20
<TABLE cellPadding=3D0 border=3D0>
<TBODY>
<TR>
<TD noWrap><FONT face=3DArial =
size=3D-1><I>Argument(s):</I></FONT></TD>
<TD></TD></TR>
<TR>
<TD></TD>
<TD>
<TABLE cellPadding=3D0 border=3D0>
<TBODY>
<TR>
<TD><FONT size=3D-1>a0 </FONT></TD>
<TD><FONT size=3D-1>- address to format string =
</FONT></TD></TR>
<TR>
<TD><FONT size=3D-1>a1..a3 </FONT></TD>
<TD><FONT size=3D-1>- arguments 1..3 </FONT></TD></TR>
<TR>
<TD><FONT size=3D-1>(sp+<I>n</I>) </FONT></TD>
<TD><FONT size=3D-1>- arguments 4..<I>n</I>=20
</FONT></TD></TR></TBODY></TABLE></TD></TR>
<TR><BR></TR>
<TR>
<TD noWrap><FONT face=3DArial size=3D-1><I>Return =
value:</I></FONT></TD>
<TD></TD></TR>
<TR>
<TD></TD>
<TD><FONT size=3D-1><I>none</I></FONT> </TD></TR>
<TR><BR></TR>
<TR>
<TD noWrap><FONT face=3DArial size=3D-1><I>Switches:</I></FONT></TD>
<TD></TD></TR>
<TR>
<TD></TD>
<TD><FONT size=3D-1>Linking a argument to the text is accompliced by =
inserting a %-sign followed by a character signifying the desired =
formate=20
of the argument.</FONT></TD></TR>
<TR>
<TD></TD>
<TD><FONT size=3D-1>Example of possible switches:</FONT></TD></TR>
<TR>
<TD></TD>
<TD><FONT size=3D-1>d- argument is formated to a decimal =
string</FONT></TD></TR>
<TR>
<TD></TD>
<TD><FONT size=3D-1>s- argument is interpreted as an address to an=20
string.</FONT></TD></TR>
<TR>
<TD></TD>
<TD><FONT size=3D-1>f- argument is formated to a float=20
string</FONT></TD></FONT></TD></TR>
<TR><BR></TR>
<TR>
<TD><FONT face=3DArial size=3D-1><I>Example:</I></FONT></TD>
<TD></TD></TR>
<TR>
<TD></TD>
<TD><FONT size=3D-1><PRE>string1:
.asciiz "Number %d of %d"
...
la a0, string1
li a1, 12345
li a2, 67890
jal printf
</PRE>Will print the string "Number 12345 of 67890" to standard output.=20
</FONT></TD></TR></TBODY></TABLE><BR><BR>
<TABLE cellPadding=3D0 width=3D"100%" bgColor=3D#e0e0e0 border=3D0>
<TBODY>
<TR>
<TD><CODE><B>putchar</B></CODE> </TD></TR></TBODY></TABLE><BR>Print =
a character=20
to standard output (the console).=20
<TABLE cellPadding=3D0 border=3D0>
<TBODY>
<TR>
<TD noWrap><FONT face=3DArial =
size=3D-1><I>Argument(s):</I></FONT></TD>
<TD></TD></TR>
<TR>
<TD></TD>
<TD>
<TABLE cellPadding=3D0 border=3D0>
<TBODY>
<TR>
<TD><FONT size=3D-1>a0 </FONT></TD>
<TD><FONT size=3D-1>- character =
</FONT></TD></TR></TBODY></TABLE></TD></TR>
<TR><BR></TR>
<TR>
<TD noWrap><FONT face=3DArial size=3D-1><I>Return =
value:</I></FONT></TD>
<TD></TD></TR>
<TR>
<TD></TD>
<TD><FONT size=3D-1><I>none</I></FONT> </TD></TR>
<TR><BR></TR>
<TR>
<TD><FONT face=3DArial size=3D-1><I>Example:</I></FONT></TD>
<TD></TD></TR>
<TR>
<TD></TD>
<TD><FONT size=3D-1><PRE>li a0, =A1=AFA=A1=AF
jal putchar
</PRE>Will print character A on standard output.=20
</FONT></TD></TR></TBODY></TABLE><BR><BR>
<TABLE cellPadding=3D0 width=3D"100%" bgColor=3D#e0e0e0 border=3D0>
<TBODY>
<TR>
<TD><CODE><B>getchar</B></CODE> </TD></TR></TBODY></TABLE><BR>Get a =
character=20
from standard input (the keyboard).=20
<TABLE cellPadding=3D0 border=3D0>
<TBODY>
<TR>
<TD noWrap><FONT face=3DArial =
size=3D-1><I>Argument(s):</I></FONT></TD>
<TD></TD></TR>
<TR>
<TD></TD>
<TD><FONT size=3D-1><I>none</I></FONT> </TD></TR>
<TR><BR></TR>
<TR>
<TD noWrap><FONT face=3DArial size=3D-1><I>Return =
value:</I></FONT></TD>
<TD></TD></TR>
<TR>
<TD></TD>
<TD>
<TABLE cellPadding=3D0 border=3D0>
<TBODY>
<TR>
<TD><FONT size=3D-1>v0 </FONT></TD>
<TD><FONT size=3D-1>- character =
</FONT></TD></TR></TBODY></TABLE></TD></TR>
<TR><BR></TR>
<TR>
<TD><FONT face=3DArial size=3D-1><I>Example:</I></FONT></TD>
<TD></TD></TR>
<TR>
<TD></TD>
<TD><FONT size=3D-1><I>none</I> =
</FONT></TD></TR></TBODY></TABLE><BR><BR>
<TABLE cellPadding=3D0 width=3D"100%" bgColor=3D#e0e0e0 border=3D0>
<TBODY>
<TR>
<TD><CODE><B>puts</B></CODE> </TD></TR></TBODY></TABLE><BR>Print a=20
null-terminated string to standard output (the console).=20
<TABLE cellPadding=3D0 border=3D0>
<TBODY>
<TR>
<TD noWrap><FONT face=3DArial =
size=3D-1><I>Argument(s):</I></FONT></TD>
<TD></TD></TR>
<TR>
<TD></TD>
<TD>
<TABLE cellPadding=3D0 border=3D0>
<TBODY>
<TR>
<TD><FONT size=3D-1>a0 </FONT></TD>
<TD><FONT size=3D-1>- address to string=20
</FONT></TD></TR></TBODY></TABLE></TD></TR>
<TR><BR></TR>
<TR>
<TD noWrap><FONT face=3DArial size=3D-1><I>Return =
value:</I></FONT></TD>
<TD></TD></TR>
<TR>
<TD></TD>
<TD><FONT size=3D-1><I>none</I></FONT> </TD></TR>
<TR><BR></TR>
<TR>
<TD><FONT face=3DArial size=3D-1><I>Example:</I></FONT></TD>
<TD></TD></TR>
<TR>
<TD></TD>
<TD><FONT size=3D-1><PRE>string1:
.asciiz "MIPS is fun!"
...
la a0, string1
jal puts
</PRE>Will print the string "MIPS is fun!" to standard output.=20
</FONT></TD></TR></TBODY></TABLE><BR><BR>
<TABLE cellPadding=3D0 width=3D"100%" bgColor=3D#e0e0e0 border=3D0>
<TBODY>
<TR>
<TD><CODE><B>gets</B></CODE> </TD></TR></TBODY></TABLE><BR>Get a =
string from=20
standard input (the keyboard).=20
<TABLE cellPadding=3D0 border=3D0>
<TBODY>
<TR>
<TD noWrap><FONT face=3DArial =
size=3D-1><I>Argument(s):</I></FONT></TD>
<TD></TD></TR>
<TR>
<TD></TD>
<TD>
<TABLE cellPadding=3D0 border=3D0>
<TBODY>
<TR>
<TD><FONT size=3D-1>a0 </FONT></TD>
<TD><FONT size=3D-1>- address to string=20
</FONT></TD></TR></TBODY></TABLE></TD></TR>
<TR><BR></TR>
<TR>
<TD noWrap><FONT face=3DArial size=3D-1><I>Return =
value:</I></FONT></TD>
<TD></TD></TR>
<TR>
<TD></TD>
<TD>
<TABLE cellPadding=3D0 border=3D0>
<TBODY>
<TR>
<TD><FONT size=3D-1>v0 </FONT></TD>
<TD><FONT size=3D-1>- address to string=20
</FONT></TD></TR></TBODY></TABLE></TD></TR>
<TR><BR></TR>
<TR>
<TD><FONT face=3DArial size=3D-1><I>Example:</I></FONT></TD>
<TD></TD></TR>
<TR>
<TD></TD>
<TD><FONT size=3D-1><PRE>string1:
.space 128
...
la a0, string1
jal gets
</PRE></FONT></TD></TR></TBODY></TABLE><BR><BR>
<TABLE cellPadding=3D0 width=3D"100%" bgColor=3D#e0e0e0 border=3D0>
<TBODY>
<TR>
<TD><CODE>prom<B>atob</B></CODE> =
</TD></TR></TBODY></TABLE><BR>Convert a=20
null-terminated string to integer.=20
<TABLE cellPadding=3D0 border=3D0>
<TBODY>
<TR>
<TD noWrap><FONT face=3DArial =
size=3D-1><I>Argument(s):</I></FONT></TD>
<TD></TD></TR>
<TR>
<TD></TD>
<TD>
<TABLE cellPadding=3D0 border=3D0>
<TBODY>
<TR>
<TD><FONT size=3D-1>a0 </FONT></TD>
<TD><FONT size=3D-1>- address to string </FONT></TD></TR>
<TR>
<TD><FONT size=3D-1>a1 </FONT></TD>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -