gitweb on Svarog

projekti pod git sistemom za održavanje verzija -- projects under the git version control system
version 0.81
[asm2wsl.git] / samples / rek-gcd-input.asm
1 .model small
2 ASSUME DS:data
3 ;recursive version of GCD, input from terminal
4 data segment
5 strNZD db " "
6 tempStr db " "
7 prompt db "num?$"
8 promptr db "RES $"
9 m dw 0
10 n dw 0
11 data ends
12 ;#macros-removed-from-listing
14 .code
16 start:
17 mov ax,@data
18 mov ds,ax
19 print_str prompt
20 read_num m
21 print_new_line
22 print_str prompt
23 read_num n
24 print_new_line
26 push n
27 push m
28 call gcd
29 pop n
30 print_str promptr
31 print_num n
32 ; print out a result
33 end_execution
36 ;volatile procedure, ruins ax,bx,cx
37 gcd proc
38 ;get params
39 pop ax
40 pop bx
41 cmp ax,bx
42 je endequal
43 ja greatera
44 ;ensure ax is greater
45 xchg ax,bx
46 greatera:
47 sub ax,bx
48 push bx
49 push ax
50 call gcd
51 pop ax;result
53 endequal:
54 push ax; result
55 ret
56 gcd endp
58 .stack
59 end start
Svarog.pmf.uns.ac.rs/gitweb maintanance Doni Pracner