Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;;;;;;;;;; Kompilacja programu ;;;;
- ; tasm program.asm ;;;;;;
- ;;;;;;;;;; Linkowanie ;;;;;;;;;;;
- ;tlink program.obj ;;;;;;;;;;;;
- ;;;;;;;;;; Wykonanie programu ;;;;;
- ;program.exe
- ;stosik SEGMENT STACK
- ; DB 328 DUP(?)
- ;stosik ENDS
- assume cs:kod, ds:dane ;linia mo?e wyst?powa? w r?nych miejscach
- dane segment
- napis db 'Wprowadz liczbe: $',13,10
- napis2 db 'Wprowadz druga liczbe: $',13,10
- zerodz db 'Nie mozna dzielic przez 0 !!!$'
- par db 'Liczba jest parzysta$'
- nl db 13,10, '$';
- gw db '*$';
- zmp dw ?
- zmp2 dw ?
- wyn dw ?
- reszta db ' R $'
- dane ends
- kod segment
- start:
- mov ax, seg dane
- mov ds, ax
- mov ax, 3 ;czysci ekran
- int 10h ;czysci ekran
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- mov dx, offset napis
- mov ah, 9h
- int 21h
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
- ; wczytywanie wartosci liczbowej z klawiatury
- ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
- xor bx,bx
- wczytaj:
- ;cmp bx, 65535
- ;ja koniec_wczytania
- mov ah, 7h ;czytanie z klawiatury znak w AL bez echa
- int 21h
- xor dx, dx
- mov dl, al
- cmp dl, 13 ;enter
- je koniec_wczytania
- cmp dl, '0'
- jl wczytaj ;nie liczba
- cmp dl, '9'
- jg wczytaj ;nie liczba
- mov ah, 2h
- int 21h
- sub dl, '0'
- push dx
- mov ax, bx
- mov cx, 10
- mul cx
- pop dx
- add ax, dx
- mov bx, ax
- jmp wczytaj
- koniec_wczytania:
- mov zmp, bx
- mov dx, offset nl
- mov ah, 9h
- int 21h
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- mov dx, offset napis2
- mov ah, 9h
- int 21h
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- xor bx, bx ;;;;;;;tu brak wyzerowania bx
- wczytaj2:
- ;cmp bx, 65535
- ;ja koniec_wczytania
- mov ah, 7h ;czytanie z klawiatury znak w AL bez echa
- int 21h
- xor dx, dx
- mov dl, al
- cmp dl, 13 ;enter
- je koniec_wczytania2
- cmp dl, '0'
- jl wczytaj2 ;nie liczba
- cmp dl, '9'
- jg wczytaj2 ;nie liczba
- mov ah, 2h
- int 21h
- sub dl, '0'
- push dx
- mov ax, bx
- mov cx, 10
- mul cx
- pop dx
- add ax, dx
- mov bx, ax
- jmp wczytaj2
- koniec_wczytania2:
- mov zmp2, bx
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- mov dx, offset nl
- mov ah, 9h
- int 21h
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ktora wieksza
- ;mov bx, zmp2
- ;cmp bx, zmp
- ;jg tu
- ;push zmp2
- ;push zmp
- ;pop zmp2
- ;pop zmp
- ;tu:
- mov bx, zmp
- add bx, zmp2
- mov wyn,bx
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;dzielenie
- xor dx, dx
- mov ax, wyn
- mov bx, 2
- cmp bx,0
- je zero
- div bx
- mov zmp, ax
- mov zmp2, dx
- cmp dx,0
- je parzysta
- jg niepar
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;add bx, zmp
- ;wyswietlanie zawartosci liczbowej z rejestru ax
- ;tam1:
- mov ax, wyn
- wyswietl:
- mov cx, 0
- petla11:
- mov dx,0
- mov bx, 10
- div bx
- push dx
- inc cx
- cmp ax, 0
- jnz petla11
- mov dx, 0
- petla21:
- pop dx
- mov ah, 02h
- add dl, 48
- int 21h
- loop petla21
- ;;;
- mov dx, offset reszta
- mov ah, 9h
- int 21h
- ;;;
- mov ax, zmp2
- ;wyswietlx:
- mov cx, 0
- petla113:
- mov dx,0
- mov bx, 10
- div bx
- push dx
- inc cx
- cmp ax, 0
- jnz petla113
- mov dx, 0
- petla213:
- pop dx
- mov ah, 02h
- add dl, 48
- int 21h
- loop petla213
- parzysta:
- mov dx, offset par
- mov ah, 9h
- int 21h
- jmp koniec
- niepar:
- mov dx, offset niepar
- mov ah, 9h
- int 21h
- jmp koniec
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;;; Wyj?cie do systemu DOS
- mov ah, 4ch
- int 21h
- zero:
- mov dx, offset zerodz
- mov ah, 9h
- int 21h
- koniec:
- mov ah, 4ch
- int 21h
- kod ends
- end start
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement