アフィリエイト広告を利用しています

2023年01月10日

PDP-11: プログラミングのための準備 (2) ── Hello world のアセンブルと実行

サイト The Ancient Bits adventure に掲載されている Hello world プログラム hellopdp.s:


.TITLE Say hello on console
.IDENT "V00.00"

.GLOBAL start
.GLOBAL _putconch

STACK = 0x1000

.text
start:
mov $STACK, sp
mov $hellom, r1
mov $helloc, r2
10$: movb (r1), r0
jsr pc, _putconch
dec r2
beq 99$
inc r1
jmp 10$

99$: nop
halt

.data
hellom: .ascii "Hello world!"
helloc = . - hellom

.end

とバイトをコンソールに印刷するプログラム

.TITLE putconch: send a byte to the system console
.IDENT "V01.00"

.GLOBAL _putconch

XCSR = 0177564
XBUF = 0177566
TXRDY = 0x0080
NRETRY = 5000

.text

_putconch:
mov r1,-(sp)
mov r2,-(sp)
mov $NRETRY, r1
10$:
mov XCSR,r2
bit r2, $TXRDY
bne 20$
dec r1
bne 10$
mov $2,r0
jmp 999$

20$: movb r0,XBUF
mov $NRETRY, r1
30$: mov XCSR,r2
bit r2, $TXRDY
bne 40$
dec r1
bne 30$
mov $2, r0
jmp 999$

40$: mov $0, r0
999$:
mov (sp)+, r2
mov (sp)+, r1
rts pc

.end _putconch

をアセンブルして実行イメージを作成する.


まず, クロスアセンブラを使用して hellopdp.s と putconch.s をアセンブルする.


$ pdp11-aout-as putconch.s -o putconch.o
$ pdp11-aout-as hellopdp.s -o hellopdp.o

これができたら, a.out 実行イメージをリンクして LDA ファイルを作成する.

$ pdp11-aout-ld -T ldaout.cmd hellopdp.o putconch.o -o hellopdp.out
$ bin2load -a -f hellopdp.out -o hellopdp.lda

SimH での実行には, できあがった LDA ファイル "hellopdp.lda" を使う.

$ simh-pdp11

PDP-11 simulator V3.9-0
sim> load hellopdp.lda
sim> g
Hello world!
HALT instruction, PC: 001040 (MOV R1,-(SP))
sim> q
Goodbye

タグ:PDP-11 SimH
この記事へのコメント
コメントを書く

お名前:

メールアドレス:


ホームページアドレス:

コメント:

この記事へのトラックバックURL
https://fanblogs.jp/tb/11807512

この記事へのトラックバック
ファン
検索
<< 2024年11月 >>
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
最新記事
最新コメント
眼科の定期検査 〜 散歩 by コトタマ (02/15)
眼科の定期検査 by 三文字寄れば文殊のヒフミヨ (09/21)
本を読んで過ごす by 底彦 (12/13)
本を読んで過ごす by ねこ (12/12)
数学の計算をする by 底彦 (12/04)
タグクラウド
カテゴリアーカイブ
仕事(59)
社会復帰(22)
(44)
コンピューター(211)
(1441)
借金(8)
勉強(13)
(13)
数学(97)
運動(8)
日常生活(1404)
(204)
健康(38)
読書(21)
プロフィール

ブログランキング・にほんブログ村へ
にほんブログ村
にほんブログ村 メンタルヘルスブログ うつ病(鬱病)へ
にほんブログ村
にほんブログ村 科学ブログ 数学へ
にほんブログ村
にほんブログ村 IT技術ブログ プログラム・プログラマーへ
にほんブログ村