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 heban ( 16 years ago )
.model tiny
.stack 512
.data
tekst db "Wprowadz 10 liczb: ",13,10,"$"
x dw 0
y dw 0
entere db 13,10,"$" 
tekst2 db "Wynik: ",13,10,"$"
.code

start:
mov ax,@data       ; info gdzie znajduje sie segment danych
mov ds,ax

mov ah,9
mov dx,offset tekst           
int 21h

mov cl,5

Petla:
 ;nieparzyste
 mov ah,01h                     
 int 21h
 sub ax,130h
 cmp x,'0'
 jnz omin
 mov x,ax                   
 omin:
 add x,ax
 
 mov ah,9
 mov dx,offset entere         
 int 21h
 xor ax,ax
 
 ;parzyste
 mov ah,01h                     
 int 21h
 sub ax,130h
 cmp y,'0'
 jnz omin2
 mov y,ax                  
 omin2:
 add y,ax
 
 mov ah,9
 mov dx,offset entere          
 int 21h
 xor ax,ax
loop Petla

mov ax,x
sub ax,y
mov x,ax

mov ah,9
mov dx,offset tekst2          
int 21h

call wyswietl

koniec:
mov ah, 4ch        ; Koniec programu
int 21h

wyswietl PROC
Push CX
mov ah,9
mov dx,offset entere            
int 21h
mov ax,x
cmp ax,0
jz zero

MOV CX,5      ; ilosc cyfr
MOV BX,10000     ; najwieksza waga liczby jaka mozna miec

etykieta:
  call podzielz
cmp ax,0
JNZ skok
  call podzielb
loop etykieta

skok:
dec cx
  call wys
  jcxz kon
  call podzielb
skok1:
  call podzielz
  call wys
  call podzielb
loop skok1

kon:
pop CX
ret
zero:
 call wys
jmp kon
wyswietl ENDP

podzielz PROC     ; procedura ktora dzieli nasza zmienna
mov ax,x
mov dx,0
div bx
mov x,dx
ret
podzielz ENDP

podzielb PROC     ; procedura przez ktora dzielimy
mov ax,bx
mov dx,0
mov bx,10
div bx
mov bx,ax
ret
podzielb ENDP

wys PROC       
add ax,48d
mov ah,02h      ; wyswietlenie znaku
mov dl,al
int 21h
ret
wys ENDP

end start

 

Revise this Paste

Your Name: Code Language: