Actualizado el 21 de Marzo del 2018 (Publicado el 12 de Febrero del 2018)
2.305 visualizaciones desde el 12 de Febrero del 2018
597,4 KB
29 paginas
Creado hace 20a (12/08/2003)
¡Error! Marcador
definido.FUNCIO
no
N
01H
03H
07H
08H
02H
04H
05H
06H
09H
0AH
0BH
0CH
Instituto ABACO
DESCRIPCION
PAR. ENTRADA
PAR. SALIDA
NOMBRE MACRO
NOTAS
L E C T U R A D E C A R A C T E R
Lee un carácter del dispositivo de entrada
stándard (con eco).
Lee un carácter del dispositivo auxiliar
(COM1).
Lee un carácter del dispositivo de entrada
stándard (sin eco).
Lee un carácter del teclado (sin eco)
AH = 1
AH = 3
AH = 7
AH = 8
AL = carácter
AL = carácter
AL = carácter
AL = carácter
READ_KBD_AND_ECHO
AUX_INPUT
DIR_CONSOLE_INPUT
READ_KBD
E S C R I T U R A D E C A R A C T E R
Envía un carácter a la salida stándard
AH = 2 // DL = carácter
Envía un carácter al dispositivo auxiliar
AH = 4 // DL = carácter
Envía un carácter a la impresora stándard
AH = 5 // DL = carácter
Ninguno
Ninguno
Ninguno
DISPLAY_CHAR CARACTER
AUX_OUTPUT CARACTER
PRINT_CHAR CARACTER
O T R A S D E P A N T A L L A / T E C L A D O
AH = 6¡Error! Marcador no
definido.
DL -> (ver descripción)
Si DL = 0FFH antes de la llamada: Fz = 0
indica que AL tiene un carácter del teclado.
Si DL <> 0FFH no hay parámetro de salida
DIR_CONSOLE_IO SWITCH
Si DL = 0FFH, devuelve el código ASCII de la
tecla pulsada y Fz = 0. Si no hay tecla
pulsada Fz = 1. Si DL <> 0FFH, éste se envía
a la salida stándard
Envía un string terminado con '$' a la consola
Lee un string del teclado
Comprueba si hay caracteres disponibles del
teclado
Borra el buffer de teclado. Si AL contiene los
valores 1,6,7,8 ó 0Ah ejecuta la system call
respectiva.
AH = 9
DS:DX = puntero a string
AH = 0AH
DS:DX = puntero a buffer
AH = 0BH
AH = 0CH
AL = 1,6,7,8 ò = 0AH
si AL <> 1,6,7,8,0AH solo borra
buffer
Ninguno
Ninguno
DISP_STRING STRING
GET_STRING LIMIT,STRING
(1)
AL = 0FFH -> hay caracteres
AL = 0 -> No hay caracteres
CHECK_KBD_STATUS
AL = 0 (solo se vació el buffer)
Si se ejecutó la s.c. 1,6,7,8 ó 0AH, los
propios de la función respectiva.
FLUSH_AND_READ_KBD SWITCH
DESCRIPCION
PAR. ENTRADA
PAR. SALIDA
NOMBRE MACRO
NOTAS
M A N E J O D E D I S C O S
Selecciona la unidad de disco actual
AH = 0EH
DL = código unidad (0=A, 1=B,
etc.)
Al = nº de unidades lógicas
SELECT_DISK DISK
Obtiene el código de la unidad actual
AH = 19H
AL -> disco actual (0=A, 1=B, etc.)
Pone la dirección del DTA
AH = 1AH
DS:DX = dirección del DTA
Ninguno
CURRENT_DISK
SET_DTA BUFFER
Obtiene la dirección del DTA
AH = 2FH
ES:BX = puntero al DTA
GET_DTA
Devuelve el nº de clusters disponibles
AH = 36H
DL = unidad de disco
( 0=defecto,1=A,2=B...)
AX = 0FFFFH si nº de disco inválido. En
caso contrario indica nº de sectores por
cluster.
BX = clusters disponibles
CX = bytes/sector
DX = nº de clusters totales
GET_DISK_SPACE DRIVE
Crea un directorio
Borra un directorio
Cambia de directorio
Devuelve el pathname absoluto del directorio
en curso de un disco
M A N E J O D E D I R E C T O R I O S
AH = 39H
DS:DX = puntero a pathname
FC = 0 -> no hubo error
FC = 1 -> se produjo error
AH = 3AH
DS:DX = puntero a pathname
FC = 0 -> no hubo error
FC = 1 -> se produjo error
AH = 3BH
DS:DX = puntero a pathname
FC = 0 -> no hubo error
FC = 1 -> se produjo error
AH = 47H
DS:SI -> puntero a buffer de 64
Bytes
DL
de
(0=defecto,1=A,2=B,...)
unidad
disco
=
Fc = 0 no hubo error
Fc = 1 hubo error; Si AX = 15 códiggo de
unidad de disco incorrecto
MAKE_DIR PATH
REM_DIR PATH
CHANGE_DIR PATH
GET_DIR DRIVE,BUFFER
(2)
(2)
(2)
¡Error! Marcador
no
definido.FUNCION
0EH
19H
1AH
2FH
36H
39H
3AH
3BH
47H
Instituto ABACO
¡Error! Marcador
no
definido.FUNCION
3CH
41H
43H
4EH
4FH
DESCRIPCION
PAR. ENTRADA
PAR. SALIDA
NOMBRE MACRO
NOTAS
M A N E J O D E F I C H E R O S
Crea un fichero y le asigna el primer handle
disponible
AH = 3CH
DS:DX = puntero a string donde
reside el pathname.
CX = atributo
-> error: AX=3 pathname
ficheros
Fc = 1
inválido,AX=4
abiertos,AX=5 Acceso denegado.
Fc = 0 -> AX = nº de handle
Demasiados
CREATE_HANDLE PATH,ATTRIB
(2)
Borra un fichero
Lee o pone los atributos de un fichero
DS:DX = puntero a string con
AH = 41H
pathname
AH = 43H // AL = 0 leer
atributos
// AL = 1 poner
atributos.
CX <- atributos (si AL = 1)
DS:DX = puntero a string
Fc = 1 -> error. AX = 2 no se encuentra
fichero. AX = 5 acceso denegado
Fc = 0 -> no hubo error
Si Fc = 1 -> error: AX=1 función inválida //
AX=2 fichero no encontrado // AX=3 path
inválido // AX=5 acceso denegado.
Si Fc = 0 -> CL = atributos
DELETE_ENTRY PATH
CHANGE_ATTR PATH,ACTION,ATTRIB
(2)
Busca la primera entrada de fichero que
coincida con las especificaciones dadas
AH = 4EH
DS:DX = puntero a string
ASCIIZ con pathname
(se
admiten metacaracteres)
CX = atributos
Si Fc = 1 -> error: AX=2 pathname inválido //
AX = 12H No se encontró el
fichero
coincidente.
Si Fc = 0 -> fichero encontrado (datos en el
DTA).
FIND_FIRST_FILE PATH,ATTRIB
(3)
Busca las siguientes entradas si la función
anterior
(4EH) encontró una entrada
coincidente (Fc = 0).
AH = 4FH
Si Fc = 1 y AX = 12H no hay más ficheros
coincidentes con el patrón especificado en la
función anterior
Si Fc = 0 -> ficheros encontrado (datos en el
DTA).
FIND_NEXT_FILE
(3)
56H
Renombra un fichero
AH = 56H
DS:DX = puntero a pathname
original
ES:DI = puntero a pathname
nuevo
FC = 0 -> no hubo error
FC = 1 -> se produjo error // AX=2 -> fichero
no encontrado // AX=5 -> Acceso denegado
// AX = 17 -> los dos pathname son de otro
drive
RENAME_FILE OLD_PATH,NEW_PATH
Instituto ABACO
¡Error! Marcador no
definido.FUNCION
DESCRIPCION
PAR. ENTRADA
PAR. SALIDA
NOMBRE MACRO
NOTAS
3DH
Abre un fichero o dispositivo existente
OPEN_HANDLE PATH,ACCESS
(4)
Cierra un fichero que se abrió con las
funciones 3DH o 3CH.
Lee de un fichero o dispositivo un nº de bytes
determinado hacia un buffer
Escribe a un fichero o dispositivo un nº de
bytes determinado desde un buffer
Mueve la posición del puntero asociado al
handle de un fichero para indicar la posición
a la que accederá la siguiente operación
AH = 3DH
DS:DX = puntero a pathname.
AL = byte de acceso
M A N E J O D E C O N T E N I D O D E F I C H E R O S
Fc = 0 -> no hubo error: AX = handle
Fc = 1 -> error:
AX = 1 función inválida // AX=2 fichero no
encontrado //AX=3 pathname inválido //AX=4
Demasiados
// AX=5
Acceso denegado // AX=12 acceso inválido.
Si Fc = 1 -> error: AX = 6 si handle inválido
Si Fc = 0 -> func. ejecutada normalmente.
Si Fc = 1 -> error: AX=5 acceso denegado //
Ax=6 handle inválido.
Si Fc = 0 -> AX = nº de bytes leídos
Si Fc = 1 -> error: AX=5 acceso denegado //
Ax=6 handle inválido.
Si Fc = 0 -> AX = nº de bytes escritos
AH = 3EH
BX = handle
AH = 3FH
BX = handle
CX = nº de bytes
DS:DX = puntero a buffer
ficheros abiertos
AH = 40H
BX = handle
CX = nº de bytes
DS:DX = puntero a buffer
AH = 42H
AL = indicador de posición:
0 -> BOF
1 -> POSICION ACTUAL
2 -> EOF
BX = handle
CX:DX = offset (ver nota 6)
Si Fc = 0:
DX:AX = Ubicación del puntero (contando
desde el inicio)
Si Fc = 1 -> error:
AX = 1 -> función inválida
AX = 6 -> handle inválido
CLOSE_HANDLE HANDLE
READ_HANDLE
HANDLE,BUFFER,BYTES
WRITE_HANDLE
HANDLE,DATA,BYTES
MOVE_PTR
HANDLE,HIGH,LOW,METHOD
(5)
(5)
(6)
M A N E J O D E F E C H A Y H O R A D E L S I S T E M A
Devuelve la fecha del sistema
AH = 2AH
Pone la fecha del sistema
AH = 2BH
CX = Año
DH = Mes
DL = Día
CX = Año (de 1980 a 2099)
DH = mes (1-12) // DL = Día(1-31) // AL = Día
de la semana (0 = Domingo)
AL = 0FFH -> Error, fecha inválida
AL = 00 -> No hubo error
GET_DATE
SET_DATE YEAR,MONTH,DAY
3EH
3FH
40H
42H
2AH
2BH
Instituto ABACO
¡Error! Marcador no
definido.FUNCION
2CH
2DH
DESCRIPCION
PAR. ENTRADA
PAR. SALIDA
NOMBRE MACRO
NOTAS
Devuelve la hora del sistema
AH = 2CH
Pone la hora del sistema
AH = 2DH
CH = Hora (0-23)
CL = Minutos (0-59)
DH = Segundos (0-59)
DL = Centésimas (0-99)
CH = Hora
CL = Minutos (0-59)
DH = Segundos (0-59)
DL = Centésimas (0-99)
AL = 0FFH -> Error, hora no
válida
AL = 00 -> No hubo error
M A N E J O D I N A M I C O D E M E M O R I A
48H
Pide memoria al sistema para asignarla al proceso en
curso.
AH = 48H
BX = nº de párrafos a pedir
49H
4AH
Libera la memoria obtenida con la función 48H
AH = 49H
ES = Dirección inicial del segmento
Cambia el tamaño de un bloque de memoria
AH = 4AH
ES = dirección del segmento del bloque a
cambiar
BX = Nuevo tamaño del bloque en párrafos
Si Fc = 0: AX contiene la
dirección del segmento del
bloque asignado.
Si Fc = 1 -> Error:
AX = 7 bloque de control de
// AX = 8
memoria mal.
memoria
(BX
indica el nº máximo de
párrafos disponibles.
insuficiente
Si Fc = 0 -> No hubo error
Si Fc = 1 -> Error:
AX=7 Bloque malo // AX=9
Valor en ES inválido
Si Fc = 0 -> No hubo error
Si Fc = 1 -> Error:
AX = 7 Bloque mal // AX = 9
Valor en ES inválido // AX = 8
No hay suficiente memoria
Instituto ABACO
GET_TIME
SET_TIME
HOUR,MINUTES,SECON
DS,HUNDRETHS
ALLOCATE_MEMORY
BYTES
FREE_MEMORY
SEG_ADDR
LIB_MEM_COM
LAST_BYTE,STACK_SIZE
Y
LIB_MEM_EXE LAST_SEGM
(7)
D
Comentarios de: Manual de Ensamblador 997 (0)
No hay comentarios