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