Ensamblador

  0   1   2   3   4   5   6   7   8   9   10

9
  1. Otro problema de examen. Hallar el valor de AX tras la instrucción mov ax,word ptr ds:[3]
    ;------------------------------------------------------------------------------ ;Definicion del segmento de datos ;------------------------------------------------------------------------------ DATOS SEGMENT dw 3Ah,7Bh,9Ch db 34h,76h,65h org 1 db 67h,31h,56h,"SE ACABO" DATOS ENDS ;------------------------------------------------------------------------------ ;Definicion del segmento de pila ;------------------------------------------------------------------------------ PILA SEGMENT STACK "STACK" db 40h DUP(0) PILA ENDS ;------------------------------------------------------------------------------ ;Definicion del segmento de codigo ;------------------------------------------------------------------------------ CODE SEGMENT assume cs:code,ds:datos,ss:pila START PROC ;Inicializamos los registros de segmento mov ax,datos mov ds,ax mov ax,pila mov ss,ax mov ax,word ptr ds:[3] mov ax,4C00h ; int 21h ;Terminar el programa START ENDP CODE ENDS END START
  2. Muy similar al anterior:
    ;------------------------------------------------------------------------------ ;Definicion del segmento de datos ;------------------------------------------------------------------------------ DATOS SEGMENT dw 3Ah,7Bh,9Ch db 34h,76h,65h org 2 db 67h,31h,56h,"SE ACABO" DATOS ENDS ;------------------------------------------------------------------------------ ;Definicion del segmento de pila ;------------------------------------------------------------------------------ PILA SEGMENT STACK "STACK" db 40h DUP(0) PILA ENDS ;------------------------------------------------------------------------------ ;Definicion del segmento de codigo ;------------------------------------------------------------------------------ CODE SEGMENT assume cs:code,ds:datos,ss:pila START PROC ;Inicializamos los registros de segmento mov ax,datos mov ds,ax mov ax,pila mov ss,ax mov ax,word ptr ds:[3] mov ax,4C00h ; int 21h ;Terminar el programa START ENDP CODE ENDS END START
  3. ¿Cuál es el valor de AX tras la instrucción NOP?:
    ; Ejercicio: examen ETCII - febrero 2002 ;------------------------------------------------------------------------------ ;Definicion del segmento de pila ;------------------------------------------------------------------------------ PILA SEGMENT STACK "STACK" db 40h DUP(0) PILA ENDS ;------------------------------------------------------------------------------ ;Definicion del segmento extra ;------------------------------------------------------------------------------ EXTRA SEGMENT RESULT DW 0,0 EXTRA ENDS ;------------------------------------------------------------------------------ ;Definicion del segmento de codigo ;------------------------------------------------------------------------------ CODE SEGMENT assume CS:code,ES:extra,SS:pila ;------------------------------------------------------------------------------ ; Procedimiento inicial ;------------------------------------------------------------------------------ START PROC mov ax,1Fh push ax inc sp push ax dec sp pop ax pop ax nop mov ax,4C00h ; int 21h ;Terminar el programa START ENDP CODE ENDS END START
  4. Muy importantes también son los ejercicios de pila. Hallar el valor de AX tras la instrucción NOP:
    ;------------------------------------------------------------------------------ ;Definicion del segmento de pila ;------------------------------------------------------------------------------ PILA SEGMENT STACK "STACK" db 40h DUP(0) PILA ENDS ;------------------------------------------------------------------------------ ;Definicion del segmento de codigo ;------------------------------------------------------------------------------ CODE SEGMENT assume cs:code,ss:pila START PROC ;Inicializamos los registros de segmento mov ax,pila mov ss,ax mov al,5 mov bx,0FA45h push bx push ax mov bp,sp mov al,[bp+3] nop mov ax,4C00h ; int 21h ;Terminar el programa START ENDP CODE ENDS END START
  5. Estos ejercicios de pilas suelen tener truco la mayoría de las veces ;) Hallar el valor de AX tras el último POP:
    ;------------------------------------------------------------------------------ ;Definicion del segmento de pila ;------------------------------------------------------------------------------ PILA SEGMENT STACK "STACK" db 40h DUP(0) PILA ENDS ;------------------------------------------------------------------------------ ;Definicion del segmento de codigo ;------------------------------------------------------------------------------ CODE SEGMENT assume cs:code,ss:pila START PROC ;Inicializamos los registros de segmento mov ax,pila mov ss,ax push 0F34h push 63h pop ax inc sp pop ax mov ax,4C00h ; int 21h ;Terminar el programa START ENDP CODE ENDS END START

www.victorsanchez2.com
victorsanchez2 en gmail.com
victorsanchez2 en jabberes.org
http://www.linkedin.com/in/victorsanchez2
victorsanchez2.asc (Huella digital: 4D05 8831 CB70 5F22 D836 73FF BA0A 5C66 BBB9 AC5A)
Tf: 659 35 74 53

Valid XHTML 1.0 Transitional