文档章节

RT-11SJ 环境下运行pdp11汇编MACRO-11

wangxuwei
 wangxuwei
发布于 2015/09/12 22:37
字数 610
阅读 97
收藏 2

一、在simh下运行RT-11SJ

1:安装simh:win下直接安装,linux下make后在BIN目录找到pdp11并cp到搜索路径目录下

2:到http://simh.trailing-edge.com/software.html 下载RT-11 V4 for the PDP-11 的镜像磁盘文件rt11swre.tar.Z并解压,在Disks目录下可得到镜像文件rtv4_rk.dsk

3:建立运行目录rt11swre,把rtv4_rk.dsk移到该目录

4:建立simh启动文件boot.ini如下:rt11swre$ cat boot.ini 

set cpu 256k

att rk0 rtv4_rk.dsk

boot rk0

5:启动pdp11   

$ pdp11 boot.ini 

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下的$)

二、在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

三、汇编

.MACRO HELLO

ERRORS DETECTED:  0

四、连接并运行

.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

 

© 著作权归作者所有

共有 人打赏支持
wangxuwei
粉丝 25
博文 335
码字总数 117394
作品 0
杭州
其他
私信 提问
C语言宏定义

参见: https://gcc.gnu.org/onlinedocs/cpp/index.html 在宏定义中,#和## #表示将其后的内容转换为字符串,##表示将它前后两个TOKEN连接为一个。 1)预处理(Pre-processing) 在该阶段,编译...

andrew810810
2016/12/12
23
0
Fresh IDE 2.0.9 发布,汇编集成开发环境

Fresh IDE 是一个内置的 Flat 汇编编译器(FASM)的可视化汇编语言集成开发环境。它完全兼容与FASM可以在编译时FASM的每一个版本。Fresh IDE 的主要目标是使编程,组装快速,高效,高层次的语...

oschina
2012/09/23
2.4K
8
Fresh IDE 2.2.1 发布,汇编集成开发环境

Fresh IDE 2.2.1 发布,此版本主要是个 bug 修复版本,修复了大大小小的 bug。其中包括一些旧的,非常少发生的 bug。同时还包括了一个非常重要的新特性: "Unroll macro",这是个期待已久的特...

oschina
2014/05/12
1K
2
GNU ARM汇编快速入门

前言: 以前用ARM的 IDE工具,使用的是ARM标准的汇编语言。现在要使用GNU的工具,当然要了解一点GNU ARM汇编的不同之处。其实非常的简单,浏览一下文档然后再看看程序就完全可以搞定了,或者...

小桥河西
2008/07/07
0
0
Linux RT(2)-硬实时Linux(RT-Preempt Patch)的中断线程化

特别声明:本系列文章LiAnLab.org著作权所有,转载请注明出处。xhe_href="http://weibo.com/21cnbao">by @宋宝华Barry 底半部:线程化IRQ 线程化中断的支持在2009年已经进入Linux官方内核,详...

21cnbao
2012/10/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

一致性hash和虚拟节点

consistent hashing 算法的原理 consistent hashing 是一种 hash 算法,简单的说,在移除 / 添加一个 cache 时,它能够尽可能小的改变已存在key 映射关系,尽可能的满足单调性的要求。 下面就...

群星纪元
22分钟前
2
0
说一下Dubbo 的工作原理?注册中心挂了可以继续通信吗?

面试题 说一下的 dubbo 的工作原理?注册中心挂了可以继续通信吗?说说一次 rpc 请求的流程? 面试官心理分析 MQ、ES、Redis、Dubbo,上来先问你一些思考性的问题、原理,比如 kafka 高可用架...

李红欧巴
33分钟前
19
0
腾讯面试:一条SQL语句执行得很慢的原因有哪些?

说实话,这个问题可以涉及到 MySQL 的很多核心知识,可以扯出一大堆,就像要考你计算机网络的知识时,问你“输入URL回车之后,究竟发生了什么”一样,看看你能说出多少了。 之前腾讯面试的实...

java菜分享
51分钟前
11
0
Java 基本功 之 CAS

本文首发于个人公众号《andyqian》, 期待你的关注! 前言 在Java并发编程中,我们经常使用锁对竞争资源予以并发控制,以解决资源竞争的问题。但无论是使用 Lock 还是 Synchronized,随着锁机...

andyqian
55分钟前
4
0
信号量与条件变量的区别

注意信号量与条件变量的区别 信号量内容可见:http://www.cnblogs.com/charlesblc/p/6142868.html 信号量、共享内存,以及消息队列等System V IPC三剑客主要关注进程间通信; 而条件变量、互...

shzwork
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部