gitweb on Svarog
projekti pod git sistemom za održavanje verzija -- projects under the git version control systemdiff --git a/samples/rek-gcd-input.asm b/samples/rek-gcd-input.asm
--- /dev/null
@@ -0,0 +1,59 @@
+.model small \r
+ASSUME DS:data\r
+;recursive version of GCD, input from terminal\r
+data segment\r
+ strNZD db " "\r
+ tempStr db " "\r
+ prompt db "num?$"\r
+ promptr db "RES $"\r
+ m dw 0\r
+ n dw 0\r
+data ends\r
+;#macros-removed-from-listing
+\r
+.code\r
+\r
+start: \r
+ mov ax,@data\r
+ mov ds,ax\r
+ print_str prompt\r
+ read_num m \r
+ print_new_line\r
+ print_str prompt\r
+ read_num n\r
+ print_new_line\r
+\r
+ push n\r
+ push m\r
+ call gcd\r
+ pop n \r
+ print_str promptr\r
+ print_num n\r
+; print out a result\r
+ end_execution\r
+\r
+\r
+;volatile procedure, ruins ax,bx,cx\r
+gcd proc\r
+ ;get params\r
+ pop ax\r
+ pop bx\r
+ cmp ax,bx\r
+ je endequal\r
+ ja greatera\r
+ ;ensure ax is greater\r
+ xchg ax,bx \r
+greatera:\r
+ sub ax,bx\r
+ push bx\r
+ push ax\r
+ call gcd\r
+ pop ax;result\r
+ \r
+endequal:\r
+ push ax; result\r
+ ret\r
+gcd endp \r
+\r
+.stack\r
+end start\r