Академический Документы
Профессиональный Документы
Культура Документы
EQUIPO 2.
SUMA Y RESTA
SUMA Y RESTA
Ejemplo
SUMA Y RESTA
Por lo tanto podemos manejar las instrucciones de la siguiente manera.
Registro a registro Memoria a registro (viceversa) Constante a registro (viceversa) Constante a memoria (viceversa)
SUMA Y RESTA
Ejemplo.
Si AL=60H, entonces la instruccin: ADD AL,20H Genera una suma de AL=80H La suma valdra -128 en vez de +128; esto es porque 80H=10000000 pero podemos evitar esto, ya que AL es un registro pequeo para la suma, por lo tanto debemos usar AX.
SUMA Y RESTA
Las instrucciones ADD y SUB no distinguen entre datos con y sin signo; slo suman y restan bits.
Ejemplo.
Sin signo. 249+2=251 Con signo. -7+2=-5
SUMA Y RESTA
Aritmtica con acarreo. Pone la bandera de acarreo en encendido. CF=1
Ejemplo.
Sin signo. 252+5=1 No vlido. Con signo. -4+5=1 Vlido
SUMA Y RESTA
Ejemplo.
Sin signo. 121+11=132 Vlido. Con signo. 121+11= -124 No vlido
SUMA Y RESTA
Las instrucciones ADC y SBB se utilizan para la suma y resta con acarreo y desbordamiento.
SUMA Y RESTA
SUMA Y RESTA
Donde asignamos los siguientes valores: Mem1=2, mem5=0 Para sumar AL a BX usamos la bandera y la instruccin de suma para acarreo. Y PTR es un apuntador
INCREMENTO Y DECREMENTO
Las instrucciones INC y DEC incrementa y decrementa en unidad el operando. INC (destino) DEC (destino)
INCREMENTO Y DECREMENTO
MULTIPLICACION Y DIVISION
Las instrucciones MUL y DIV multiplican y dividen datos sin signo, ambas afectan las banderas de acarreo y desbordamiento.
MULTIPLICACION Y DIVISION
Multiplicando AL AX
Producto AX DX:AX
MULTIPLICACION Y DIVISION
La instruccin IMUL multiplica datos con signo de la misma manera que MUL.
MULTIPLICACION Y DIVISION
USANDO MUL
MULTIPLICACION Y DIVISION
USANDO IMUL
MULTIPLICACION Y DIVISION
Donde en el primer ejemplo multiplica 80H (128) por 40H (64). El producto en el AX es 2000H (8192). Con la instruccin IMUL trata a 80H como -128. As que al multiplicar 80H por 40H nos da E000H (-8192H)
MULTIPLICACION Y DIVISION
Dividendo AX DX:AX
Cociente AL AX
Residuo AH DX
MULTIPLICACION Y DIVISION
La instruccin IDIV divide datos con signo de la misma manera que DIV.
MULTIPLICACION Y DIVISION
USANDO DIV
MULTIPLICACION Y DIVISION
USANDO IDIV
MULTIPLICACION Y DIVISION
Donde en el primer ejemplo divide 2000h (8092) entre 80h (128) el residuo en AH es 00h y el cociente en AL es 40h(64). El segundo ejemplo necesitamos extender byte1 a una palabra.
MULTIPLICACION Y DIVISION
Cuando usamos IDIV estamos dividiendo datos con signo, por lo tanto en el primer ejemplo divide 2000h(+) entre 80h(-); el residuo es 00h en AH y el cociente es C0H (-64) en AL
MULTIPLICACION Y DIVISION
OPERACIONES CON NUMEROS GRANDES
MULTIPLICACION Y DIVISION
OPERACIONES CON NUMEROS GRANDES
Los ordenadores slo son capaces de almacenar dgitos binarios, no signos. Por lo que en vez de anteponer un signo (-) a un nmero negativo, su bit ms significativo (izquierdo) anteponemos; 0(+), 1(-).
Para convertir un nmero positivo a negativo (viceversa): Se invierten todos los bits del nmero y luego se le suma 1 al resultado.
Ejemplo:
35d = 00100011b -> (invirtiendo) -> 11011100b -> +1 -> 11011101b = -35d -35d = 11011101b -> (invirtiendo) -> 00100010b -> +1 -> 00100011b = 35d
NUMERO OPUESTO
Un nmero es opuesto a otro si al sumarlos obtenemos el elemento neutro, es decir el cero. La instruccin NEG (negar) invierte los bits y despus suma 1 al resultado.
NUMERO OPUESTO
.MODEL tiny .STACK .DATA numero db 10 .CODE inicio: mov ax,@data mov ds,ax NEG numero inc numero mov ah,4ch int 21h END inicio
ROTACIN Y DESPLAZAMIENTO
Existen instrucciones que sirven para mover el contenido de cada bit hacia la izquierda o derecha, segn el caso.
ROTACIN Y DESPLAZAMIENTO
Una rotacin a la izquierda mueve el valor de cada bit en el de su izquierda y copia el contenido previo del bit de mayor peso en el de menor peso. Una rotacin a la derecha mueve el valor de cada bit en el de su derecha y copia el contenido previo del bit de menor peso en el de mayor peso
ROTACIN Y DESPLAZAMIENTO
ROL destino, contador (Rota a la izquierda los bits del operando destino el nmero de bits especificado en el segundo operando. Si el nmero de bits es 1 se puede poner directamente, en caso contrario debe ponerse a travs de CL y especificar CL como segundo operando). ROR destino, contador (Rota a la derecha los bits del operando destino y la misma dinmica en contador que anterior). RCL destino, contador (Rotar a la izquierda los bits del operando destino junto con el indicador de acarreo CF y la misma dinmica en contador que anterior). RCR destino, contador (Rotar a la derecha los bits del operando destino junto con el indicador de acarreo CF y la misma dinmica en contador que anterior).
ROTACIN Y DESPLAZAMIENTO
.MODEL tiny .STACK .DATA numero dw 0fffh .CODE inicio: mov ax,@data mov ds,ax mov cl,4 mov bx,numero rol numero,cl mov bx,numero ror numero,cl mov bx,numero mov ah,4ch int 21h END inicio
ROTACIN Y DESPLAZAMIENTO
Un desplazamiento a la izquierda mueve el valor de cada bit en el de su izquierda, el valor del bit de mayor peso pasa al acarreo y el de menor peso se anula. Un desplazamiento a la derecha mueve el valor de cada bit en el de su derecha, el valor del bit de menor peso pasa al acarreo y el de mayor peso se anula.
ROTACIN Y DESPLAZAMIENTO
SAL/SHL destino, contador (Desplaza a la izquierda los bits del operando destino el nmero de bits especificado en el segundo operando. Si el nmero de bits es 1 se puede poner directamente, en caso contrario debe ponerse a travs de CL y especificar CL como segundo operando). SAR destino, contador (Desplaza a la derecha los bits del operando destino. Los bits de la izquierda se rellenan con el bit de signo del primer operando). SHR destino, contador (Desplaza a la derecha los bits del operando destino el nmero de los bits especificados en el segundo operando. Los bits de la izquierda se llena con cero.
ROTACIN Y DESPLAZAMIENTO
.MODEL tiny .STACK .DATA valor db 10110011b .CODE inicio: mov ax,@data mov ds,ax mov cl,4 mov bx,valor shl valor,cl mov bx,valor shr valor,cl mov bx,valor mov ah,4ch int 21h END inicio
GRACIAS