Publicidad

Instrucciones lenguaje assembler

ANDREA
ANDREA
1 de Jun de 2010
Publicidad

Más contenido relacionado

Publicidad
Publicidad

Instrucciones lenguaje assembler

  1.  
  2. INSTRUCCIONES DE TRANSFERENCIA Este grupo de instrucciones se utiliza para efectuar la transferencia de datos, copian datos de un origen a un destino sin modificar dicho origen. Pueden transferir palabras, fracciones de palabras, o bloques completos. Algunos ejemplos son: 1. PUSH: Guarda en la cima de la pila 16 bits, decrementando el puntero de la pila en dos bytes, hay que tener en cuenta que no se puede guardar en la pila el contenido del registro CS o el contenido del registro IP ya que estos deben ser modificados por las instrucciones de salto. SINTAXIS: PUSH: reg16 PUSH: mem16 Ejemplo: PUSH: CX PUSH: TABLA (SI)
  3. 2. POP: Extrae de la cima de la pila el valor de 16 bits almacenado, depositándolo en la dirección de memoria indicada y a diferencia del PUSH incrementa el puntero de la pila en dos bytes, igualmente se debe tener en cuenta que no se debe rescatar valores para los registros CS e IP ya que estos deben ser modificados por las instrucciones de salto. SINTAXIS: PUSH: reg16 PUSH: mem16 Ejemplo: POP: DX POP: [BX] 3. XCHG (Intercambio): Consta de dos operandos e intercambia sus valores por lo que modifica los operandos a no ser que tengan idéntico valor, cabe recalcar que no se permite que los operandos estén los dos en la misma memoria. SINTAXIS: XCHG destino, origen Indicadores: Ejemplo: XCHGN: bl, ch XCHGN: mem pal, bx
  4. INSTRUCCIONES ARITMETICAS Son efectuada por la Unidad Aritmeto – logica (ALU) y suelen cambian los flags o indicadores de condición. Algunos ejemplos son: 1. INC: Incrementa. Suma 1 al contenido de un registro o de una posición de memoria, dicho contenido puede ser byte o palabra. SINTAXIS: INC destino Indicadores: OF DF IF TF SF ZF AF PF CF x - - - x x x x - Ejemplo: INC AX ; AX = AX+1 INC DL ; DL = DL +1 INC WORD PTR ES: [DI+4]; Increm. Palabra contenida ; es ES: DI+4
  5. 2. DEC: Decrementa. resta 1 al contenido de un registro o de una posición de memoria, dicho contenido puede ser byte o palabra. SINTAXIS: DEC destino Indicadores: OF DF IF TF SF ZF AF PF CF x - - - x x x x - Ejemplo: DEC AX ; AX = AX+1 DEC DL ; DL = DL-1 DEC WORD PTR ES: [DI+4]; Decrem. Byte contenido en ; ES: DI+4 3. SUB: Resta el operando destino al operando origen, colocando dicho resultado en el operando destino, los operandos pueden tener signo siempre y cuando sean del mismo tipo byte o palabra. SINTAXIS: SUB op_destino, op_fuente ; sintaxis básica. Ejemplo: SUB al, bl SUB dx,dx
  6. INSTRUCCIONES LOGICAS En este grupo se incluyen las instrucciones de conjunción, disyunción, esxclusiva y negación, la aplicación practica no es de siempre sin embargo suelen estar presentes en la mayoria de los programas. Algunos ejemplos son: 1. AND: Realiza una operación de “Y” lógico entre el operando origen y el operando destino quedando el resultado en el operando destino. SINTAXIS: AND destino, origen Ejemplo: AND AX,BX ; AX = AX AND BX AND SI,ES:[DI] ; SI=SI AND ES:[DI] AND BX,0A34H ; BX=BX AND 0A34H AND ES:[BX], CX ; ES: [BX] = ES: [BX] AND CX AND BYTE PTR [SI+4],5 ; [SI+4] = [SI+4] AND 5
  7. 2. OR: Realiza una operación de “O” lógico a nivel de bits entre los dos operandos , almacenándose después dicho resultado en el operando destino. SINTAXIS: OR destino, origen Ejemplo: OR AL,BL ; AL = AL OR BL OR DI:[BX] ; DI=DI OR [BX] OR CL,34 ; CL=CL OR 34 OR [DI], BX ; [DI] = [DI] OR BX OR BYTE PTR [DI],8 ; [DI] = [DI] OR 8 3. XOR: Realiza una operación de “O” exclusivo lógico a nivel de bits entre los dos operandos , almacenándose después dicho resultado en el operando destino. SINTAXIS: XOR destino, origen Ejemplo: XOR CX,BX ; CX = CX XOR BX XOR DI,ES:[SI] ; DI= DI XOR ES:[SI] XOR AX,4500H ; AX=AX XOR 4500H XOR [BX], AX ; [BX] = [BX] XOR AX XOR BYTE PTR [SI+BX],50 ; [SI+BX] = [SI+BX] XOR 50
  8. INSTRUCCIONES DE SALTO Sirven para que el procesador, en lugar de ejecutar la siguiente instrucción , pase a ejecutar otra en lugar que se denomina “destino de salto”. Algunos ejemplos son: 1. JMP: Realiza un salto de ejecución incondicional hacia la dirección o etiqueta especifica. SINTAXIS: JMP dirección o JMP SHORT dirección Ejemplos: JMP     100H     ; Salta a CX:100h JMP 55AAH:100H   ; Salto lejano a otro segmento JMP WORD PTR [BX]   ; Salto a la dirección contenida en                         ; la dirección de memoria especificada ; por BX (salto indirecto) JMP     REPITE      ; Salto a la etiqueta REPITE
  9. 2. CALL: El efecto de esta instrucción es similiar a la de salto incondicional con la diferencia de que el procesador guarda ciertos datos en lugares para facilitar el retorno una vez terminada la ejecución de la subrutina. SINTAXIS: CALL destino El salto puede ser cercano o lejano. Ejemplo: “ ' (1) Call a Sub procedure. Call printToDebugWindow("Hello World") ... ' The above statement passes control to the following Sub procedure. Sub printToDebugWindow(ByVal anyString As String) Debug.WriteLine(anyString) End Sub” TOMADO DE http://msdn.microsoft.com/es-es/library/sxz296wz(VS.80).aspx
Publicidad