(此處留白...這裡似乎曾經有過什麼?!.......)
Z...Z...z...z.............
(先沈默三分鐘...再往下看...)
----
首先我們先來講處理器指令的主要作用...就是讓一些使用者可以透過指令的撰寫,來命令微處
理器來依循著我們所撰寫的指令,來完成我們所交付的命令或任務! --- 講起來很簡單喔!
所以,不管您是用簡簡單單的PIC 或8051 或甚至在個人電腦(PC)上寫程式,
都是會牽涉到所謂指令集的....只不過,因為個人電腦的資源充沛與系統龐大...,
所以大家比較不會留意到這麼低階的指令集而已。但原理也都是一樣的。
------
那一般微處理器要提供怎樣的指令才可以讓我們一般使用者用起來方便呢?!
這個就見仁見智了....以我們一般使用者來說:當然是越多越好了~(最好像C一樣豐富...)
但會牽涉到指令與指令之間的相互牽制問題...
譬如說:8051 中有個乘法指令 MUL AB ...因為這個指令會用到 A 與B的暫存器....
所以,當這個指令在執行時,您的A 和B就不能再被使用...
(當然微處理器的內部還有許多記憶體或硬體上的諸多限制),
而這些限制無形中會造成微處理器的執行速率無法提升...
簡單的講:就是微處理器裡面有許多動作都必須您等我、我等您...等來等去的問題...
而且,指令越多,相關解指令的邏輯電路也多...成本也會增加...
這個就是 CISC (複雜指令集)微處理器的宿命。
-----
針對以上所謂CISC 就有所謂的RISC (精簡指令集)的微處理器,
像Microchip 的 PIC 就是大家所熟悉的RISC 微處理器....
(但注意喔這個CISC 和RISC 來說跟所謂的常說的幾個T 處理器是指不同的東西喔!)
因為RISC 可以把一些指令所牽涉到的內部相關硬體會比較少,
所以,他相對的執行速率可以提升....甚至有些所謂平行處理能力也比較好...
但他的缺點就是:發展程式會比較痛苦...
譬如說:明明要判斷Acculmator ( 累加器,PIC 稱為W 暫存器)是否為零 ?!
對8051 來說就是 JZ 或JNZ 而已...但對PIC 來說就得先移動一下W 然後再判斷Zero 旗標 ..
但8051 的 JZ或JNZ 是兩個Cycle 指令耶...而PIC的大部分指令都是一個Cycle 的!
而且PIC 是4T 的... 一般標準的8051 是12 T 的!(就算是 Turbo 8051 也是4T..)
所以,人家 PIC 還是比較快.... 但程式要分成兩個指令寫...呵...呵....程式學起來就比較累...
不小心程式還會寫個『落落長』的...還會出Bug 給您解不完...
所以,經由上述的簡單的說明大概可以讓大家有個簡單的概念...
但您也不要來版主的部落格吐嘈說:人家都有所謂的 1T 的8051 或是說PIC 好、PIC 妙、PIC 呱呱叫!
..... 您愛用誰的微處理器 ,那是您家的事!
有些案子我用8051 ...有些案子PIC ...甚至偶偶用冷門的微處理器... 這不是很好嗎?!
-------------------------------------
所以,不管哪家的微處理器,大部分所支援的指令集分類上,也是大同小異的!
版主就把他分類如下:
* Data Transfer Instructions
* Arithmetic Operation Instructions
* Shift Operation Instructions
* Logic Operation Instructions
* Bit Operation Instructions
* Conditional Operation Instructions
* System Control Instructions
--- 至於您跟我說那些計時器啊~UART介面或是A/D ...這些東西,嚴格講他們還不算微處理器核心!
因為他們常常是這顆IC多一點A/D 或那顆少一點 SPI 介面而已!
------
在此還是先簡單的介紹一些微處理器指令上的基本概念 !
謝謝指教....(待續...)
沒有留言:
張貼留言