mirror of https://git.ia64.cc/perso/cos2000v1.git
Nicolas Hordé
17 years ago
2 changed files with 196 additions and 0 deletions
@ -0,0 +1,108 @@
|
||||
net segment |
||||
|
||||
org 0100h |
||||
assume cs:net,ds:net |
||||
|
||||
start: |
||||
jmp deb |
||||
taille dw 0 |
||||
signe db 'rip' |
||||
signe2 db 64 dup (0) |
||||
p1 db '@' |
||||
p2 db '@' |
||||
min db 4 |
||||
deb: |
||||
mov BL,DS:[0080h] |
||||
xor BH,BH |
||||
or BX,BX |
||||
mov byte ptr [0081h+BX],00h |
||||
mov AX,3D02h |
||||
mov DX,0082H |
||||
int 21h |
||||
mov bx,ax |
||||
mov ah,3fh |
||||
mov cx,0ffffh |
||||
mov dx,offset data |
||||
int 21h |
||||
mov taille,ax |
||||
mov ah,3eh |
||||
int 21h |
||||
mov si,82h |
||||
mov di,offset signe2 |
||||
mov cx,64 |
||||
rep movsb |
||||
mov di,offset signe2 |
||||
mov cx,64 |
||||
mov al,2eh |
||||
repne scasb |
||||
push di |
||||
mov si,di |
||||
mov di,offset data |
||||
add di,taille |
||||
mov cx,3 |
||||
rep movsb |
||||
mov ax,di |
||||
pop di |
||||
mov cx,3 |
||||
mov si,offset signe |
||||
rep movsb |
||||
mov di,ax |
||||
mov cx,taille |
||||
mov si,offset data |
||||
mov dx,1 |
||||
boucle: |
||||
lodsb |
||||
cmp al,[si] |
||||
jne pas |
||||
inc dl |
||||
loop boucle |
||||
jmp fin |
||||
pas: |
||||
cmp dl,min |
||||
jb suite |
||||
cmp dl,1 |
||||
jne go |
||||
suite: |
||||
mov bx,cx |
||||
mov cx,dx |
||||
rep stosb |
||||
mov cx,bx |
||||
mov dl,1 |
||||
loop boucle |
||||
jmp fin |
||||
go: |
||||
mov ah,al |
||||
mov al,p1 |
||||
stosb |
||||
mov al,dl |
||||
stosb |
||||
mov al,ah |
||||
stosb |
||||
mov al,p2 |
||||
stosb |
||||
mov dl,1 |
||||
loop boucle |
||||
fin: |
||||
mov ah,3ch |
||||
mov cx,0 |
||||
mov dx,offset signe2 |
||||
int 21h |
||||
mov bx,ax |
||||
mov ah,40h |
||||
mov cx,di |
||||
sub cx,offset data |
||||
sub cx,taille |
||||
mov dx,offset data |
||||
add dx,taille |
||||
int 21h |
||||
mov ah,3eh |
||||
int 21h |
||||
mov ah,41h |
||||
mov dx,82h |
||||
int 21h |
||||
ret |
||||
data db 0 |
||||
net ends |
||||
end start |
||||
|
||||
net |
@ -0,0 +1,88 @@
|
||||
net segment |
||||
|
||||
org 0100h |
||||
assume cs:net,ds:net |
||||
|
||||
start: |
||||
jmp deb |
||||
taille dw 0 |
||||
signe2 db 64 dup (0) |
||||
p1 db '@' |
||||
p2 db '@' |
||||
deb: |
||||
mov BL,DS:[0080h] |
||||
xor BH,BH |
||||
or BX,BX |
||||
mov byte ptr [0081h+BX],00h |
||||
mov AX,3D02h |
||||
mov DX,0082H |
||||
int 21h |
||||
mov bx,ax |
||||
mov ah,3fh |
||||
mov cx,0ffffh |
||||
mov dx,offset data |
||||
int 21h |
||||
mov taille,ax |
||||
mov ah,3eh |
||||
int 21h |
||||
mov si,82h |
||||
mov di,offset signe2 |
||||
mov cx,64 |
||||
rep movsb |
||||
mov di,offset signe2 |
||||
mov cx,64 |
||||
mov al,2eh |
||||
repne scasb |
||||
mov si,offset data |
||||
mov cx,3 |
||||
rep movsb |
||||
mov cx,taille |
||||
mov di,offset data |
||||
add di,taille |
||||
mov dx,1 |
||||
boucle: |
||||
lodsb |
||||
cmp al,p1 |
||||
je pas |
||||
suite: |
||||
stosb |
||||
loop boucle |
||||
jmp fin |
||||
pas: |
||||
mov al,p2 |
||||
cmp [si+2],al |
||||
jne suite |
||||
lodsb |
||||
mov bx,cx |
||||
mov cl,al |
||||
xor ch,ch |
||||
lodsb |
||||
rep stosb |
||||
mov cx,bx |
||||
sub cx,3 |
||||
inc si |
||||
loop boucle |
||||
fin: |
||||
mov ah,3ch |
||||
mov cx,0 |
||||
mov dx,offset signe2 |
||||
int 21h |
||||
mov bx,ax |
||||
mov ah,40h |
||||
mov cx,di |
||||
sub cx,offset data |
||||
sub cx,taille |
||||
mov dx,offset data |
||||
add dx,taille |
||||
int 21h |
||||
mov ah,3eh |
||||
int 21h |
||||
mov ah,41h |
||||
mov dx,82h |
||||
int 21h |
||||
ret |
||||
data db 0 |
||||
net ends |
||||
end start |
||||
|
||||
net |
Loading…
Reference in new issue