home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 2002 September
/
Chip_2002-09_cd1.bin
/
zkuste
/
delphi
/
kompon
/
d123456
/
STR_BIT.ZIP
/
16
/
LINPR
/
BYBOR.ASM
next >
Wrap
Assembly Source File
|
1999-11-14
|
3KB
|
93 lines
code segment
ASSUME cs:CODE,ds:NOTHING
;
; Procedure Bybor(mis,mrez : pointer; Nbis,Hag,kol : word);
; Åp«µÑñπpá óδñѽ∩ÑΓ KOL í¿Γ ¿º ¼áßß¿óá ß áñpÑß«¼ MIS ß í¿Γá NBIS
; ß Φáú«¼ HAG ¿ ºá»¿ßδóáÑΓ ó ¼áßß¿ó MREZ
;
Mis equ DWORD PTR ss:[bp+16]
Mrez equ DWORD PTR ss:[bp+12]
Nbis equ WORD PTR ss:[bp+10]
Hag equ WORD PTR ss:[bp+8]
Kol equ WORD PTR ss:[bp+6]
;
Bybor proc Far
PUBLIC Bybor
push bp
mov bp,sp
push ds
lds si,Mis ; Load 32 bit ptr
les di,Mrez ; Load 32 bit ptr
cld
mov dx,Kol
mov ax,Nbis
call Ostat
add si,ax
shr cl,1 ; Shift w/zeros fill
mov ch,cl ; Jump if zero
mov ax,Hag
call Ostat
shr cl,1 ; Shift w/zeros fill
jz GRAN ; Jump if zero
mov bx,Hag ; ÿáú ¡Ñ ¬páΓÑ¡ 8 í¿Γ
nc_ne8: mov cl,ch
mov al,[si] ; HáτὫ µ¿¬½á
shr al,cl
and al,01h
stosb
mov al,ch
xor ah,ah
add ax,bx
shr ax,1
rcr ch,1
shr ax,1
rcr ch,1
shr ax,1
rcr ch,1
shr ch,1
shr ch,1
shr ch,1
shr ch,1
add si,ax
shr ch,1
dec dx
jnz nc_ne8
jmp short Finis
GRAN:
mov bx,ax ; ÿáú ¬páΓÑ¡ 8 í¿Γ
mov ah,01h
nc_8: mov cl,ch
mov al,[si] ; HáτὫ µ¿¬½á
shr al,cl
and al,ah
stosb
add si,bx
dec dx
jnz nc_8
Finis:
pop ds
pop bp
ret 14 ; Return far
Bybor endp
; SUBROUTINE
Ostat proc near
shr ax,1 ; éσ«ñ : AX - º¡áτÑ¡¿Ñ
rcr cl,1 ; éδσ«ñ: AX - º¡áτÑ¡¿Ñ/8
shr ax,1 ; »«ß½Ñ ¬«¼á¡ñδ SHR cl,1
rcr cl,1 ; ó pÑú¿ßΓpÑ cl - «ßΓáΓ«¬
shr ax,1 ; «Γ ñѽѡ¿∩
rcr cl,1
shr cl,1
shr cl,1
shr cl,1
shr cl,1
ret
Ostat endp
CODE ends
end