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_1: $',13,10
- napis2 db 'Wprowadz liczbe_2: $',13,10
- suma db 'suma:$';
- nl db 13,10, '$';
- gw db '*$';
- zmp dw ?
- zmp2 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
- jmp wczytaj
- koniec_wczytania:
- mov zmp, bx
- mov dx, offset nl
- mov ah, 9h
- int 21h
- xor bx, bx ;;;;;;;tu brak wyzerowania bx
- mov dx, offset napis2
- mov ah, 9h
- int 21h
- 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
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sumowanie
- mov ax,zmp2
- mov bx,zmp
- cmp ax,bx
- js zamiana
- cmp ax,bx
- jns koniec
- zamiana:
- mov zmp,ax
- mov zmp2,bx
- koniec:
- mov bx, zmp2
- sub bx, zmp
- mov cx, bx
- mov bx, zmp
- zamien:
- petlacx:
- inc zmp
- add bx, zmp
- loop petlacx
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- mov dx, offset suma
- mov ah, 9h
- int 21h
- ;add bx, zmp
- ;wyswietlanie zawartosci liczbowej z rejestru ax
- mov ax, bx
- 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
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;;; WyjĹ?cie do systemu DOS
- mov ah, 4ch
- int 21h
- kod ends
- end start
Add Comment
Please, Sign In to add comment