home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 2002 September
/
Chip_2002-09_cd1.bin
/
zkuste
/
delphi
/
kompon
/
d123456
/
STR_BIT.ZIP
/
16
/
SUM_ED.ASM
< prev
next >
Wrap
Assembly Source File
|
1999-11-25
|
2KB
|
54 lines
code segment
ASSUME cs:CODE,ds:NOTHING
; Function TStr_Bit.Kol_ed : word;
; Åp«µÑñπpá »«ñßτ¿ΓδóáÑΓ ¬«½¿τÑßΓó« 1 í¿Γ ó í¿Γ«ó«⌐ ßΓ᫬Ñ
; ¬«Γ«pá∩ ß«ñÑpª¿Γ KOL í¿Γ
Mis equ DWORD PTR ss:[bp+6]
;
TStr_Bit@Kol_ed PROC FAR
PUBLIC TStr_Bit@Kol_ed
push bp
mov bp,sp
push ds
;
lds si,Mis ; ÇñpÑß ßΓpπ¬Γπpδ ñá¡¡δσ "í¿Γ«óá∩ ßΓp«¬á"
mov ax,[si] ; ñ½¿¡á í¿Γ«ó«⌐ ßΓp«¬¿
lds si,[si+6] ; ÇñpÑß í¿Γ«óδσ ñá¡¡δσ ó ßΓp«¬Ñ
mov bx,ax
mov cl,3
shr ax,cl
add si,ax ; áñαÑß ¬«¡µá ¼áßß¿óá
inc ax ; ¬«½-ó« µ¿¬½«ó «íαáí«Γ¬¿
mov cl,8
and bl,7
sub cl,bl ; ¬«½-ó« í¿Γ «ßΓáΓ¬á
mov bl,[si] ; íá⌐Γ ß ¬«¡µá ßΓ᫬¿ í¿Γ
shl bl,cl ; πñá½Ñ¡¿Ñ '½¿Φ¡¿σ' í¿Γ
xor bh,bh
mov cx,ax
xor ax,ax
jmp short n_v
Povt:
mov bl,[si]
n_v: dec si
shr bl,1 ; 櫬páΘáѼ «íΩ±¼ Γáí½¿µδ ñѬ-∩
mov bl,byte ptr cs:[bx + offset kod]
adc ax,bx
loop Povt
;
pop ds ; ÉѺπ½∞ΓáΓ ó«ºópáΘáÑΓß∩ τÑpѺ Çò
pop bp
ret 4
TStr_Bit@Kol_ed endp
;
kod db 0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4 ; 0
db 1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5 ; +1
db 1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5 ; +1
db 2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6 ; +2
db 1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5 ; +1
db 2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6 ; +2
db 2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6 ; +2
db 3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7 ; +3
CODE ends
end