开心六月综合激情婷婷|欧美精品成人动漫二区|国产中文字幕综合色|亚洲人在线成视频

    1. 
      
        <b id="zqfy3"><legend id="zqfy3"><fieldset id="zqfy3"></fieldset></legend></b>
          <ul id="zqfy3"></ul>
          <blockquote id="zqfy3"><strong id="zqfy3"><dfn id="zqfy3"></dfn></strong></blockquote>
          <blockquote id="zqfy3"><legend id="zqfy3"></legend></blockquote>
          打開APP
          userphoto
          未登錄

          開通VIP,暢享免費電子書等14項超值服

          開通VIP
          我自己造的計算機我做主
          姜詠江
          我在2006年自己造的計算機,是從器件設計開始,設計制造的有52條指令的計算機(見圖)。別小瞧它!這可是一臺通用計算機,只不過是運行在二進制層面上的。所以只有相當水平的計算機專業(yè)人士才可以認可它。
          這是一個8位的計算機,內(nèi)有求255以內(nèi)自然數(shù)階乘的程序。255的階乘結果有多大?告訴你,有210個字節(jié)!這個計算機能夠絲毫不差的將結果算出來,而且能夠用走馬燈和液晶屏顯示給你看。這個計算機的指令系統(tǒng)在后面,為了用戶能夠方便地使用這臺計算機,我還專門設計了編輯編譯軟件。不過這臺計算機的存儲器太小,編輯編譯的工作還得在你手頭的電腦上完成。不過這絲毫不會降低你深入理解計算機的核心。當你手動開關和按鈕,將編譯好的二進制程序送入這臺計算機,并且很快就會得到結果的時候,一定會很興奮。我當時的興奮勁兒,你也許能夠理解,因為這是我自己制造的計算機。
          一晃,十年的時間過去了。利用這臺計算機的硬件,我當時還制造了動態(tài)計算機PMC362。針對動態(tài)計算機的設計,當時我還申請了國家專利,然而。。。
          除了每年我給20多個研究生講自己如何制造計算機,或者有一些讀了我的《自己設計制作CPU與單片機》一書的人,中國的計算機業(yè)界卻是無動于衷,大家的眼睛總是盯著西方的高人嘛,因而我想推廣動態(tài)計算機的設計在國內(nèi)十分艱難。不過國外倒是有人找過我,告訴我,我的專利已經(jīng)失效等,讓我明白了權利。不論如何,研究給我?guī)淼呐d趣,遠遠超過了其它。自娛自樂是每個科研人獨享的樂趣不是?
          我設計制造的這臺計算機用于研究生或者本科生教學最好不過,因為通過它,你可以從無到有,從硬件到軟件,系統(tǒng)地學習和掌握計算機的全部理論知識?,F(xiàn)在大學計算機專業(yè)的教學課程設置實在是不敢恭維,最重要是缺乏系統(tǒng)性,將一些完全可以在使用中自學的東西拿到大學課堂上講,實在是浪費學生的生命!一句話,中國的大學缺少真正的計算機科學教育家。我在十年前這樣說過,現(xiàn)在還這樣說。沒有自己設計制造過計算機的人,成不了真正的計算機專家。
          計算機科學是一個非常系統(tǒng)的體系,它和計算機應用是截然不同目標的東西。將計算機應用做為計算機專業(yè)的主要內(nèi)容,真不知道那些專家們是如何考慮的。中國要成為世界強國,實現(xiàn)中華民族偉大復興,在計算機科學最核心的領域不能走在前面,不去造就一大批未來的人才,在如此信息化的人類時代,恐怕成為空談是有可能的。
          說遠了。還是勸有心人,自己去制造一臺計算機試試,你的收獲會無比的大。
          檢驗程序運行的例子
          call 乘積子程序地址;call 自然數(shù)和子程序地址;call轉(zhuǎn)十進制子程序地址;call 階乘子程序地址。
          它們對應的具體輸入是:88 300E 80 (調(diào)用8位無符號整數(shù)乘積);88 70 0F 80 (調(diào)用小于22的自然數(shù)和程序);88 92 3F 80 (調(diào)用將8位正十六進制數(shù)化成十進制數(shù)程序(液晶版));88 60 0E 80(調(diào)用255以內(nèi)階乘,階乘結果的最后2位是十六進制數(shù)是字節(jié)數(shù))?!?8’是call的編碼,后面十六進制的16位地址輸入時低字節(jié)在前,高字節(jié)在后,‘80’是程序輸入結束代碼。
          表1  PMC教學計算機指令集
          序號
          功能設想
          英文助記符
          操作碼
          次數(shù)
          操作碼
          (2進制)
          1
          把R數(shù)據(jù)存儲單元內(nèi)容送到累加器da
          LDA  R
          81
          3
          10000001
          2
          數(shù)據(jù)存儲單元R的內(nèi)容與累加器da的內(nèi)容相加結果送da
          ADD  R
          82
          3
          10000010
          3
          用累加器da的內(nèi)容減去數(shù)據(jù)存儲單元R的內(nèi)容結果送da
          SUB  R
          83
          3
          10000011
          4
          將R存儲單元內(nèi)容輸出
          OUT  R
          84
          3
          10000100
          5
          跳到程序存儲器的R單元取指令執(zhí)行
          JMP  R
          85
          3
          10000101
          6
          如果累加器da的值是0則跳到程序存儲器的R單元取指令
          JZ   R
          86
          3
          10000110
          7
          如果累加器da的值為負則跳到程序存儲器的R單元取指令
          JN   R
          87
          3
          10000111
          8
          調(diào)子程序
          CALL R
          88
          3
          10001000
          9
          輸入數(shù)據(jù)到數(shù)據(jù)存儲器的R存儲單元
          IN   R
          89
          3
          10001001
          10
          將累加器da的內(nèi)容送到數(shù)據(jù)存儲器存儲單元R
          STR  R
          8A
          3
          10001010
          11
          將數(shù)N送到累加器da
          SDA  N
          8B
          2
          10001011
          12
          將累加器da的內(nèi)容入棧
          PUSH
          4C
          1
          01001100
          13
          將堆棧的內(nèi)容送到累加器da
          POP
          4D
          1
          01001101
          14
          從子程序返回指令
          RET
          4E
          1
          01001110
          15
          將PTR的內(nèi)容加1
          INC
          4F
          1
          01001111
          16
          將PTR的內(nèi)容減1
          DEC
          50
          1
          01010000
          17
          將累加器da的內(nèi)容送x寄存器
          DATX
          51
          1
          01010001
          18
          將累加器da的內(nèi)容送y寄存器
          DATY
          52
          1
          01010010
          19
          將寄存器x、y的內(nèi)容互換
          XCHY
          53
          1
          01010011
          20
          x的內(nèi)容送da
          XTDA
          54
          1
          01010100
          21
          y的內(nèi)容送da
          YTDA
          55
          1
          01010101
          22
          將累加器da的內(nèi)容送到ptr低8位
          DALP
          56
          1
          01010110
          23
          將ptr的低8位內(nèi)容送到累加器da
          PLDA
          57
          1
          01010111
          24
          將累加器da復位為0
          ZERO
          58
          1
          01011000
          25
          將數(shù)據(jù)輸入到ptr指示的程序存儲單元
          INP
          59
          1
          01011001
          26
          如果除數(shù)為0則跳轉(zhuǎn)到程序的R單元指令執(zhí)行
          JERR R
          9A
          3
          10011010
          27
          如果輸入的數(shù)據(jù)是h80則跳轉(zhuǎn)到程序的R單元指令執(zhí)行
          JEND R
          9B
          3
          10011011
          28
          左移一位是1跳轉(zhuǎn)到R單元指令執(zhí)行
          JL   R
          9C
          3
          10011100
          29
          右移一位是1跳轉(zhuǎn)到R單元指令執(zhí)行
          JR   R
          9D
          3
          10011101
          30
          輸入緩沖區(qū)空暫停
          STPK
          5E
          1
          01011110
          31
          求da值的按位邏輯非,結果在da
          LNOT
          5F
          1
          01011111
          32
          Da與R存儲單元的邏輯與放入da
          LAND R
          A0
          3
          10100000
          33
          Da與R存儲單元的邏輯或放入da
          LOR  R
          A1
          3
          10100001
          34
          Da與存儲單元R的邏輯異或放入da
          LXOR R
          A2
          3
          10100010
          35
          將da左移一位送x,da不變
          SHL
          63
          1
          01100011
          36
          將da右移一位送x,da不變
          SHR
          64
          1
          01100100
          37
          執(zhí)行下一條指令
          NOP
          65
          1
          01100101
          38
          將累加器da的內(nèi)容送到指針ptr高8位
          DAHP
          66
          1
          01100110
          39
          將指針ptr的高8位內(nèi)容送到累加器da
          PHDA
          67
          1
          01100111
          40
          輸入數(shù)據(jù)送到ptr指示的數(shù)據(jù)存儲單元
          INPD
          68
          1
          01101000
          41
          將da的值送到ptr指示單元
          DAPD
          69
          1
          01101001
          42
          將ptr指示單元內(nèi)容送da
          DPDA
          6A
          1
          01101010
          43
          有符號da與R單元相乘,結果低字節(jié)送da,高字節(jié)送x
          MULS R
          AB
          3
          10101011
          44
          累加器da與R單元相除,商送da,余數(shù)送x
          DIVI R
          AC
          3
          10101100
          45
          累加器da與R單元帶進位加,結果送da,進位保留
          ADDC R
          AD
          3
          10101101
          46
          累加器da與R單元帶進位減,結果送da,進位保留
          SUBC R
          AE
          3
          10101110
          47
          無符號da與R單元相乘,結果低字節(jié)送da,高字節(jié)送x
          MULT R
          AF
          3
          10101111
          48
          無符號da×R+x,本位結果送da,進位字節(jié)送x
          MADD R
          B0
          3
          10110000
          49
          進位為1跳轉(zhuǎn)
          JCRY R
          B1
          3
          10110001
          50
          清除進位
          NCTY
          B2
          1
          10110010
          51
          停止程序執(zhí)行
          STP
          7F
          1
          01111111
          52
          程序輸入結束
          END
          80
          1
          10000000
          本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊舉報。
          打開APP,閱讀全文并永久保存 查看更多類似文章
          猜你喜歡
          類似文章
          CH04 MARIE:簡單計算機模型
          第6章中央處理器(1)
          系統(tǒng)集10
          匯編和反匯編
          單片機入門
          國產(chǎn)老計算機(三):DJS-110
          更多類似文章 >>
          生活服務
          分享 收藏 導長圖 關注 下載文章
          綁定賬號成功
          后續(xù)可登錄賬號暢享VIP特權!
          如果VIP功能使用有故障,
          可點擊這里聯(lián)系客服!

          聯(lián)系客服