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
czy_zw_na_1:
mov dx,czy_zw
mov dx,1
mov czy_zw,dx
ret
nastepne:
mov cx,[bx]
mov bx,poprzedni
sub bx,2
mov poprzedni,bx
ret
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_wysw
xor dh,dh
mov dl,[bx]
int 21h
add bx,2
jmp wyswietl
koniec_wysw:
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
jesli_jedynka_na_poczatku:
mov cx,'.'
mov bx, offset tab
cmp [bx],cx
jz idziemy
call na_koniec
call inkrementuj
jmp skonczylo
idziemy:
mov ax, zmienna
mov cx,2
div cx
cmp dx,0
jnz do_nieparzystej
parzysta:
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
mov cx,[bx]
mov bx,nastepny
mov [bx],cx
sub bx,2
cmp bx,poprzedni
jnz nic
call czy_zw_na_1
nic:
add bx,4
mov dx,'.'
cmp [bx],dx
jz skonczylo
mov nastepny,bx
mov cx,[bx]
mov bx,poprzedni
sub bx,2
mov poprzedni,bx
jmp porownuj
skonczylo:
jmp koniec
do_nieparzystej:
jmp nieparzysta
druga_wieksza:
mov dx,czy_zw
cmp dx,0
jnz przypisz
mov bx,nastepny
sub bx,2
cmp bx,poprzedni
jnz ink
call inkrementuj
mov bx,nastepny
mov ax,'0'
mov [bx],ax
call czy_zw_na_1
jmp idziemy
ink:
call inkrementuj
jmp idziemy
przypisz:
mov cx,[bx]
mov bx,nastepny
mov [bx],cx
add bx,2
mov nastepny,bx
mov dx,'.'
cmp [bx],dx
jz skonczylo
mov cx,[bx]
mov bx,poprzedni
sub bx,2
mov poprzedni,bx
jmp porownuj
nieparzysta:
mov cx,ax
mov bx, offset tab
do_sr:
add bx,2
loop do_sr
mov poprzedni,bx
add bx,2
mov srodkowy,bx
add bx,2
mov nastepny,bx
mov cx,'.'
cmp nastepny,cx
jz koniec
mov cx,[bx]
mov bx,poprzedni
powtarzaj:
cmp [bx],cx
jb znowu_druga
mov cx,[bx]
mov bx,nastepny
mov [bx],cx
add bx,2
mov dx,'.'
cmp [bx],dx
jz koniec
mov nastepny,bx
mov cx,[bx]
mov bx,poprzedni
sub bx,2
mov poprzedni,bx
jmp powtarzaj
startowe:
mov bx,srodkowy
sub bx,2
mov poprzedni,bx
add bx,4
mov nastepny,bx
mov cx,[bx]
mov bx,poprzedni
jmp powtarzaj
znowu_druga:
mov dx,czy_zw
cmp dx,0
jnz przypiszsz
mov bx,nastepny
sub bx,2
call inkrementuj
call czy_zw_na_1
jmp startowe
przypiszsz:
mov cx,[bx]
mov bx,nastepny
mov [bx],cx
add bx,2
mov nastepny,bx
mov dx,'.'
cmp [bx],dx
jz koniec
mov cx,[bx]
mov bx,poprzedni
sub bx,2
mov poprzedni,bx
jmp powtarzaj
koniec:
call do_wyswietlenia
mov ah,01
int 21h
mov ah,4ch
int 21h
end start
Revise this Paste
Children: 13070