📄 hanoi.vms
字号:
";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -