Welcome, guest! Login / Register - Why register?
Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so just use oauth login instead. :)

Paste

Pasted by a ( 17 years ago )
.model tiny
.stack 512
.code

ent db 13,10,'$'
tab dw 100 dup(?)
zmienna dw 0
poprzedni dw 0
nastepny dw 0
srodkowy dw 0
czy_zw dw 0


na_koniec:
mov bx, offset tab
skocz_koniec:
add bx,2
mov cx,'.'
cmp [bx],cx
jnz skocz_koniec
sub bx,2
ret

inkrementuj:
mov cx,'9'
cmp [bx],cx
jz dziewiec
mov cx,1
add [bx],cx
jmp dalej
dziewiec:
mov cx,'0'
mov [bx],cx
sub bx,2
jmp inkrementuj
dalej:
ret


start: ;10
mov ax, @data
mov ds,ax

mov bx, offset tab
mov cx,'.'
mov [bx],cx
add bx,2
petla:
mov ah,01h
int 21h
cmp al,0Dh
jz pomiedzy
xor ah,ah
mov [bx],ax
add bx,2
inc zmienna
jmp petla

pomiedzy:
mov ah,09h
mov dx, offset ent
int 21h
mov cx,'.'
mov [bx],cx
mov bx, offset tab
cmp [bx],cx
jz bez_zmian
mov ax,zmienna
add ax,1
mov zmienna,ax

bez_zmian:
call na_koniec
call inkrementuj


idziemy:
mov ax, zmienna
mov cx,2
div cx
cmp dx,0
jnz nieparzysta
mov cx,ax
mov bx, offset tab
idz_do_sr:
add bx,2
loop idz_do_sr
mov poprzedni,bx
add bx,2
mov nastepny,bx
mov cx,[bx]
mov bx,poprzedni
porownuj:
cmp [bx],cx
jb druga_wieksza
cmp [bx],cx
je nic
mov dx,czy_zw
add dx,1
mov czy_zw,dx
nic:
mov cx,[bx]
mov bx,nastepny
mov [bx],cx
add bx,2
mov dx,'.'
cmp [bx],dx
jz do_wyswietlenia
mov nastepny,bx
mov cx,[bx]
mov bx,poprzedni
sub bx,2
mov poprzedni,bx
jmp porownuj
druga_wieksza:
mov dx,czy_zw
cmp dx,0
jne tylko_zrownaj
mov bx,nastepny
sub bx,2
call inkrementuj
mov bx,poprzedni
mov cx,[bx]
mov bx,nastepny
mov [bx],cx
jmp idziemy
tylko_zrownaj:
mov cx,[bx]
mov bx,nastepny
mov [bx],cx
jmp idziemy

;nie działa w przypadku gdy wchodzimy do tab[0] - poprawic
w pozostałych przypadkach dla parzystej liczby cyfr działa

nieparzysta:



do_wyswietlenia:
mov ah,02h
mov bx, offset tab
mov cx,'.'
cmp [bx],cx
jz dodaj
xor dh,dh
mov dl,'1'
int 21h

dodaj:
add bx,2

wyswietl:
mov cx,'.'
cmp [bx],cx
jz koniec
xor dh,dh
mov dl,[bx]
int 21h
add bx,2
jmp wyswietl


koniec:
mov ah,01
int 21h
mov ah,4ch
int 21h
end start

 

Revise this Paste

Children: 13000
Your Name: Code Language: