home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 3 / FREEWARE.BIN / towns_os / fildlg22 / romcpy.asm < prev    next >
Assembly Source File  |  1980-01-02  |  893b  |  59 lines

  1.     title    romcpy
  2. ;
  3. ;    void    *romcpy(void *dest, void *src, int count);
  4. ;
  5. ;    機能
  6. ;        FM-TOWNSのシステムROM内のデータを指定した領域に複写する
  7. ;
  8. ;    パラメタ
  9. ;        dest:    複写先領域へのポインタ
  10. ;        src:    システムROM内複写元領域へのポインタ
  11. ;        count:    複写するパイト数
  12. ;
  13. ;    復帰値
  14. ;        destを返す
  15. ;
  16.     .386p
  17. codeseg    segment    byte public use32 'CODE'
  18. codeseg    ends
  19.     
  20.     public    romcpy
  21.     
  22.     assume    cs:codeseg
  23. codeseg    segment
  24.     db    'romcpy',6
  25. romcpy    proc    near
  26.     
  27. romseg    equ    108h        ; システムROMデータ用セグメントセレクタ
  28.  
  29. dest    equ    SS:[ebp+8]    ; 第1引数
  30. src    equ    SS:[ebp+12]    ; 第2引数
  31. count    equ    SS:[ebp+16]    ; 第3引数
  32.  
  33.     enter    0, 0
  34.     cld
  35.     push    ds
  36.     push    es
  37.     push    esi
  38.     push    edi
  39.     push    ecx
  40.     mov    ecx, count
  41.     push    ds
  42.     pop    es
  43.     mov    edi, dest
  44.     push    romseg
  45.     pop    ds
  46.     mov    esi, src
  47. rep    movsb
  48.     mov    eax, dest
  49.     pop    ecx
  50.     pop    edi
  51.     pop    esi
  52.     pop    es
  53.     pop    ds
  54.     leave
  55.     ret
  56. romcpy    endp
  57. codeseg    ends
  58.     end
  59.