機(jī)器語(yǔ)言
目錄
1.什么是機(jī)器語(yǔ)言[1]
機(jī)器語(yǔ)言是指計(jì)算機(jī)硬件能夠直接識(shí)別的指令的集合,是最早出現(xiàn)的計(jì)算機(jī)語(yǔ)言。機(jī)器語(yǔ)言從屬于硬件設(shè)備。不同的計(jì)算機(jī)設(shè)備有不同的機(jī)器語(yǔ)言.所以機(jī)器語(yǔ)言是一種面向機(jī)器的語(yǔ)言。
2.機(jī)器語(yǔ)言的特點(diǎn)[2]
計(jì)算機(jī)指令系統(tǒng)中的指令是由“0”和“1”兩種符號(hào)組成的代碼,并且能被機(jī)器直接理解執(zhí)行,它們被稱為機(jī)器指令。一個(gè)計(jì)算機(jī)的機(jī)器指令的集,就構(gòu)成了該計(jì)算機(jī)的機(jī)器語(yǔ)言,即計(jì)算機(jī)可以直接接受、理解的語(yǔ)言。
3.機(jī)器語(yǔ)言的優(yōu)點(diǎn)[2]
1、能利用機(jī)器指令精準(zhǔn)地描述算法,且編程質(zhì)量高。
2、所占存儲(chǔ)空間小。
3、執(zhí)行速度快。
4.機(jī)器語(yǔ)言的缺點(diǎn)[2]
1、難記、難讀、難修改。
用機(jī)器語(yǔ)言編寫程序時(shí),要記住每一條“0”和“l(fā)”代碼串所表示的指令及功能,寫出全部用“0”和“1”代碼串組成的程序。這種程序直觀性很差,容易出錯(cuò),閱讀檢查和修改調(diào)試非常困難。
2、需要人工分配內(nèi)存。
使用機(jī)器語(yǔ)言編寫程序時(shí),需要指明存儲(chǔ)器中哪些單元存放程序,哪些單元存放數(shù)據(jù),對(duì)系統(tǒng)不熟悉的用戶很難編寫程序。
3、程序通用性差。
由于不同類型計(jì)算機(jī)的指令系統(tǒng)不同,機(jī)器語(yǔ)言也不同。如果把用mM-Pc機(jī)器語(yǔ)言編制的程序直接拿到其他計(jì)算機(jī)上,就無(wú)法運(yùn)行出需要的結(jié)果。因此,機(jī)器語(yǔ)言是一種面向機(jī)器的低級(jí)語(yǔ)言。
5.機(jī)器語(yǔ)言的指令格式[3]
機(jī)器語(yǔ)言指令是一種二進(jìn)制代碼,由操作碼和操作數(shù)兩部分組成。操作碼規(guī)定了指令的操作,是指令中的關(guān)鍵字,不能缺省。操作數(shù)表示該指令的操作對(duì)象。
MCS一51系列單片機(jī)的指令,按指令長(zhǎng)度可分為單字節(jié)指令,雙字節(jié)指令和三字節(jié)指令三種,分別占用1—3個(gè)存儲(chǔ)單元。機(jī)器指令的格式如圖1-1所示,圖中N表示地址。
圖1-1 不同長(zhǎng)度的指令
1、單字節(jié)指令
操作碼本身就隱含了操作數(shù)的信息,不需再加操作數(shù)。
例如,匯編語(yǔ)言指令
其中rrr=000~111,指出選用的工作寄存器Rn(n=0~7)。
2、雙字節(jié)指令
首字節(jié)為操作碼,第二個(gè)字節(jié)為操作數(shù)或操作數(shù)地址。
例如,匯編語(yǔ)言指令
其中,第一個(gè)字節(jié)表示操作碼以及目的操作數(shù)Rn,第二個(gè)字節(jié)表示源操作數(shù)direct。
3、三字節(jié)指令
首字節(jié)為操作碼,后兩個(gè)字節(jié)為操作數(shù)或操作數(shù)地址。
例如,匯編語(yǔ)言指令
又如,匯編語(yǔ)言指令