如果用一條指令實現計算機的所有功能,那麼是那哪條?又為什麼呢?

時間 2021-05-14 10:34:57

1樓:lowxiong

其實計算機的所有功能概括來講就是:接受輸入-內部處理-得到輸出,所以從面上講,你給計算機任何指令,都實現了計算機的所有功能。好多答主侷限在cpu的功能實現上,cpu的主要作用是運算和資料轉移以及條件跳轉,因此我覺得在8086指令loop好像實現了所有功能:

既有間址定址運算,又有資料從儲存器到暫存器,最後還有跳轉執行。

2樓:AlexGuo1998

從另一種方向看問題。

如果有一條指令能實現計算機的所有功能(換句話說,完成其它指令的功能),那這和把現在電腦裡的所有指令「視為」這個指令的乙個引數有什麼區別呢?

3樓:nyycbd

4樓:肖特基

addjz dest, src, rel

展開為:

memory[dest] += memory[src];

if(!memory[dest])

goto rel;

這樣可以完全實現圖靈機的功能:讀入狀態-執行程式-寫回結果-取下指令。

至於這樣的ISA如何實現AND/OR/NOT/NOR/NAND這些邏輯運算嘛,用多條指令拼湊就可以了。用加法和條件跳轉也可以拼出所有這些邏輯~

把add換成sub/nand/xor都可以。只要保證能跳就行。

5樓:Jin Dwight

瀉藥。。。

NAND指令。

NAND和NOR可以互相轉換。單端拉高NAND可以作為NOT,NOT+NOR可以作為OR。多個NAND組合還可以產生XOR。

這樣就有了所有基本位操作指令。然後再組合就有了所有運算指令。

首先:NAND(A,1)=NOT(A)

NOT(NAND(A,B)=AND(A,B)

NOR(A,B)= NAND ((( NAND (NAND(A,A),(NAND(b,b)),(NAND(NAND(A,A),(NAND(B,B))))

XOR/XNOR懶得打了

所以:Switch a

Case c

D=1Case b

D=0D=And(XNOR (a,c),1)+and(xnor(a,b),0)

If a=b

D=1D=and(XNOR(A,B),1)

迴圈的話拆散了,改成乙個n項式,每一項都是combinational logic

有啥不能實現的?

為什麼計算機算一條除法指令的耗時低於移位運算的耗時?

這樣測試指令耗時要排除的問題很多,編譯器優化 獲取時間的精度 執行緒切換等等都是要排除的問題。正確的方法是直接在CPU的文件和資料裡找,例如Intel的可以看 Intel 64 and IA 32 Architectures Software Developer s Manual 或者用下面的鏈結。...

怎麼理解從一條「0,1」紙帶到今天的計算機?

羅瀟 推薦一本書,編碼隱匿在計算機軟硬體背後的語言 科普性質但並不淺薄,挺有趣的。簡單的說兩個最重要的部分,一是表達資料。資料,涉及到編碼,utf8,ansi,gbk之類。舉個例子,摩斯碼,用長按短按來表達不同的字元。這樣,只要物理儲存裝置做出來,就可以儲存資訊了。姑且把儲存位置叫做記憶體,我們講記...

如果出現一種實用的新型計算機(未來計算機,比如基於憶阻器的),那麼需要學習新的程式語言麼?

憶阻器作為統一儲存的計算機體系確實是量子計算機普及之前的明星,想想看現有的計算體系裡,資料都是拷貝來拷貝去,浪費計算機資源,而且速度還不一樣,那就會有等待影響計算。如果用憶阻器做為統一儲存,要重新開發計算機核心,那麼計算機就不用電來維持資料,電腦可以隨時開關不丟失計算,而且計算資料時不用載入記憶體再...