演習問題 3.1 解答
レジスタ GR の内容を (GR) と表せば,以下の通り.
(GR0)
(GR1)
(GR1)
(GR0)
(GR1)
(GR0)
(GR1)
(GR0)
(GR1)
(GR0)
(GR1)
(GR0)
=
=
=
=
=
=
=
=
=
=
=
=
#0000
#0000
#0001
#0001
#0002
#0003
#0003
#0006
#0004
#000A
#0005
#000F
(GR1)
(GR1)
(GR0)
(GR1)
(GR0)
(GR1)
(GR0)
(GR1)
(GR0)
(GR1)
=
=
=
=
=
=
=
=
=
=
#0006
#0015
#0007
#001C
#0008
#0024
#0009
#002D
#000A
#0037
1
演習問題 3.2 解答例
演習問題(8),(9),(10)の各プログラムの機能は次の通り.
(8) WORK でラベル付けされたメモリ領域に格納されている #1000
を GR1 へ転送し,その値から 1 減算した値を GR0 へ格納する.
(9) A でラベル付けされたメモリ領域に格納されている値 5 の2の補
数を計算して,B でラベル付けされたメモリ領域へ格納する.
(10) A でラベル付けされた番地からつづく3ワード分のメモリ領域に
順番に格納されている値 3, 7, 5 に,B でラベル付けされた番地
からつづく3ワード分のメモリ領域に順番に格納されている値 9, 4,
1 をそれぞれ加えた値を C でラベル付けされた番地からつづく3
ワード分のメモリ領域に順番に格納する.
2
演習問題 3.3 解答例
ABS
QUIT
A
B
C
START
LD
SUBA
JPL
LAD
XOR
LAD
ST
RET
DC
DC
DS
END
GR1,A
GR1,B
QUIT
GR0,#FFFF
GR1,GR0
GR1,1,GR1
GR1,C
;
;
;
;
;
;
;
A の値から B の値を引き算
結果が正ならそのまま終了
そうでなければ2の補数をとる
XOR でビット反転(1の補数)
1を加えて2の補数
4
7
1
3
演習問題 3.4 解答例
DICIMAL
LOOP
QUIT
AREA
LEN
MASK
WORK
START
IN
LAD
LAD
LD
AND
ADDA
LAD
CPA
JZE
ADDA
ST
ADDA
ADDA
ADDA
JUMP
RET
DS
DS
DC
DS
END
キーボードから数文字を AREA へ入力
AREA,LEN
GR1,0
GR2,0
GR0,AREA,GR1
GR0,MASK
GR2,GR0
GR1,1,GR1
GR1,LEN
QUIT
GR2,GR2
GR2,WORK
GR2,GR2
GR2,GR2
GR2,WORK
LOOP
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
256
1
#000F
1
; AREA 番地から最大256文字分確保
; 文字数を自動カウントして保存する領域
数字の取り出し
文字列の終わりをチェック
GR2 の値を2倍
2倍した値を WORK へ保存
GR2 をまた2倍して結果4倍
GR2 をまた2倍して結果8倍
8倍値に2倍値を加えて10倍
4
演習問題 3.5 解答
ソースプログラム
CMULTI
LOOP
QUIT
CHAR0
A
B
START
LAD
LD
LD
LAD
SUBA
SUBA
CPA
JZE
ADDA
LAD
JUMP
RET
DC
DC
DC
END
オブジェクトプログラム
GR0,0
GR1,A
GR2,B
GR3,0
GR1,CHAR0
GR2,CHAR0
GR3,GR2
QUIT
GR0,GR1
GR3,1,GR3
LOOP
'0'
'5'
'3'
1000:1200
1002:1010
1004:1020
1006:1230
1008:2110
100A:2120
100C:4432
100D:6300
100F:2401
1010:1233
1012:6400
1014:8100
1015:0030
1016:0035
1017:0033
0000
1016
1017
0000
1015
1015
1014
0001
100C
5
演習問題 3.6 解答
ソースプログラム
CCOUNT
LOOP
HOP
QUIT
CHAR
WORD
SPACE
START
LD
LAD
LAD
LD
CPA
JZE
CPA
JPL
LAD
LAD
JUMP
RET
DC
DC
DC
END
オブジェクトプログラム
GR0,CHAR
GR1,0
GR2,0
GR3,SPACE
GR3,WORD,GR2
QUIT
GR0,WORD,GR2
HOP
GR1,1,GR1
GR2,1,GR2
LOOP
'n'
'computer'
' '
1000:1000
1002:1210
1004:1220
1006:1030
1008:4032
100A:6300
100C:4002
100E:6500
1010:1211
1012:1222
1014:6400
1016:8100
1017:006E
1018:0063
1020:0020
1017
0000
0000
1020
1018
1016
1018
1012
0001
0001
1008
006F 006D 0070 0075 0074 0065 0072
6
演習問題 3.7 解答
(GR7)
(GR7)
(GR7)
(GR7)
(GR7)
(GR7)
(GR7)
(GR7)
(GR7)
(GR7)
(GR7)
(GR7)
(GR7)
(GR7)
(GR7)
(GR7)
(GR7)
(GR7)
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0010
0000
0010
0000
0010
0000
0010
0000
0010
0000
0010
0010
0010
0000
0010
0000
0010
0000
1000
0000
1000
0000
1000
0000
1000
1000
1000
0000
1000
0000
1000
0000
1000
0000
1000
0000
(GR7)
(GR7)
(GR7)
(GR7)
(GR7)
(GR7)
(GR7)
(GR7)
(GR7)
(GR7)
(GR7)
(GR7)
=
=
=
=
=
=
=
=
=
=
=
=
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0010
0000
0010
0000
0010
0000
0010
0000
0010
0000
0010
0000
1000
0000
1000
0000
1000
0000
1000
0000
1000
0000
1000
0000
7
ダウンロード

解答例03