aboutsummaryrefslogtreecommitdiff
path: root/etc/na.lyx
diff options
context:
space:
mode:
Diffstat (limited to 'etc/na.lyx')
-rw-r--r--etc/na.lyx2030
1 files changed, 2030 insertions, 0 deletions
diff --git a/etc/na.lyx b/etc/na.lyx
new file mode 100644
index 0000000..44a9476
--- /dev/null
+++ b/etc/na.lyx
@@ -0,0 +1,2030 @@
+#LyX 2.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 544
+\begin_document
+\begin_header
+\save_transient_properties true
+\origin unavailable
+\textclass book
+\use_default_options true
+\maintain_unincluded_children false
+\language spanish
+\language_package default
+\inputencoding auto
+\fontencoding global
+\font_roman "default" "default"
+\font_sans "default" "default"
+\font_typewriter "default" "default"
+\font_math "auto" "auto"
+\font_default_family default
+\use_non_tex_fonts false
+\font_sc false
+\font_osf false
+\font_sf_scale 100 100
+\font_tt_scale 100 100
+\use_microtype false
+\use_dash_ligatures true
+\graphics default
+\default_output_format default
+\output_sync 0
+\bibtex_command default
+\index_command default
+\paperfontsize default
+\spacing single
+\use_hyperref false
+\papersize default
+\use_geometry false
+\use_package amsmath 1
+\use_package amssymb 1
+\use_package cancel 1
+\use_package esint 1
+\use_package mathdots 1
+\use_package mathtools 1
+\use_package mhchem 1
+\use_package stackrel 1
+\use_package stmaryrd 1
+\use_package undertilde 1
+\cite_engine basic
+\cite_engine_type default
+\biblio_style plain
+\use_bibtopic false
+\use_indices false
+\paperorientation portrait
+\suppress_date false
+\justification true
+\use_refstyle 1
+\use_minted 0
+\index Index
+\shortcut idx
+\color #008000
+\end_index
+\secnumdepth 3
+\tocdepth 3
+\paragraph_separation indent
+\paragraph_indentation default
+\is_math_indent 0
+\math_numbering_side default
+\quotes_style swiss
+\dynamic_quotes 0
+\papercolumns 1
+\papersides 1
+\paperpagestyle default
+\tracking_changes false
+\output_changes false
+\html_math_output 0
+\html_css_as_file 0
+\html_be_strict false
+\end_header
+
+\begin_body
+
+\begin_layout Section
+Registros
+\end_layout
+
+\begin_layout Standard
+\begin_inset Tabular
+<lyxtabular version="3" rows="12" columns="3">
+<features tabularvalignment="middle">
+<column alignment="center" valignment="top">
+<column alignment="center" valignment="top">
+<column alignment="center" valignment="top">
+<row>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\series bold
+Número
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\series bold
+Nombre ABI
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\series bold
+Uso
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\family typewriter
+$0
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\family typewriter
+$zero
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Conectado al valor 0.
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\family typewriter
+$1
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\family typewriter
+$at
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Para uso temporal por el ensamblador.
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\family typewriter
+$2
+\family default
+,
+\family typewriter
+$3
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\family typewriter
+$v0
+\family default
+,
+\family typewriter
+$v1
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Resultados de llamadas a procedimiento.
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\family typewriter
+$4
+\family default
+–
+\family typewriter
+$7
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\family typewriter
+$a0
+\family default
+–
+\family typewriter
+$a3
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Parámetros de las llamadas a procedimiento.
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\family typewriter
+$8
+\family default
+–
+\family typewriter
+$15
+\family default
+,
+\family typewriter
+$24
+\family default
+,
+\family typewriter
+$25
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\family typewriter
+$t0
+\family default
+–
+\family typewriter
+$t9
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Valores temporales.
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\family typewriter
+$16
+\family default
+–
+\family typewriter
+$23
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\family typewriter
+$s0
+\family default
+–
+\family typewriter
+$s7
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Variables locales, preservadas entre llamadas.
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\family typewriter
+$26
+\family default
+,
+\family typewriter
+$27
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\family typewriter
+$k0
+\family default
+,
+\family typewriter
+$k1
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Reservados para su uso por el sistema operativo.
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\family typewriter
+$28
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\family typewriter
+$gp
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Puntero al segmento de datos (no us.
+ en práct.).
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\family typewriter
+$29
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\family typewriter
+$sp
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Puntero de pila.
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\family typewriter
+$30
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\family typewriter
+$fp
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Puntero de marco (no usado en prácticas).
+\end_layout
+
+\end_inset
+</cell>
+</row>
+<row>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\family typewriter
+$31
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+
+\family typewriter
+$ra
+\end_layout
+
+\end_inset
+</cell>
+<cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
+\begin_inset Text
+
+\begin_layout Plain Layout
+Dirección de retorno, preservada entre llamadas.
+\end_layout
+
+\end_inset
+</cell>
+</row>
+</lyxtabular>
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Standard
+Además:
+\end_layout
+
+\begin_layout Itemize
+El coprocesador 0, de manejo de excepciones, posee los registros
+\family typewriter
+$8
+\family default
+ (
+\family typewriter
+vaddr
+\family default
+),
+\family typewriter
+$12
+\family default
+ (
+\family typewriter
+status
+\family default
+),
+\family typewriter
+$13
+\family default
+ (
+\family typewriter
+cause
+\family default
+) y
+\family typewriter
+$14
+\family default
+ (
+\family typewriter
+epc
+\family default
+), de 32 bits cada uno.
+\end_layout
+
+\begin_layout Itemize
+El coprocesador 1, de punto flotante, posee los registros
+\family typewriter
+$f0
+\family default
+–
+\family typewriter
+$f31
+\family default
+, de 32 bits cada uno, que representan un entero de simple precisión o se
+ combinan en parejas (nombradas como el registro de menor número, que será
+ par) para representar enteros de doble precisión.
+\end_layout
+
+\begin_layout Itemize
+El registro
+\family typewriter
+pc
+\family default
+ contiene la
+\emph on
+siguiente
+\emph default
+ instrucción a ejecutar.
+\end_layout
+
+\begin_layout Itemize
+Los registros
+\family typewriter
+hi
+\family default
+ y
+\family typewriter
+lo
+\family default
+ se combinan para representar un entero de 64 bits, usado en multiplicaciones.
+\end_layout
+
+\begin_layout Standard
+Al inicio de un procedimiento, se disminuye
+\family typewriter
+$sp
+\family default
+ tanto como sea necesario y se guardan, en las direcciones
+\family typewriter
+0($sp)
+\family default
+,
+\family typewriter
+4($sp)
+\family default
+, etc., si es necesario, el valor del registro
+\family typewriter
+$ra
+\family default
+ y el de los re
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+gis
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+tros
+\family typewriter
+$s
+\emph on
+x
+\family default
+\emph default
+ que vayamos a utilizar.
+ Al final, se vuelven a cargar estos valores en los registros correspondientes,
+ se aumenta
+\family typewriter
+$sp
+\family default
+ y se salta a la dirección apuntada por
+\family typewriter
+$ra
+\family default
+\SpecialChar endofsentence
+
+\end_layout
+
+\begin_layout Section
+Instrucciones
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Aritmético-lógicas:
+\series default
+
+\family typewriter
+add[i][u]
+\family default
+ (
+\begin_inset Formula $R_{d}\leftarrow R_{s}+Op2$
+\end_inset
+
+),
+\family typewriter
+and[i]
+\family default
+ (
+\begin_inset Formula $R_{d}\leftarrow R_{s}\land Op2$
+\end_inset
+
+),
+\family typewriter
+div[u]
+\family default
+ (
+\begin_inset Formula $LO\leftarrow\left\lfloor \frac{R_{s}}{R_{t}}\right\rfloor $
+\end_inset
+
+,
+\begin_inset Formula $HI\leftarrow R_{s}-R_{t}LO$
+\end_inset
+
+),
+\family typewriter
+madd[u]
+\family default
+ (
+\begin_inset Formula $HI:LO\leftarrow HI:LO+R_{s}\cdot R_{t}$
+\end_inset
+
+),
+\family typewriter
+msub[u]
+\family default
+ (
+\begin_inset Formula $HI:LO\leftarrow HI:LO-R_{s}\cdot R_{t}$
+\end_inset
+
+),
+\family typewriter
+mul
+\family default
+ (
+\begin_inset Formula $HI:LO\leftarrow R_{s}\cdot R_{t}$
+\end_inset
+
+, seguido de
+\begin_inset Formula $R_{d}\leftarrow LO$
+\end_inset
+
+, sin desbordamiento),
+\family typewriter
+mult[u]
+\family default
+ (
+\begin_inset Formula $HI:LO\leftarrow R_{s}\cdot R_{t}$
+\end_inset
+
+),
+\family typewriter
+nor
+\family default
+ (
+\begin_inset Formula $R_{d}\leftarrow\neg(R_{s}\lor R_{t})$
+\end_inset
+
+),
+\family typewriter
+or[i]
+\family default
+ (
+\begin_inset Formula $R_{d}\leftarrow R_{s}+R_{t}$
+\end_inset
+
+),
+\family typewriter
+slt[i][u]
+\family default
+ (
+\begin_inset Formula $R_{d}\leftarrow\begin{cases}
+1 & \text{si }R_{s}<Op2\\
+0 & \text{si }R_{s}\geq Op2
+\end{cases}$
+\end_inset
+
+),
+\family typewriter
+sub[u]
+\family default
+ (
+\begin_inset Formula $R_{d}\leftarrow R_{s}-R_{t}$
+\end_inset
+
+),
+\family typewriter
+xor[i]
+\family default
+ (
+\begin_inset Formula $R_{d}\leftarrow R_{s}\text{ XOR }R_{t}$
+\end_inset
+
+).
+\begin_inset Newline newline
+\end_inset
+
+Parámetros:
+\begin_inset Formula $R_{d}$
+\end_inset
+
+,
+\begin_inset Formula $R_{s}$
+\end_inset
+
+ y
+\begin_inset Formula $Op2$
+\end_inset
+
+, donde
+\begin_inset Formula $Op2$
+\end_inset
+
+ es un inmediato si se añade
+\family typewriter
+i
+\family default
+ o un registro si no.
+ La
+\family typewriter
+u
+\family default
+ indica que se ignora el posible desbordamiento, salvo en instrucciones
+ de multiplicación, en cuyo caso indica que la multiplicación es sin signo.
+ Las operaciones lógicas son bit a bit.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+De desplazamiento de bits:
+\series default
+
+\family typewriter
+sll[v]
+\family default
+ (
+\begin_inset Formula $R_{d}\leftarrow R_{s}<<Op2$
+\end_inset
+
+),
+\family typewriter
+sra[v]
+\family default
+ (
+\begin_inset Formula $R_{d}\leftarrow R_{s}>>Op2$
+\end_inset
+
+),
+\family typewriter
+srl[v]
+\family default
+ (
+\begin_inset Formula $R_{d}\leftarrow(unsigned)R_{s}>>Op2$
+\end_inset
+
+).
+ Parámetros:
+\begin_inset Formula $R_{d}$
+\end_inset
+
+,
+\begin_inset Formula $R_{s}$
+\end_inset
+
+ y
+\begin_inset Formula $Op2$
+\end_inset
+
+, donde
+\begin_inset Formula $Op2$
+\end_inset
+
+ es un registro si se añade
+\family typewriter
+v
+\family default
+ o un inmediato si no.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+De punto flotante:
+\series default
+
+\family typewriter
+abs.[d|s]
+\family default
+ (
+\begin_inset Formula $R_{d}\leftarrow|R_{s}|$
+\end_inset
+
+),
+\family typewriter
+add.[d|s]
+\family default
+ (
+\begin_inset Formula $R_{d}\leftarrow R_{s}+R_{t}$
+\end_inset
+
+),
+\begin_inset Newline newline
+\end_inset
+
+
+\family typewriter
+c.[eq|le|lt].[d|s]
+\family default
+ (
+\begin_inset Formula $coproc1.cond[l]\leftarrow R_{s}[=|\leq|<]R_{t}$
+\end_inset
+
+),
+\family typewriter
+ceil.w.[d|s]
+\family default
+ (
+\begin_inset Formula $((int)R_{d})\leftarrow\lceil R_{s}\rceil$
+\end_inset
+
+),
+\family typewriter
+ cvt.[d.[s|w]|s.[d|w]|w.[d.s]]
+\begin_inset Newline newline
+\end_inset
+
+
+\family default
+(
+\begin_inset Formula $((double|float|int)R_{d})\leftarrow((double|float|int)R_{s})$
+\end_inset
+
+,
+\family typewriter
+ div.[d|s]
+\family default
+ (
+\begin_inset Formula $R_{d}\leftarrow\frac{R_{s}}{R_{t}}$
+\end_inset
+
+),
+\family typewriter
+floor.w.[d|s]
+\family default
+ (
+\begin_inset Formula $((int)R_{d})=\lfloor R_{s}\rfloor$
+\end_inset
+
+),
+\family typewriter
+mul.[d|s]
+\family default
+ (
+\begin_inset Formula $R_{d}\leftarrow R_{s}\cdot R_{t}$
+\end_inset
+
+),
+\family typewriter
+round.[d|s]
+\family default
+ (
+\begin_inset Formula $((int)R_{d})\leftarrow round(R_{s})$
+\end_inset
+
+),
+\family typewriter
+sqrt.[d|s]
+\family default
+ (
+\begin_inset Formula $R_{d}\leftarrow\sqrt{R_{s}}$
+\end_inset
+
+),
+\family typewriter
+sub.[d|s]
+\family default
+ (
+\begin_inset Formula $R_{d}\leftarrow R_{s}-R_{t}$
+\end_inset
+
+),
+\family typewriter
+trunc.w.[d|s]
+\family default
+ (
+\begin_inset Formula $((int)R_{d})\leftarrow\lfloor R_{s}\rfloor$
+\end_inset
+
+).
+
+\begin_inset Newline newline
+\end_inset
+
+Parámetros:
+\begin_inset Formula $l$
+\end_inset
+
+ opcional para
+\family typewriter
+c.[eq|le|lt].[d|s]
+\family default
+ (por defecto 0), seguido de
+\begin_inset Formula $R_{d}$
+\end_inset
+
+,
+\begin_inset Formula $R_{s}$
+\end_inset
+
+ y
+\begin_inset Formula $R_{t}$
+\end_inset
+
+ (sólo los que se indican en la descripción de instrucción).
+ Estos corresponden a los registros del coprocesador 1, tratados como de
+ simple precisión, si la instrucción termina en
+\family typewriter
+.s
+\family default
+, o parejas de estos, tratados como de doble precisión, si termina en
+\family typewriter
+.d
+\family default
+; sin embargo, el indicar
+\begin_inset Formula $float$
+\end_inset
+
+,
+\begin_inset Formula $double$
+\end_inset
+
+ o
+\begin_inset Formula $int$
+\end_inset
+
+ junto a estos indica que se trata de números en punto flotante de simple
+ precisión, de doble precisión (mediante parejas de registros) o enteros
+ de 32 bits (en los tres casos registros del coprocesador 1).
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+De salto:
+\series default
+
+\family typewriter
+bc1f
+\family default
+ (
+\begin_inset Formula $coproc1.cond[l]=0$
+\end_inset
+
+),
+\family typewriter
+bc1t
+\family default
+ (
+\begin_inset Formula $coproc1.cond[l]=1$
+\end_inset
+
+),
+\family typewriter
+beq
+\family default
+ (
+\begin_inset Formula $R_{s}=R_{t}$
+\end_inset
+
+),
+\family typewriter
+bgez[al]
+\family default
+ (
+\begin_inset Formula $R_{s}\geq0$
+\end_inset
+
+),
+\family typewriter
+bgtz
+\family default
+ (
+\begin_inset Formula $R_{s}>0$
+\end_inset
+
+),
+\family typewriter
+blez
+\family default
+ (
+\begin_inset Formula $R_{s}\leq0$
+\end_inset
+
+),
+\family typewriter
+bltz[al]
+\family default
+ (
+\begin_inset Formula $R_{s}<0$
+\end_inset
+
+),
+\family typewriter
+bne
+\family default
+ (
+\begin_inset Formula $R_{s}\neq R_{t}$
+\end_inset
+
+),
+\family typewriter
+j[al]
+\family default
+ (siempre).
+ Entre paréntesis se indica la condición necesaria para
+\begin_inset Formula $PC\leftarrow label$
+\end_inset
+
+.
+
+\family typewriter
+al
+\family default
+ además hace antes
+\begin_inset Formula $\mathtt{\$ra}\leftarrow PC$
+\end_inset
+
+.
+ Parámetros:
+\begin_inset Formula $l$
+\end_inset
+
+ opcional para
+\family typewriter
+bc1f
+\family default
+ o
+\family typewriter
+bc1t
+\family default
+ (por defecto 0) o uno o dos registros (
+\family typewriter
+\emph on
+Rs
+\emph default
+[,
+\emph on
+Rt
+\emph default
+]
+\family default
+) según requiera la condición, seguidos de
+\begin_inset Formula $label$
+\end_inset
+
+.
+\begin_inset Newline newline
+\end_inset
+
+También,
+\family typewriter
+jr Rs
+\family default
+ para
+\begin_inset Formula $PC\leftarrow R_{s}$
+\end_inset
+
+, o
+\family typewriter
+jalr [Rd, ]Rs
+\family default
+ (por defecto
+\begin_inset Formula $R_{d}=\mathtt{\$ra}$
+\end_inset
+
+) para antes hacer
+\begin_inset Formula $R_{d}\leftarrow PC$
+\end_inset
+
+.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+De excepción:
+\series default
+
+\family typewriter
+teq[i]
+\family default
+ (
+\begin_inset Formula $R_{s}=Op2$
+\end_inset
+
+),
+\family typewriter
+tge[i][u]
+\family default
+ (
+\begin_inset Formula $R_{s}\geq Op2$
+\end_inset
+
+),
+\family typewriter
+tlt[i][u]
+\family default
+ (
+\begin_inset Formula $R_{s}<Op2$
+\end_inset
+
+),
+\family typewriter
+tne[i]
+\family default
+ (
+\begin_inset Formula $R_{s}\neq Op2$
+\end_inset
+
+).
+ Entre paréntesis se indica la condición para provocar una excepción de
+ software.
+ Parámetros:
+\begin_inset Formula $R_{s}$
+\end_inset
+
+ y
+\begin_inset Formula $Op2$
+\end_inset
+
+, donde
+\begin_inset Formula $Op2$
+\end_inset
+
+ es un inmediato si se añade
+\family typewriter
+i
+\family default
+ o un registro si no.
+ La comparación es con signo salvo si se especifica
+\family typewriter
+u
+\family default
+.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+De acceso a memoria:
+\series default
+
+\family typewriter
+l[b][u]
+\family default
+ (
+\begin_inset Formula $R_{d}\leftarrow(s16|u16)Mem)$
+\end_inset
+
+),
+\family typewriter
+l[d|w]c1
+\begin_inset Newline newline
+\end_inset
+
+
+\family default
+(
+\begin_inset Formula $((double|float)R_{d})\leftarrow Mem$
+\end_inset
+
+),
+\family typewriter
+lh[u]
+\family default
+ (
+\begin_inset Formula $R_{d}\leftarrow(s16|u16)Mem$
+\end_inset
+
+),
+\family typewriter
+lw
+\family default
+ (
+\begin_inset Formula $R_{d}\leftarrow(int)Mem$
+\end_inset
+
+),
+\family typewriter
+
+\begin_inset Newline newline
+\end_inset
+
+sb
+\family default
+ (
+\begin_inset Formula $(s8|u8)Mem\leftarrow R_{t}$
+\end_inset
+
+),
+\family typewriter
+s[d|w]c1
+\family default
+ (
+\begin_inset Formula $(double|float)Mem\leftarrow((double|float)R_{t})$
+\end_inset
+
+),
+\family typewriter
+
+\begin_inset Newline newline
+\end_inset
+
+sh
+\family default
+ (
+\begin_inset Formula $(s16|u16)Mem\leftarrow R_{t}$
+\end_inset
+
+),
+\family typewriter
+sw
+\family default
+ (
+\begin_inset Formula $(int)Mem\leftarrow R_{t}$
+\end_inset
+
+).
+ Parámetros:
+\family typewriter
+
+\begin_inset Formula $R_{t}$
+\end_inset
+
+, [
+\begin_inset Formula $despl.$
+\end_inset
+
+][(
+\begin_inset Formula $R_{s}$
+\end_inset
+
+)]
+\family default
+ (por defecto,
+\begin_inset Formula $despl.=0$
+\end_inset
+
+ y
+\begin_inset Formula $R_{s}=\mathtt{\$0}$
+\end_inset
+
+), con
+\begin_inset Formula $Mem=*(despl.+R_{s})$
+\end_inset
+
+.
+\family typewriter
+
+\begin_inset Newline newline
+\end_inset
+
+ll
+\family default
+ es como
+\family typewriter
+lw
+\family default
+ pero, en sistemas multinúcleo funciona con
+\family typewriter
+sc
+\family default
+, similar a
+\family typewriter
+sw
+\family default
+, para lectura-modificación-escritura atómica.
+
+\family typewriter
+lwl
+\family default
+ y
+\family typewriter
+lwr
+\family default
+ cargan de 1 a 4 bytes, justificados respectivamente a izquierda o derecha,
+ desde la dirección dada hasta el byte, respectivamente, menos o más significati
+vo de la palabra.
+
+\family typewriter
+swl
+\family default
+ y
+\family typewriter
+swr
+\family default
+ hacen lo mismo pero al revés (almacenan).
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+De transferencia:
+\series default
+
+\family typewriter
+lui
+\family default
+ (
+\begin_inset Formula $R_{d}\leftarrow2^{16}\cdot imm$
+\end_inset
+
+),
+\family typewriter
+mfc0
+\family default
+ (
+\begin_inset Formula $R_{d}\leftarrow E_{s}$
+\end_inset
+
+),
+\family typewriter
+mfc1
+\family default
+ (
+\begin_inset Formula $R_{d}\leftarrow F_{s}$
+\end_inset
+
+),
+\family typewriter
+mfhi
+\family default
+ (
+\begin_inset Formula $R_{d}\leftarrow HI$
+\end_inset
+
+),
+\family typewriter
+mflo
+\family default
+ (
+\begin_inset Formula $R_{d}\leftarrow LO$
+\end_inset
+
+),
+\family typewriter
+mov.d
+\family default
+ (
+\begin_inset Formula $D_{d}\leftarrow D_{s}$
+\end_inset
+
+),
+\family typewriter
+mov.s
+\family default
+ (
+\begin_inset Formula $F_{d}\leftarrow F_{s}$
+\end_inset
+
+),
+\family typewriter
+movf[|.d|.s]
+\family default
+ (
+\begin_inset Formula $coproc1.cond[l]=0:G_{d}\leftarrow G_{s}$
+\end_inset
+
+),
+\family typewriter
+movt[|.d|.s]
+\family default
+ (
+\begin_inset Formula $coproc1.cond[l]=1:G_{d}\leftarrow G_{s}$
+\end_inset
+
+),
+\family typewriter
+movn[|.d|.s]
+\family default
+ (
+\begin_inset Formula $R_{t}\neq0:G_{d}\leftarrow G_{s}$
+\end_inset
+
+),
+\family typewriter
+movz[|.d|.s]
+\family default
+ (
+\begin_inset Formula $R_{t}=0:G_{d}\leftarrow G_{s}$
+\end_inset
+
+),
+\family typewriter
+mtc0
+\family default
+ (
+\begin_inset Formula $E_{t}\leftarrow R_{s}$
+\end_inset
+
+),
+\family typewriter
+mtc1
+\family default
+ (
+\begin_inset Formula $F_{t}\leftarrow R_{s}$
+\end_inset
+
+),
+\family typewriter
+mthi
+\family default
+ (
+\begin_inset Formula $HI\leftarrow R_{s}$
+\end_inset
+
+),
+\family typewriter
+mtlo
+\family default
+ (
+\begin_inset Formula $LO\leftarrow R_{s}$
+\end_inset
+
+).
+
+\begin_inset Newline newline
+\end_inset
+
+Parámetros: En orden,
+\begin_inset Formula $X_{d}$
+\end_inset
+
+,
+\begin_inset Formula $X_{s}$
+\end_inset
+
+,
+\begin_inset Formula $X_{t}$
+\end_inset
+
+ e
+\begin_inset Formula $imm$
+\end_inset
+
+ (de estos sólo los que aparezcan en la des
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+crip
+\begin_inset ERT
+status open
+
+\begin_layout Plain Layout
+
+
+\backslash
+-
+\end_layout
+
+\end_inset
+
+ción), más
+\family typewriter
+l
+\family default
+ opcional (por defecto 0) para
+\family typewriter
+movf[|.d|.s]
+\family default
+ y
+\family typewriter
+movt[|.d|.s]
+\family default
+.
+ En la descripción, la
+\begin_inset Formula $X$
+\end_inset
+
+ aparece como una
+\begin_inset Formula $R$
+\end_inset
+
+ para registros del procesador,
+\begin_inset Formula $E$
+\end_inset
+
+ si son del coprocesador 0,
+\begin_inset Formula $F$
+\end_inset
+
+ si son del 1 y
+\begin_inset Formula $D$
+\end_inset
+
+ si son parejas de registros del 1 para doble precisión, y
+\begin_inset Formula $G$
+\end_inset
+
+ indica
+\begin_inset Formula $F$
+\end_inset
+
+ cuando la instrucción acaba en
+\family typewriter
+.s
+\family default
+,
+\begin_inset Formula $D$
+\end_inset
+
+ cuando acaba en
+\family typewriter
+.d
+\family default
+ o
+\begin_inset Formula $R$
+\end_inset
+
+ en caso contrario.
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Miscelánea:
+\series default
+
+\family typewriter
+break [imm]
+\family default
+ (termina la ejecución con una excepción, con código especificado opcionalmente
+ por
+\family typewriter
+imm
+\family default
+),
+\family typewriter
+clo Rd, Rs
+\family default
+ (establece
+\begin_inset Formula $R_{d}$
+\end_inset
+
+ como el número de 1s desde el bit más significativo de
+\begin_inset Formula $R_{s}$
+\end_inset
+
+),
+\family typewriter
+clz Rd, Rs
+\family default
+ (igual pero con 0s),
+\family typewriter
+eret
+\family default
+ (vuelve de una excepción,
+\begin_inset Formula $PC\leftarrow\mathtt{epc}$
+\end_inset
+
+,
+\begin_inset Formula $\mathtt{status}[1]\leftarrow0$
+\end_inset
+
+),
+\family typewriter
+nop
+\family default
+ (no hace nada),
+\family typewriter
+syscall
+\family default
+ (realiza una llamada al sistema).
+\end_layout
+
+\begin_layout Section
+Pseudoinstrucciones
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+Aritmético-lógicas
+\series default
+: Poder omitir
+\begin_inset Formula $R_{d}$
+\end_inset
+
+ si
+\begin_inset Formula $R_{d}=R_{s}$
+\end_inset
+
+.
+ Poder especificar un inmediato mayor que
+\begin_inset Formula $2^{16}-1$
+\end_inset
+
+ (o fuera del rango
+\begin_inset Formula $[-2^{15},2^{15}-1]$
+\end_inset
+
+ si es con signo).
+
+\family typewriter
+abs Rd, Rs
+\family default
+ (
+\begin_inset Formula $R_{d}\leftarrow|R_{s}|$
+\end_inset
+
+).
+
+\family typewriter
+div[u]
+\family default
+ (
+\begin_inset Formula $R_{d}\leftarrow\left\lfloor \frac{R_{s}}{R_{t}}\right\rfloor $
+\end_inset
+
+).
+
+\family typewriter
+mulo[u]
+\family default
+ (como
+\family typewriter
+mul[u]
+\family default
+ pero con detección de desbordamiento).
+
+\family typewriter
+neg[u]
+\family default
+ (
+\begin_inset Formula $R_{d}\leftarrow-R_{s}$
+\end_inset
+
+, la
+\family typewriter
+u
+\family default
+ indica que no se detectan desbordamientos).
+
+\family typewriter
+not
+\family default
+ (
+\begin_inset Formula $R_{d}\leftarrow\neg R_{s}$
+\end_inset
+
+).
+
+\family typewriter
+rem[u]
+\family default
+ (
+\begin_inset Formula $R_{d}\leftarrow R_{s}-R_{t}\left\lfloor \frac{R_{s}}{R_{t}}\right\rfloor $
+\end_inset
+
+).
+
+\family typewriter
+seq
+\family default
+,
+\family typewriter
+sge[u]
+\family default
+,
+\family typewriter
+sgt[u]
+\family default
+,
+\family typewriter
+sle[u]
+\family default
+,
+\family typewriter
+sne
+\family default
+ (
+\begin_inset Formula $R_{d}=\begin{cases}
+1 & \text{si }R_{s}[=|\geq|>|\leq|\neq]Op2\\
+0 & \text{si }R_{s}[\neq|<|\leq|>|=]Op2
+\end{cases}$
+\end_inset
+
+).
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+De desplazamiento de bits
+\series default
+:
+\family typewriter
+ro[l|r] Rd, Rs, Op2
+\family default
+ (rota los bits de
+\begin_inset Formula $R_{s}$
+\end_inset
+
+, respectivamente a izquierda o derecha, en un número de bits indicado por
+
+\begin_inset Formula $Op2$
+\end_inset
+
+, que puede ser registro o inmediato).
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+De salto
+\series default
+: Poder comparar con inmediatos y de tamaño arbitrario.
+
+\family typewriter
+b label
+\family default
+ (incondicional).
+
+\family typewriter
+bge[u]
+\family default
+ (
+\begin_inset Formula $R_{s}\geq Op2$
+\end_inset
+
+),
+\family typewriter
+bgt[u]
+\family default
+ (
+\begin_inset Formula $R_{s}>Op2$
+\end_inset
+
+),
+\family typewriter
+ble[u]
+\family default
+ (
+\begin_inset Formula $R_{s}\leq Op2$
+\end_inset
+
+) y
+\family typewriter
+blt[u]
+\family default
+ (
+\begin_inset Formula $R_{s}<Op2$
+\end_inset
+
+), donde la
+\family typewriter
+u
+\family default
+ indica que la comparación es sin signo.
+
+\family typewriter
+beqz
+\family default
+ (
+\begin_inset Formula $R_{s}=0$
+\end_inset
+
+) y
+\family typewriter
+bnez
+\family default
+ (
+\begin_inset Formula $R_{s}\neq0$
+\end_inset
+
+).
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+De acceso a memoria
+\series default
+: Poder especificar un desplazamiento fuera del rango
+\begin_inset Formula $[-2^{15},2^{15}-1]$
+\end_inset
+
+, o una etiqueta, o la suma de
+\begin_inset Formula $etiqueta\mathtt{+}despl.$
+\end_inset
+
+.
+\family typewriter
+
+\begin_inset Newline newline
+\end_inset
+
+l.[d|s]
+\family default
+ (
+\begin_inset Formula $((double|float)R_{d})\leftarrow(double|float)Mem$
+\end_inset
+
+).
+
+\family typewriter
+ld
+\family default
+ (
+\begin_inset Formula $R_{d+1}:R_{d}\leftarrow(long)Mem$
+\end_inset
+
+).
+ Análogamente se definen
+\family typewriter
+s.[d|s]
+\family default
+ y
+\family typewriter
+sd
+\family default
+.
+ También
+\family typewriter
+ulh[u]
+\family default
+,
+\family typewriter
+ulw
+\family default
+,
+\family typewriter
+ush
+\family default
+,
+\family typewriter
+usw
+\family default
+ (similares, respectivamente, a
+\family typewriter
+lh[u]
+\family default
+,
+\family typewriter
+lw
+\family default
+,
+\family typewriter
+sh
+\family default
+ y
+\family typewriter
+sw
+\family default
+ pero no requieren que la dirección dada sea múltiplo del tamaño del dato
+ a mover).
+\end_layout
+
+\begin_layout Itemize
+
+\series bold
+De transferencia
+\series default
+:
+\family typewriter
+la
+\family default
+ (similar a
+\family typewriter
+lb
+\family default
+ pero carga la
+\emph on
+dirección
+\emph default
+ dada en vez de su contenido).
+
+\family typewriter
+li
+\family default
+ (
+\begin_inset Formula $R_{d}\leftarrow imm$
+\end_inset
+
+, con
+\begin_inset Formula $imm$
+\end_inset
+
+ de tamaño arbitrario).
+
+\family typewriter
+mfc1.d
+\family default
+ (
+\begin_inset Formula $R_{d+1}:R_{d}\leftarrow D_{s}$
+\end_inset
+
+).
+
+\family typewriter
+mtc1.d
+\family default
+ (
+\begin_inset Formula $D_{s}\leftarrow R_{t+1}:R_{t}$
+\end_inset
+
+).
+\end_layout
+
+\end_body
+\end_document