hanoi.vms

来自「一个小型的操作系统,采用gcc进行开发,几千行的代码,方便初学者学习」· VMS 代码 · 共 138 行

VMS
138
字号
";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; hanoi.vms;; purpose:汉诺塔的递归调用;;;; to run: myvm hanoi.vms;; snallie@tom.com ,2003.3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;start:	;;display Hanoi key 	ldi 72	ota	ldi 97	ota	ldi 110	ota	ldi 111	ota	ldi 105	ota 	ldi 32	ota	ldi 107	ota	ldi 101	ota	ldi 121	ota	ldi 10	ota	ldi 13	ota        lspi 255 ;stack pointer set to 255;       fbpi 99          ldi 67   ;to   67=C        push        ldi 66   ;via  66=B        push        ldi 65   ;from 65=A        push        ldi 3    ;n, total disk to move        push                jsr hanoi        pop        pop        pop        pop        halthanoi:          tbp	push    ;push bp	tsb	lbpi 2  ;parm 1 n=3;	cpi 1   ;	bze  ends	lbpi 4  ;parm via	push         	lbpi 5  ;parm to	push 	lbpi 3  ;parm from	push        lbpi 2 	dec   ;n-1	push	jsr hanoi ;;;;;;;;;;;;;;;;	;; !!the following 4 pop to balance stack	pop	pop	pop	pop		lbpi 2        oti      ;output n=1        lbpi 3   ;from        ota         ldi 45   ;-        ota                   ldi 62   ;>        ota                lbpi 5   ;to        ota        jsr crlf        	lbpi 5 ; parm via	push	lbpi 3 ; parm to	push 	lbpi 4 ; parm from	push        lbpi 2 	dec   ; n-1	push	jsr hanoi ;;;;;;;;;;;;;;;;	;; !!the following 4 pop to balance stack	pop	pop	pop	pop		pop	tabp	ret 	ends:   lbpi 2  ; n        oti     ; output n=1        lbpi 3  ; from        ota         ldi 45   ;-        ota                   ldi 62   ;>        ota                lbpi 5  ; to        ota        jsr crlf        pop        tabp        ret        ;;;;;;;;;;;;;; display crlf;;;;;;;;;;;;;	crlf:           push        ldi 13        ota        ldi 10        ota        pop         ret;; hanoi done        "; 

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?