PDF de programación - Manual de Ensamblador 997

Imágen de pdf Manual de Ensamblador 997

Manual de Ensamblador 997gráfica de visualizaciones

Actualizado el 21 de Marzo del 2018 (Publicado el 12 de Febrero del 2018)
1.150 visualizaciones desde el 12 de Febrero del 2018
597,4 KB
29 paginas
Creado hace 16a (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
  • Links de descarga
http://lwp-l.com/pdf8730

Comentarios de: Manual de Ensamblador 997 (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad