|
1、所有的單片機包括計算機的CPU,都得只認識機器碼(0和1的二進制串)。!這是學(xué)計算機必須認知的基礎(chǔ)。
2、單片機的每條指令的機器碼串是不便理解的,例如:“00010100”它是什么意思呢?
在51系統(tǒng)中,它是將A寄存器減1,于是就用一句宜懂的:“DEC A”語句代替“00010100”,“DEC A”就是一句匯編語言。
3、匯編語言的特點是,每一句都對應(yīng)一個或一串機器碼!
4、由于計算機只認識機器碼,并不認識匯編語言,所以程序運行前,需要有“人”做翻譯,翻譯成機器碼,這就叫著匯編。
由于匯編語言的每一句都對應(yīng)一個或一串機器碼!所以匯編的翻譯很方便。
這個做翻譯的“人”當(dāng)然讓一個平臺(程序)來完成了,如:KELL!
5、如果“平臺”僅僅只做一個對應(yīng),也就太簡單了,查個對應(yīng)表就可以了,傻子也能行。
人們在寫匯編程序時也總有一些更高級的想法。例如:程序中20個地方會用到“45”這個參數(shù),但有也可能需將它改為“33”,
這對匯編來說很麻煩,要改20個地方。考慮到“平臺”這個翻譯功能很強大,于是就讓“平臺”來干這個活,但你總要告訴平臺你的意圖吧。
你是想用:XYZ來代替20個“45”,于是寫程序時就將20處“45”寫成“XYZ”,再寫一句“XYZ EQU 45”來告訴“平臺”翻譯的時候所有的有“XYZ”的地方翻譯成“45”,
這樣如果你要將“45”改為“33”,你只要改一處地方就行了,就是“XYZ EQU 33”,余下的事讓“平臺”去做!
這個語句是違反匯編原則的,它不對應(yīng)任何一個機器碼,不能直接反匯編,但它很有用,是通過“平臺”起作用的。
這就是偽指令!偽指令是不能直接反匯編的,它是需要通過“平臺”來翻譯程序員的目的,它是針對“平臺”的。
所以,一條“偽指令”是什么意義,只有“平臺”這個翻譯知道,如果平臺是“KELL”就必須看“KELL”使用說明,這樣就能弄清楚“偽指令”的含義了!
記。核械、最終的目的都將程序員寫的程序,變成計算機所能認識的機器。
更有甚哉!為了發(fā)恢平臺的強大智能,將整段整段的匯編語言組合在一起,用一句話一個語句來表示,甚至都看不到匯編的影子了,這就是C語言。
更有高招!將整段整段的C組合在一起,用一句話來表示,這就是高級語言,如VB、JAVA等……。
但無如何,要使計算機能運行,翻譯成“機器碼”,這是根本! |
|