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 + -
显示快捷键?