問題回答例

  1. II章歴史


    1. コンピュータの歴史

      1820:バベッジ:階差エンジンで計算
      1880:ホレリス、パンチカードの利用
      1945:ノイマン、計算機の原理を公表
      1946:ENIAC、18000本の真空管、プログラムは配線
      1950:トランジスタ型計算機
      1952:ホッパー、コンパイラ型言語FLOW-MATICを開発
      1954:IBM:FORTRAN発表
      1964:IBM:システム360発表
      1968:集積回路発明
      1969:AT&T、UNIX開発
      1970:マイクロプロセッサー登場
      1972:C言語開発
      1973:CP/M発表
      1976:ゼロックス・DEC、イーサネット開発
      1981:マイクロソフト社MS-DOS発売
      1989:CERN、ティモシーらwww開発
      1991:リーナス、Linux発表
      1993:NCSA、Mosaic開発
      1995:マイクロソフトwindows95発売

    2. アンケート

      4、2、1、3
  2. III章文字


    1. 演習

      25の2進数 11001

      AC3 の2進数 101011000011

      ITO MAKOTO :49 54 4F 4D 414B 54 4F

      "@a1" の16進 40 61 31

      愛 と 悪 : 愛 のコードは3026、悪 のコードは302D、大小はコードの大きさで決まる、「悪」のほうが大きい

    2. アンケート

      3、1、4、3

  3. IV章2進数の計算


    1. 演習
       137:10001001
        85:
        42:1010101

       01101 + 00101 =10010 
       01001 + 01111 = 11000
       00101 * 01010 = 1111

       1010 > 101000
       1100 > 0011

    2. レポート

      m進とする。
      m*m+3*m+1-4m-5=5m+3
       これを解く。 (m-7)(m+1)=0 > m=7

      10進数D桁と2進数B桁が同じ数を表現するには
       10^D = 2^B
      が必要。したがって、D=B log 2 10

    3. アンケート
       3、4、2、4
  4. V章負の数


    1. 演習

      213 - 30 = 213 + (999-30)+1 = (1)183
      330 -213 = 330 + (999-213)+1 = (1)117

      2進数で行うと
      213 = 0 1101 0101
       30 = 0 0001 1110
      -30 = 1 1110 0010
      213-30=0 01011 0111

      54 = 0011 0110
      31 = 0001 1111
      -31= 1110 0001
      54-31 = 0001 0111
      -54 = 1100 1010
      31-54 =1110 1001
    2. アンケート
      4、?、?、3、3

    3. レポート

      2:16bitの最大、最小
      最大値 2^16-1 = 65535
      最小 -65536

      3:負になる理由
      2倍すると、先頭の1が左にシフトする。この1が最上位ビットに入ると負の数となる。


  5. VI章 論理式


    1. 論理式の計算

       A  B  式
       0
       0
       1
       1  1  1

    2. 回路図

    3. 階段スイッチ

       A・B + ^A・^B  または A・^B + A・^B
  6. VII章 演算回路



    1. 加算のブロック回路


    2. 桁上がり回路




    3. アンケート

      1、3、

  7. VIII章 計算機の構造


    1. 演習

      通常のメモリーは電源を切ると記憶が消えるが、フラッシュメモリーは電源を切っても記憶を保持する。

      メモリーに保存された命令を順に実行する。プログラムを変更することで、処理する内容を変更できる。

    2. 小テスト(アンケート)

      3、1、3

    3. 課題


      LDI 23
      MLM 12
      ADI 8
      STM 20

      LDI 23
      ADM 8
      STM 30 //他の番地でも可
      LDI 12
      ADM 8
      MLM 30
      STM 20

      LDM 23
      MLM 24
      ADM 25
      MLM 24
      ADM 25
      STM 26

  8. IX章プログラム


    1. 10まで加える

        LDI 10
        STM S //Sは番地
      L:LDM S
        ADM N
        STM S
        INC N //一つ加える
        DEC C
        JNZ L
        HLT //終了命令
      C:0   //回数を記憶
      N:0   //加える数
      S:0   //合計を記録
       
        

      int main(){
      int  N=0;
      int   S=0;
      int   C=10;
      L:S=S+N;
        N++;
        C--;
        if(C != 0) goto L;
        return S;
      }
    2. 大きい数


        LDI 5
        STM A
        LDI 6
        STM B
        SBM A
        JPM L
        LDM B
        STM M
      L:LDM A
        SYM M
        HLT
      A:0 //A の番地
      B:0 //B の番地
      M:0 //M 大きい数

      int main(){
       int A=5;
       int B=6;
       int M=0;
       if (A>B) goto L;
       M=B;
       goto N;
      L:M=A;
      N:return M;
      }