diff options
Diffstat (limited to 'etc/na.lyx')
| -rw-r--r-- | etc/na.lyx | 2030 |
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 |
