Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ; multi-segment executable file template.
- data segment
- nr db 10, 13, "$"
- raz db " ", "$"
- razd db " ", "$"
- razf db " ", "$"
- razmak db " ", "$"
- a db ? ; stotica
- b db ? ; desetica
- c db ? ; jedinica
- n db 18 ; broj dokle zelimo da mnozi
- ends
- stack segment
- dw 128 dup(0)
- ends
- code segment
- start:
- ; set segment registers:
- mov ax, data
- mov ds, ax
- mov es, ax
- lea dx, razmak
- mov ah, 9
- int 21h
- mov bl, 1
- ; stampanje brojeva u prvom redu
- petlja:
- cmp bl, n
- jle stampajbr
- jmp dalje
- stampajbr:
- mov al, bl
- mov bh, 1
- mul bh
- mov dh, 10
- div dh
- mov bh, ah
- mov ah, 2
- mov dl, al
- add dl, 48
- int 21h
- mov ah, 2
- mov dl, bh
- add dl, 48
- int 21h
- lea dx, razf
- mov ah, 9
- int 21h
- add bl, 1
- jmp petlja
- ; stampanje dva nova reda
- dalje:
- lea dx, nr
- mov ah, 9
- int 21h
- lea dx, nr
- mov ah, 9
- int 21h
- mov bl, 1
- mov cl, 1
- while:
- ; stampanje brojeva sa strane (dvocifreni)
- cmp cl, n
- jg kraj2
- mov al, cl
- mov bh, 1
- mul bh
- mov dh, 10
- div dh
- mov bh, ah
- mov ah, 2
- mov dl, al
- add dl, 48
- int 21h
- mov ah, 2
- mov dl, bh
- add dl, 48
- int 21h
- lea dx, razd
- mov ah, 9
- int 21h
- ; kraj stampanja brojeva sa strane
- cmp cl, n
- jle for
- jmp kraj2
- for:
- cmp bl, n
- jle racunaj
- jmp kraj
- racunaj:
- ; stampanje trocifrenog broja
- mov al, bl
- mul cl
- mov dh, 10
- div dh
- mov c, ah
- mov bh, 1
- mul bh
- div dh
- mov b, ah
- mov a, al
- mov ah, 2
- mov dl, a
- add dl, 48
- int 21h
- mov ah, 2
- mov dl, b
- add dl, 48
- int 21h
- mov ah, 2
- mov dl, c
- add dl, 48
- int 21h
- ; kraj stampanja trocifrenog broja
- lea dx, raz
- mov ah, 9
- int 21h
- add bl, 1
- jmp for
- kraj:
- mov bl, 1
- add cl, 1
- lea dx, nr
- mov ah, 9
- int 21h
- jmp while
- kraj2:
- lea dx, nr
- mov ah, 9
- 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