Sei sulla pagina 1di 3

LABORATORIO DE TURBO ASSEMBLER. PROCESADORES DIGITALES PRUEBA DE LAS INTERRUPCIONES BASICAS INT 10H BIOS Y 21H 1.

Interrupciones de Recorrido de pantalla, posicionamiento de cursor y salida a pantalla.


DATOS SEGMENT CADENAB CADENAC CADENAD CADENAE DATOS ENDS CODIGO SEGMENT ASSUME CS:CODIGO, DS:DATOS, SS:PILA INIC: MOV AX,DATOS ; asigna a AX el desplazamiento DATOS MOV DS,AX ; asigna al registro DS la direccin inicial ;interrupcin de recorrido de pantalla MOV AX,0600h ; funcin 06, valor de al=00 recorrido total MOV BH,07h ; atributo de color MOV CX,0000h ; posicin inicial MOV DX,184fh ; posicin final rengln 24, columna 79 INT 10h ;interrupcin de posicin de cursor MOV AH,02H ; funcin 02h MOV BH,00 ; pagina activa n0 MOV DX,0310H ; renglon 3, columna 16 INT 10H ; interrupcin BIOS ;interrupcin de salida a pantalla LEA DX,CADENAB MOV AH,09H INT 21H ;interrupcin de posicin de cursor MOV AH,02H ; funcin 02h MOV BH,00 ; pagina activa n0 MOV DX,0606H ; renglon 6, columna 6 DB DB DB DB "UNIVERSIDAD NACIONAL DE TRUJILLO","$" "INGENIERIA DE SISTEMAS: ", 10,13 "PRUEBA DE LA COMPILACION EN TASSEMBLER", 10,13 "SUB SEDE VALLE JEQUETEPEQUE","$"

INT 10H

; interrupcin BIOS

; Interrupcin de salida a pantalla LEA DX,CADENAC MOV AH,09H INT 21H ; Interrupcin de salida al sistema operativo MOV AX,4C00h ; INT 21h CODIGO ENDS PILA SEGMENT STACK DB 160 DUP(?); separacin de 160 bytes para uso de pila PILA ENDS END INIC . .

2. Prueba de bucles de control utilizando LOOP y el registro CX.


DATOS SEGMENT CADENAB CADENAC CADENAD CADENAE POS DATOS ENDS CODIGO SEGMENT ASSUME CS:CODIGO, DS:DATOS, SS:PILA INIC: MOV AX,DATOS ; asigna a AX el desplazamiento DATOS MOV DS,AX ; asigna al registro DS la direccin inicial ;interrupcin de recorrido de pantalla MOV AX,0600h ; funcin 06, valor de al=00 recorrido total MOV BH,07h ; atributo de color MOV CX,0000h ; posicin inicial DB DB DB DB "UNIVERSIDAD NACIONAL DE TRUJILLO",10,13 " INGENIERIA DE SISTEMAS: ","$" "PRUEBA DE LA COMPILACION EN TASSEMBLER","$" "SUB SEDE VALLE JEQUETEPEQUE","$"

DW 0800H

MOV DX,184fh ; posicin final rengln 24, columna 79 INT 10h ;interrupcin de posicin de cursor MOV AH,02H ; funcin 02h MOV BH,00 ; pagina activa n0 MOV DX,0310H ; renglon 3, columna 16 INT 10H ; interrupcin BIOS ;interrupcin de salida a pantalla LEA DX,CADENAB MOV AH,09H INT 21H MOV CX,04H BUCL: MOV MOV INT ADD MOV MOV AH,02H BH,00 DX,POS 10H DX,0206H POS,DX

CADENAB CADENAC CADENAD CADENAE

DB DB DB DB

"UNIVERSIDAD NACIONAL DE TRUJILLO","$" "INGRESE UNA CADENA DE 20 CARACTERES: ","$" "LA CADENA INGRESADA ES: ","$" "LA CADENA INVERTIDA ES: ","$"

CADENA LABEL BYTE TOTAL DB 21 ACTUAL DB ? CADE DB 21 DUP(?) DOLAR DB "$" CADINV DB 21 DUP(?),$ DATOS ENDS CODIGO SEGMENT ASSUME CS:CODIGO, DS:DATOS, SS:PILA INIC: MOV AX,DATOS ; asigna a AX el desplazamiento DATOS MOV DS,AX ; asigna al DS la direccin inicial CALL RECORRE MOV DX,0310H CALL POSICION LEA DX,CADENAB CALL MUESTRA MOV DX,0504H CALL POSICION LEA DX,CADENAC CALL MUESTRA CALL INGRESO MOV DX,0704H CALL POSICION LEA DX,CADENAD CALL MUESTRA LEA DX,CADE CALL MUESTRA ;&&&&&&&&&&&&&&&&&&&&&&&&&&& ;interrupcin de salida al sistema operativo MOV AX,4C00h ;

;interrupcin de salida a pantalla LEA DX,CADENAD MOV AH,09H INT 21H LOOP BUCL MOV AX,4C00h ; INT 21h CODIGO ENDS PILA SEGMENT STACK DB 160 DUP(?); separacin de 160 bytes para uso de pila PILA ENDS END INIC .

3. Interrupciones de Ingreso de caracteres a memoria a travs de LABEL BYTE.


DATOS SEGMENT

INT 21h RECORRE PROC NEAR ;interrupcin de recorrido de pantalla MOV AX,0600h MOV BH,07h ; atributo de color MOV CX,0000h ; posicin inicial MOV DX,184fh INT 10h RET RECORRE ENDP POSICION PROC NEAR ;posicion de cursor, MOV AH,02H MOV BH,00 INT 10H RET POSICION ENDP falta el valor de DX

(nota: solo agregue al programa anterior en el rengln marcado con ;&&&&&&&&&&&&&&&&&&&&&) ;procedimiento que invierte la cadena hacia CADINV MOV DI,20 MOV SI,0 MOV CX,0 MOV CL,ACTUAL SUB CX,1 MOV DI,CX ADD CX,1 INVI: MOV BX,OFFSET CADE MOV AL,[BX+DI] MOV BX,OFFSET CADINV MOV [BX+SI],AL INC SI DEC DI LOOP INVI MOV DX,0B04H CALL POSICION LEA DX,CADENAE CALL MUESTRA LEA DX,CADINV CALL MUESTRA

MUESTRA PROC NEAR ;interrupcin de muestra, MOV AH,09H INT 21H RET MUESTRA ENDP

falta el valor de DX

INGRESO PROC NEAR ;interrupcin de ingreso de cadena a buffer LABEL BYTE MOV AH,0AH LEA DX,CADENA INT 21H RET INGRESO ENDP CODIGO ENDS PILA SEGMENT STACK DB 160 DUP(?); separacin de 160 bytes para uso de pila PILA ENDS END INIC

4. Ejemplo final con accesos indirectos a DATOS para


invertir cadena de caracteres directamente en memoria

Potrebbero piacerti anche