Documentos de Académico
Documentos de Profesional
Documentos de Cultura
DIRECCIONAMIENTO EN ASSEMBLER.
EJECUCIÓN POR INTERRUPCIONES
César Arellano Salazar.
DE COMPUTADORAS.
INGENIERIA DE SISTEMAS - V CICLO. SESIÓN Nº04
DIRECCIONAMIENTO DE ASSEMBLER
PROGRAMA DE ASSEMBLER
DATOS SEGMENT
Área de datos,
< DATOS DEL PROGRAMA>
DATOS ENDS colocados por
etiquetas
CODIGO SEGMENT
ASSUME CS:CODIGO, DS:DATOS, SS:PILA
Directiva ASSUME,
INIC:
MOV AX,DATOS ; asigna a AX el desplazamiento DATOS establece los segmentos
MOV DS,AX ; asigna al registro DS la dirección inicial de programa en
< CODIGO DEL PROGRAMA> memoria.
MOV AX,4C00h ;interrupción de salida al sist. operativo
INT 21h DATOS, CODIGO , PILA
CODIGO ENDS son etiquetas que
asumen un valor de
PILA SEGMENT STACK desplazamiento o
DB 160 DUP(?); separación de 160 bytes para uso de pila
PILA ENDS dirección.
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 dirección inicial Directiva DUP, establece
< CODIGO DEL PROGRAMA> la reserva de bytes para
MOV AX,4C00h ;interrupción de salida al sist. operativo uso de pila LIFO, para
INT 21h
CODIGO ENDS aplicar y desapilar
mediante PUSH y POP
PILA SEGMENT STACK
DB 160 DUP(?) ; separación 160 bytes para uso de pila
PILA ENDS
SEGMENTO
DESPLAZAMIENTOS EQUIVALENTES: DE DATOS DSx10h
[ DATO2 ] = [ DATO1 + 4 ]
[ DATO3 ] = [ DATO1 + 5 ]
[ DATO3 ] = [ DATO2 + 1 ] SESIÓN Nº04
DIRECCIONAMIENTO DE ASSEMBLER
DEFINE BYTES, WORDS Y DOBLEWORDS
DATOS SEGMENT
DATO1 DB 24, 8, 3Eh, 0F3h “M”
[ DCADE+4] “ ”
DATO2 DB 45
DATO3 DB ? “A”
DCADE DB “HOLA M”, “U” ,‘N’,‘D’, ‘O’
“L”
[ DCADE+1] “O”
[ DCADE ] “H”
DATOS ENDS
[ DATO3 ] ? ?
.
.
.
DESPLAZAMIENTOS EQUIVALENTES: DSx10h
[ DCADE ] = [ DATO2 + 1 ]
[DCADE ] = [ DATO1 + 6 ]
SESIÓN Nº04
DIRECCIONAMIENTO DE ASSEMBLER
DEFINE BYTES, WORDS Y DOBLEWORDS
DATOS SEGMENT
[ OPERA ] 7 8
DATO1 DB 24, 8, 3Eh, 0F3h
? ?
DATO2 DB 45
[ PALAB ] ? ?
DATO3 DB ?
0 0
DCADE DB “HOLA M”, “U” ,‘N’,‘D’, ‘O’
0 5
DATWR DW 234Eh, 5 [DATWR+1] 2 3
PALAB DW ? [ DATWR ] 4 E
OPERA DD 45678h [DCADE +9] “O”
DATOS ENDS .
.
.
DESPLAZAMIENTOS EQUIVALENTES: DSx10h
[ DATWR ] = [ DCADE + 10 ]
[PALAB] = [ DATWR + 4 ]
SESIÓN Nº04
DIRECCIONAMIENTO DE ASSEMBLER
DEFINE BYTES, WORDS Y DOBLEWORDS
DATOS SEGMENT [ OPERA+4]
PALAB DW ? 0 0
0 4
OPERA DD 45678h
5 6
…….
[ OPERA ] 7 8 word
……… ? ? accedido
que escribe
LEA BX, DATWR [ PALAB ] ? ? al AX
MOV SI,2 0 0 DS:[BX+SI]
MOV AX, [BX+SI] [DATWR+2] 0 5
………… [DATWR+1] 2.3
.
.
WORD ACCEDIDO EN DS:[BX+SI] DSx10h
DS: [DATWR + 2] = 0005 h
NUEVO VALOR DE AX = 0005 h
SESIÓN Nº04
DIRECCIONAMIENTO DE ASSEMBLER
DIRECCIONAMIENTO DIRECTO
DATO3 DB ? CX = 45EA
[ OPERA ] 7 8 Escribe en
……
? ? PALAB
PALAB DW ?
[ PALAB ] ? ?
DS:[PALAB]
……… 0 0
MOV PALAB, CX
. DL = 06
MOV DATO3, DL .
. Escribe en
MOV BH, DATO3 DATO3
………… [DATO3] ? ?
DS:[DATO3]
CX = 45EA h BX = 562B h DX = 9006 h .
.
.
POSICIONES ACCEDIDAS DSx10h
DS:[PALAB] = Word null será sobre-escrita
DS:[DATO3] = byte null será sobre-escrita
Valor escrito en BX = 062B h SESIÓN Nº04
DIRECCIONAMIENTO DE ASSEMBLER
DIRECCIONAMIENTO INDEXADO
DCADE DB “HOLA M”, “U” ,‘N’,‘D’, ‘O’
…… byte
“M” accedido
RESER DB 10 DUP(?) ; reserva 10 bytes que escribe
[ DCADE+4] “ ”
……. AL
“A” DS:[DCADE+2]
……… “L”
MOV SI, 2 [ DCADE+1] “O”
MOV AL , DCADE [SI] [ DCADE ] “H”
MOV RESER [DI] , AL [ DATO3 ] ? ?
.
………… .
.
BYTE ACCEDIDO EN DS:[DCADE+SI] DSx10h
DS: [DCADE+2] = “L” AX=4679h
ASCCI DE LA “L” =76 en hexadecimal=4C h
NUEVO VALOR DE AX = 464C h SESIÓN Nº04
INTERRUPCIONES EN ASSEMBLER
SESIÓN Nº04
INTERRUPCIONES EN ASSEMBLER
MENSAJE DB ‘UNIVERSIDAD NACIONAL’, ‘$’ ETIQUETA LABEL BYTE ;inicio de la lista de parámetros
............ MAXIMO DB 20
MOV AH,09h ; Petición para desplegar LONGIT DB ?
LEA DX,MENSAJE ; Carga el desplaz del mensaje NOMBRE DB 20 DUP(?)
INT 21h ; Llama al DOS ............
MOV AH,0Ah ; Petición de la función de entrada
SESIÓN Nº04
INTERRUPCIONES EN ASSEMBLER
MOV CX, 22
LEA BX, CADENA
MOV AH, 02h
LAZ: MOV DL, [BX+DI]
INT 21h
INC DI SESIÓN Nº04
LOOP LAZ
INTERRUPCIONES EN ASSEMBLER
SESIÓN Nº04