home *** CD-ROM | disk | FTP | other *** search
/ Chip 2002 September / Chip_2002-09_cd1.bin / zkuste / delphi / kompon / d123456 / STR_BIT.ZIP / 16 / PSP_8.ASM < prev    next >
Assembly Source File  |  1999-11-25  |  2KB  |  69 lines

  1. CODE      SEGMENT
  2.           ASSUME cs:CODE,ds:NOTHING
  3. ;
  4. adrm      equ     DWORD PTR ss:[bp+8]
  5. Kol       equ     WORD PTR ss:[bp+6]
  6.  
  7. ; Procedure GenPsp_8 ( m: pointer , Kol : word);
  8. ; Åp«µÑñπpá úÑ¡Ñp¿pπÑΓ KOL íá⌐Γ ÅæÅ ó ¼áßß¿ó ß áñpÑß«¼ î
  9. ; ìáτá½∞¡á∩ πßΓá¡«ó¬á pÑú¿ßΓpá ¿ ó¿ñ »«½¿¡«¼á ºáñá±Γß∩
  10. ; »p«µÑñπp«⌐ InitPsp
  11. ; Å«óΓ«p¡δ⌐ ó맮ó »p«µÑñπpδ »p«ñ«½ªáÑΓ »p«µÑßß úÑ¡Ñpᵿ¿
  12. ; ÅæÅ ß »pÑpóá¡¡«ú« º¡áτÑ¡¿∩
  13. ;
  14. GenPsp_8  PROC    FAR
  15.           PUBLIC  GenPsp_8
  16.           push    bp
  17.           mov     bp,sp          ;Å«½πτ¿Γ∞ íáºπ ßΓѬá
  18.           les     di,adrm        ;Å«½πτ¿Γ∞ áñpÑß pѺπ½∞ΓáΓá
  19.           mov     dx,Kol         ;諽¿τÑßΓó« íá⌐Γ
  20. Ustan:    mov     al,0FFh
  21. Polin:    mov     bl,00001100b
  22. Cikl_mas: mov     cx,8
  23. Cikl_bit: test    bl,al        ;éδí«p «Γó«ñ«ó »«½¿¡«¼á
  24.           jp      Sum_0
  25.           stc
  26. Sum_0:    rcr     al,1         ; æúÑ¡Ñp¿p«óá¡ ¡«óδ⌐ í¿Γ »ß»
  27.           loop    Cikl_bit
  28.           stosb                ; éδó«ñ ßΣ«p¼¿p«óá¡¡«ú« íá⌐Γá
  29.           dec     dx
  30.           jnz     Cikl_mas
  31.           mov     byte ptr cs:[offset Ustan+1],al
  32.           pop     bp
  33.           ret     6
  34. GenPsp_8  ENDP
  35. ;
  36. Pol       equ     BYTE PTR ss:[bp+8]
  37. Ust       equ     BYTE PTR ss:[bp+6]
  38. ;
  39. ; çáñá±Γß∩ ¡áτá½∞¡á∩ πßΓá¡«ó¬á pÑú¿ßΓpá Ust ¿ ó¿ñ »«½¿¡«¼á Pol
  40. ; ñ½∩ »p«µÑñπpδ GenPsp
  41. ;  InPsp_8 ( Pol,Ust : byte);
  42. ;
  43. InPsp_8 PROC    FAR
  44.           PUBLIC  InPsp_8
  45.           push    bp
  46.           mov     bp,sp          ;Å«½πτ¿Γ∞ íáºπ ßΓѬá
  47.           mov     ah,pol
  48.           mov     cx,8
  49. p_pol:    shr     ah,1      ; Å«½πτ¿Γ∞ »«½¿¡«¼ ó »α∩¼«⌐
  50.           rcl     al,1      ; »«ß½Ññ«óáΓѽ∞¡«ßΓ¿
  51.           loop    p_pol
  52.           mov     byte ptr cs:[offset Polin+1],al
  53.           stc
  54. op_st:    rcr     al,1
  55.           jnc     op_st
  56.           mov     cl,8
  57.           mov     bl,Ust
  58. kor_nu:   test    bl,al
  59.           jp      Sum_v
  60.           stc
  61. Sum_v:    rcl     bl,1
  62.           loop    kor_nu
  63.           mov     byte ptr cs:[offset Ustan+1],bl
  64.           pop     bp
  65.           ret     4
  66. InPsp_8   ENDP
  67. CODE      ENDS
  68.           END
  69.