QCMP.ASM
上传用户:sunrenlu
上传日期:2022-06-13
资源大小:1419k
文件大小:1k
源码类别:

操作系统开发

开发平台:

DOS

  1. PAGE    66,132
  2. ;
  3. ;
  4. ;
  5. ;
  6. ;
  7. ;
  8. ;
  9. ;
  10. ;  qcmp.asm
  11. ;
  12. ;  Efficient compare operation.  Does not handle segment wraps!!!!
  13. ;  Returns 0 if compare is identical
  14. ;
  15. ;
  16. ;  Usage :
  17. ;           qcmp( soff, sseg, doff, dseg, count )
  18. ;     unsigned int soff; /* source offset */
  19. ;     unsigned int sseg; /* source segment */
  20. ;     unsigned int doff; /* destination offset */
  21. ;     unsigned int dseg; /* destination segment */
  22. ;     unsigned int count; /* byte count */
  23. ;
  24. ;  (c) 1991 Erick Engelke
  25. ;
  26. ;  version
  27. ;
  28. ;    0.0    31-Oct-1990   E. P. Engelke  - brief version
  29. ;
  30. ;
  31. include masmdefs.hsm
  32. include model.hsm
  33. codedef QCMP
  34. datadef
  35. cstart  QCMP
  36. cpublic qcmp
  37.         mov     DX, DS
  38.         mov     BX, ES                   ;save segment registers
  39.         lds     SI, +@AB+0[BP]
  40.         les     DI, +@AB+4[BP]
  41.         mov     CX, +@AB+8[BP]          ;byte count
  42.         cld
  43.         repe    cmpsb
  44.         mov     AX, CX
  45.         mov     ES, BX
  46.         mov     DS, DX
  47. creturn qcmp
  48. cend    QCMP
  49.         end