David hace 11 años
padre
commit
5bcdc51fa5
Se han modificado 1 ficheros con 4 adiciones y 4 borrados
  1. 4 4
      machete/machete.tex

+ 4 - 4
machete/machete.tex

@@ -137,8 +137,8 @@ CMPSB/W/D/DQ & -- & Compara el contenido de donde apunta RSI y donde apunta RDI.
 ... \\ 
 \textbf{SUB RSP, 8}; para alinear, variables locales \\
 \textbf{SUB RSP, 16}; Para almacenar registros XMM \\
-... \\
-... \\
+;sub rsp, 16 ;por ejemplo \\
+;mov [rsp], xmm0 ; esto es equiv a "push xmm0" \\
 \textbf{POP RBP} \\
 \textbf{RET} \\
 \emph{El \textbf{RSP} apunta al \'ultimo elemento pusheado. Hacer push decrementa el RSP en 8 y mueve el dato.}
@@ -247,7 +247,7 @@ Indica que el struct no va a ser alineado
 
 
 \subsection*{Shuffles}
-Las intrucciones de Shuffles permiten reordenar datos en registros. Sus par\'ametros serán el registro a reordenar y una mascara que indicar\'a como hacerlo
+Las intrucciones de Shuffles permiten reordenar datos en registros. Sus par\'ametros ser\'an el registro a reordenar y una mascara que indicar\'a como hacerlo
 \begin{itemize}
 \item \textbf{PSHUF\{B,W,D\}}: Shuffle Packed Bytes, Words, Doublewords
 \item \textbf{PSHUF\{H,L\}W}: Shuffle High, low 16bit values
@@ -309,6 +309,7 @@ tengoQueBorrrar:
 \end{lstlisting}
 
 \subsection{SSE Matriz Negativo}
+Aca lo importante es que al desempaquetar un negativo perdes el bit de signo si lo extendes con ceros. Lo tenes que extender con unos (pero solo para los elementos que sean negativos!)
 \begin{lstlisting}[frame=single, style=asmStyle]
 .ciclo:
 	movdqu xmm0, [rdi]			; XMM0 = 16 chars
@@ -331,7 +332,6 @@ tengoQueBorrrar:
 	pand xmm5, xmm6				; XMM5 (bytes) = 0x00 si el char es POSITIVO
 								; el VALOR del char si es NEGATIVO
     ;(!) pude separar positivos y negativos de a 16 elementos simultaneamente...
-
     ;--------------------------
     ; calculo sumPositiva
 	; como son postitivos desempaqueto (extiendo signo) con XMM2 que tiene todos ceros