Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- data segment
- ; Ovde definisati sve promenljive
- niz DW 1,2,3
- string DW " $"
- ends
- stek segment stack
- dw 128 dup(0)
- ends
- ; Unos jednog znaka
- read macro c
- push ax
- mov ah, 01
- int 21h
- mov c, al
- pop ax
- endm
- ; Ispis jednog znaka
- write macro c
- push ax
- push dx
- mov ah, 02
- mov dl, c
- int 21h
- pop dx
- pop ax
- endm
- ; Unos jednog znaka bez prikaza na ekran
- readkey macro c
- push ax
- mov ah, 08
- int 21h
- mov c, al
- pop ax
- endm
- ; Unos jednog znaka bez prikaza na ekran i pamcenja
- keypress macro
- push ax
- mov ah, 08
- int 21h
- pop ax
- endm
- ; Ispis stringa na ekran
- writeString macro s
- push ax
- push dx
- mov dx, offset s
- mov ah, 09
- int 21h
- pop dx
- pop ax
- endm
- ; Kraj programa
- krajPrograma macro
- mov ax, 4c02h
- int 21h
- endm
- code segment
- ; Novi red
- novired proc
- push ax
- push bx
- push cx
- push dx
- mov ah,03
- mov bh,0
- int 10h
- inc dh
- mov dl,0
- mov ah,02
- int 10h
- pop dx
- pop cx
- pop bx
- pop ax
- ret
- novired endp
- ; Ucitavanje stringa
- ; Adresa stringa je parametar procedure
- readString proc
- push ax
- push bx
- push cx
- push dx
- push si
- mov bp, sp
- mov dx, [bp+12]
- mov bx, dx
- mov ax, [bp+14]
- mov byte [bx] ,al
- mov ah, 0Ah
- int 21h
- mov si, dx
- mov cl, [si+1]
- mov ch, 0
- kopiraj:
- mov al, [si+2]
- mov [si], al
- inc si
- loop kopiraj
- mov [si], '$'
- pop si
- pop dx
- pop cx
- pop bx
- pop ax
- ret 4
- readString endp
- ; Konvertovanje stringa u broj
- strtoint proc
- push ax
- push bx
- push cx
- push dx
- push si
- mov bp, sp
- mov bx, [bp+14]
- mov ax, 0
- mov cx, 0
- mov si, 10
- petlja1:
- mov cl, [bx]
- cmp cl, '$'
- je kraj1
- mul si
- sub cx, 48
- add ax, cx
- inc bx
- jmp petlja1
- kraj1:
- mov bx, [bp+12]
- mov [bx], ax
- pop si
- pop dx
- pop cx
- pop bx
- pop ax
- ret 4
- strtoint endp
- ; Konvertovanje broja u string
- inttostr proc
- push ax
- push bx
- push cx
- push dx
- push si
- mov bp, sp
- mov ax, [bp+14]
- mov dl, '$'
- push dx
- mov si, 10
- petlja2:
- mov dx, 0
- div si
- add dx, 48
- push dx
- cmp ax, 0
- jne petlja2
- mov bx, [bp+12]
- petlja2a:
- pop dx
- mov [bx], dl
- inc bx
- cmp dl, '$'
- jne petlja2a
- pop si
- pop dx
- pop cx
- pop bx
- pop ax
- ret 4
- inttostr endp
- start:
- ASSUME CS:CODE,SS:STEK
- MOV AX,DATA
- MOV DS,AX
- MOV SI,0
- MOV CX,5
- MOV AX,0
- petlja:
- ADD AX,niz[SI]
- ADD SI,2
- loop petlja
- MOV BX,3
- DIV BX
- PUSH AX
- PUSH OFFSET string
- CALL INTTOSTR
- writeString string
- ; Ovde pisati glavni deo koda.
- kraj:
- ; Ovde ispisati rezultat
- krajPrograma
- ends
- end start
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement