RT-11SJ 環境下運行pdp11彙編MACRO-11

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

Installing RT-11 5.3 on SIMH

相關文章
相關標籤/搜索