Vistas de página en total

martes, 3 de septiembre de 2013

LIBRERIA IO (2/3)


   Segundo fichero de la libreria IO. En el definimos las funciones de escritura, lectrua y posicionamiento dentro del fichero.
    Aunque las funciones parecen cortas, de código más corto que las macros open o close. Hay que tener en cuenta que existe el comando use y el paso de argumetos lo cual generan cada función 6 instrucciones extras que no se ven, y que se unirían a la intrucción de datos en pila por parte de la macro.
    El hecho de que estas estén en librería se debe a que al ser más usadas en el programa, se amortiza este sobrecarga con las repeticiones.





FILE.ASM
; Copyright (C) 2013  José Ángel Moneo Fernández

;    This program is free software: you can redistribute it and/or modify
;    it under the terms of the GNU General Public License as published by
;    the Free Software Foundation, either version 3 of the License, or
;   (at your option) any later version.

;    This program is distributed in the hope that it will be useful,
;    but WITHOUT ANY WARRANTY; without even the implied warranty of
;    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;    GNU General Public License for more details.

;    You should have received a copy of the GNU General Public License
;    along with this program.  If not, see <http://www.gnu.org/licenses/>.

.model compact,pascal
.code
      public _fseek
      public _rseek
      public _read
      public _write
_fseek proc near  uses bx cx dx, handle,metodo,posicion
         mov bx,handle
        mov dx,metodo
        mov ax,posicion
        mov ah,42h
        xor cx,cx
        int 21h
        ret
_fseek endp

_rseek proc near  uses bx cx dx, handle,numero,registro
     mov ax, numero
     mov bx, registro
     mul bx
     mov dx,ax
     mov ah,42h
     mov bx,handle
     xor cx,cx
     mov al,0
     int 21h
     ret
_rseek endp

_read proc near  uses  bx cx dx, handle,numero,registro
        mov bx,handle
        mov cx,numero
        mov dx,registro
        mov ah,3fh
        int 21h
        ret
_read endp
_write proc near uses  bx cx dx, handle,numero,registro
        mov bx,handle
        mov cx,numero
        mov dx,registro
        mov ah,40h
        int 21h
        ret
_write endp
                
end

No hay comentarios:

Publicar un comentario

Si tienes algún comentario, duda o sugerencia, o si quieres aportar algún código creado a partir de las librerías expuestas aquí, por favor, indícamelo.