1、在simh下運行RT-11SJhtml
1:安裝simh:win下直接安裝,linux下make後在BIN目錄找到pdp11並cp到搜索路徑目錄下linux
2:到http://simh.trailing-edge.com/software.html 下載RT-11 V4 for the PDP-11 的鏡像磁盤文件rt11swre.tar.Z並解壓,在Disks目錄下可獲得鏡像文件rtv4_rk.dskide
3:創建運行目錄rt11swre,把rtv4_rk.dsk移到該目錄ui
4:創建simh啓動文件boot.ini以下:rt11swre$ cat boot.ini spa
set cpu 256k操作系統
att rk0 rtv4_rk.dskunix
boot rk0code
5:啓動pdp11 htm
$ pdp11 boot.ini terminal
PDP-11 simulator V3.9-0
Disabling CR
RT-11SJ V04.00C
.D 56=5015
.TYPE V4USER.TXT
Welcome to RT-11 Version 4. RT-11 V04 provides new hardware support
and some major enhancements over Version 3B.
Please use the HELP command; it describes the new options in many
of the utilities.
If you are using a terminal that requires fill characters,
modify location 56 with a Deposit command before proceeding with
system installation. LA36 DECwriter II and VT52 DECscope terminals
do NOT require such modification.
.D 56=0
.
.號爲 RT-11操做系統的命令提示符(相似dos下的c:\>或unix下的$)
2、在RT-11環境下輸入HELLO.MAC源程序
編輯程序EDIT我不會用,這裏用COPY命令(相似在unix用cat命令建立文件的方法):
.COPY TT: HELLO.MAC
Files copied:
^.TITLE HELLO WORLD
.MCALL .TTYOUT,.EXIT
HELLO:: MOV #MSG,R1 ;STARTING ADDRESS OF STRING
1$: MOVB (R1)+,R0 ;FETCH NEXT CHARACTER
BEQ DONE ;IF ZERO, EXIT LOOP
.TTYOUT ;OTHERWISE PRINT IT
BR 1$ ;REPEAT LOOP
DONE: .EXIT
MSG: .ASCIZ /HELLO, WORLD!/
.END HELLO
^ZTT: to DK:HELLO.MAC
注意最後一行(必須另起一行、不能在.END HELLO後面)只需輸入ctrl+Z文件便會保存到磁盤
.DIR *.MAC
HELLO .MAC 1
1 Files, 1 Blocks
2496 Free blocks
3、彙編
.MACRO HELLO
ERRORS DETECTED: 0
4、鏈接並運行
.LINK HELLO
.R HELLO
HELLO, WORLD!
更簡單的HELLOWORLD:
; MACRO-11 EXAMPLE.
.MCALL .EXIT, .PRINT
START:
.PRINT #MES
.EXIT
MES: .ASCIZ /HELLO !!!/
.END START
還有一個版本:
.MCALL .REGDEF,.TTYOUT,.EXIT
.REGDEF
HELLO:
MOV #MSG,R1
MOVB (R1),R0
LOOP: .TTYOUT
MOVB (R1)+,R0
BNE LOOP
.EXIT
MSG: .ASCIZ /HELLO, WORLD!/
.END HELLO
.TITLE HELLO WORLD .MCALL .TTYOUT,.EXIT HELLO:: MOV #MSG,R1 ;STARTING ADDRESS OF STRING 1$: MOVB (R1)+,R0 ;FETCH NEXT CHARACTER BEQ DONE ;IF ZERO, EXIT LOOP .TTYOUT ;OTHERWISE PRINT IT BR 1$ ;REPEAT LOOP DONE: .EXIT MSG: .ASCIZ /HELLO, WORLD!/ .END HELLO
; MACRO-11 EXAMPLE. .MCALL .EXIT, .PRINT START: .PRINT #MES .EXIT MES: .ASCIZ /HELLO !!!/ .END START
.MCALL .REGDEF,.TTYOUT,.EXIT .REGDEF HELLO: MOV #MSG,R1 MOVB (R1),R0 LOOP: .TTYOUT MOVB (R1)+,R0 BNE LOOP .EXIT MSG: .ASCIZ /HELLO, WORLD!/ .END HELLO