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 a: $',13,10
- napis2 db 'Wprowadz liczbe b: $',13,10
- napis3 db 'Wprowadz liczbe c: $',13,10
- suma db 'Wynik= $',13,10
- nl db 13,10, '$';
- gw db '*$';
- liczba DW ?
- liczba2 DW ?
- liczba3 DW ?
- 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
- mov liczba, bx
- jmp wczytaj
- koniec_wczytania:
- mov dx, offset nl
- mov ah, 9h
- int 21h
- mov dx, offset napis2
- mov ah, 9h
- int 21h
- xor bx,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, liczba2
- mov cx, 10
- mul cx
- pop dx
- add ax, dx
- mov liczba2, ax
- jmp wczytaj2
- koniec_wczytania2:
- mov dx, offset nl
- mov ah, 9h
- int 21h
- mov dx, offset napis3
- mov ah, 9h
- int 21h
- xor bx,bx
- wczytaj3:
- ;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_wczytania3
- cmp dl, '0'
- jl wczytaj3 ;nie liczba
- cmp dl, '9'
- jg wczytaj3 ;nie liczba
- mov ah, 2h
- int 21h
- sub dl, '0'
- push dx
- mov ax, liczba3
- mov cx, 10
- mul cx
- pop dx
- add ax, dx
- mov liczba3, ax
- jmp wczytaj3
- koniec_wczytania3:
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- mov dx, offset nl
- mov ah, 9h
- int 21h
- mov dx, offset suma
- mov ah, 9h
- int 21h
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;wyswietlanie zawartosci liczbowej z rejestru ax
- xor dx, dx
- mov ax, liczba
- mov bx, liczba2
- mul bx
- mov liczba, ax
- cmp dx, 0
- jnz koniec
- wyswietl2:
- mov cx, 0
- petla111:
- mov dx,0
- mov bx, 10
- div bx
- push dx
- inc cx
- cmp ax, 0
- jnz petla111
- petla211:
- pop dx
- mov ah, 02h
- add dl, 48
- int 21h
- loop petla211
- koniec:
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;;; Wyjście do systemu DOS
- mov ah, 4ch
- int 21h
- kod ends
- end start
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement