Transcript 解答例03
演習問題 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