Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ; multi-segment executable file template.
- data segment
- a db ?
- b db ?
- zn db ?
- rez db ?
- razmak db " ", "$"
- jednako db " = ", "$"
- nr db 10, 13, "$"
- pkey db "press any key...$"
- ends
- stack segment
- dw 128 dup(0)
- ends
- code segment
- start:
- ; set segment registers:
- mov ax, data
- mov ds, ax
- mov es, ax
- mov ah,1
- int 21h
- sub al, 48
- mov a, al
- int 21h
- sub al, 48
- mov b, al
- int 21h
- mov zn, al
- lea dx, nr
- mov ah, 9
- int 21h
- cmp zn, '+'
- je saberi
- jmp d1
- saberi:
- mov al, a
- add al, b
- mov rez, al
- add rez, 48
- lea dx, nr
- mov ah, 9
- int 21h
- mov dl, a
- add dl, 48
- mov ah, 2
- int 21h
- lea dx, razmak
- mov ah, 9
- int 21h
- mov dl, zn
- mov ah, 2
- int 21h
- lea dx, razmak
- mov ah, 9
- int 21h
- mov dl, b
- add dl, 48
- mov ah, 2
- int 21h
- lea dx, jednako
- mov ah, 9
- int 21h
- mov dl, rez
- mov ah, 2
- int 21h
- jmp kraj
- d1:
- cmp zn, '-'
- je oduzmi
- jmp d2
- oduzmi:
- mov al, a
- sub al, b
- mov rez, al
- add rez, 48
- lea dx, nr
- mov ah, 9
- int 21h
- mov dl, a
- add dl, 48
- mov ah, 2
- int 21h
- lea dx, razmak
- mov ah, 9
- int 21h
- mov dl, zn
- mov ah, 2
- int 21h
- lea dx, razmak
- mov ah, 9
- int 21h
- mov dl, b
- add dl, 48
- mov ah, 2
- int 21h
- lea dx, jednako
- mov ah, 9
- int 21h
- mov dl, rez
- mov ah, 2
- int 21h
- jmp kraj
- d2: cmp zn, '*'
- je pomnozi
- jmp d3
- pomnozi:
- mov al, a
- mul b
- mov bl, 10
- div bl
- mov ch, al
- mov cl, ah
- lea dx, nr
- mov ah, 9
- int 21h
- mov dl, a
- add dl, 48
- mov ah, 2
- int 21h
- lea dx, razmak
- mov ah, 9
- int 21h
- mov dl, zn
- mov ah, 2
- int 21h
- lea dx, razmak
- mov ah, 9
- int 21h
- mov dl, b
- add dl, 48
- mov ah, 2
- int 21h
- lea dx, jednako
- mov ah, 9
- int 21h
- mov dl, ch
- add dl, 48
- mov ah, 2
- int 21h
- mov dl, cl
- add dl, 48
- mov ah, 2
- int 21h
- jmp kraj
- d3: cmp zn, '/'
- je podijeli
- jmp kraj
- podijeli:
- mov al, a
- mov bl, 1
- mul bl
- mov cl, b
- div b
- mov rez, al
- add rez, 48
- lea dx, nr
- mov ah, 9
- int 21h
- mov dl, a
- add dl, 48
- mov ah, 2
- int 21h
- lea dx, razmak
- mov ah, 9
- int 21h
- mov dl, zn
- mov ah, 2
- int 21h
- lea dx, razmak
- mov ah, 9
- int 21h
- mov dl, b
- add dl, 48
- mov ah, 2
- int 21h
- lea dx, jednako
- mov ah, 9
- int 21h
- mov dl, rez
- mov ah, 2
- int 21h
- kraj:
- lea dx, pkey
- mov ah, 9
- int 21h ; output string at ds:dx
- ; wait for any key....
- mov ah, 1
- int 21h
- mov ax, 4c00h ; exit to operating system.
- int 21h
- ends
- end start ; set entry point and stop the assembler.
Advertisement
Add Comment
Please, Sign In to add comment