單片機匯編語言詳解
數(shù)制的概念
數(shù)制是人們利用符號進行計數(shù)的科學(xué)方法。數(shù)制有很多種,在計算機中常用的數(shù)制有:十進制,二進制和十六進制。
數(shù)制也稱計數(shù)制,是指用一組固定的符號和統(tǒng)一的規(guī)則來表示數(shù)值的方法。計算機是信息處理的工具,任何信息必須轉(zhuǎn)換成二進制形式數(shù)據(jù)后才能由計算機進行處理,存儲和傳輸。十進制數(shù)(Decimal)
人們通常使用的是十進制。它的特點有兩個:有0,1,2….9十個基本數(shù)字組成,十進制數(shù)運算是按“逢十進一”的規(guī)則進行的. 在計算機中,除了十進制數(shù)外,經(jīng)常使用的數(shù)制還有二進制數(shù)和十六進制數(shù).在運算中它們分別遵循的是逢二進一和逢十六進一的法則.二進制數(shù)(Binary)
二進制數(shù)有兩個特點:它由兩個基本數(shù)字0,1組成,二進制數(shù)運算規(guī)律是逢二進一。 為區(qū)別于其它進制數(shù),二進制數(shù)的書寫通常在數(shù)的右下方注上基數(shù)2,或加后面加B表示。 例如:二進制數(shù)10110011可以寫成(10110011)2,或?qū)懗?0110011B,對于十進制數(shù)可以不加注.計算機中的數(shù)據(jù)均采用二進制數(shù)表示,這是因為二進制數(shù)具有以下特點: 1) 二進制數(shù)中只有兩個字符0和1,表示具有兩個不同穩(wěn)定狀態(tài)的元器件。例如,電路中有,無電流,有電流用1表示,無電流用0表示。類似的還比如電路中電壓的高,低,晶體管的導(dǎo)通和截止等。 2) 二進制數(shù)運算簡單,大大簡化了計算中運算部件的結(jié)構(gòu)。 二進制數(shù)的加法和乘法運算如下: 0+0=0 0+1=1+0=1 1+1=10 0×0=0 0×1=1×0=0 1×1=1八進制數(shù)(Octal)
由于二進制數(shù)據(jù)的基R較小,所以二進制數(shù)據(jù)的書寫和閱讀不方便,為此,在小型機中引入了八進制。八進制的基R=8=2^3,有數(shù)碼0、1、2、3、4、5、6、7,并且每個數(shù)碼正好對應(yīng)三位二進制數(shù),所以八進制能很好地反映二進制。八進制用下標8或數(shù)據(jù)后面加Q表示 例如:二進制數(shù)據(jù) ( 11 101 010 . 010 110 100 )2 對應(yīng) 八進制數(shù)據(jù) ( 3 5 2 . 2 6 4 )8或352.264Q.十六進制數(shù)(Hex)
由于二進制數(shù)在使用中位數(shù)太長,不容易記憶,所以又提出了十六進制數(shù) 十六進制數(shù)有兩個基本特點:它由十六個字符0~9以及A,B,C,D,E,F(xiàn)組成(它們分別表示十進制數(shù)10~15),十六進制數(shù)運算規(guī)律是逢十六進一,即基R=16=2^4,通常在表示時用尾部標志H或下標16以示區(qū)別。 例如:十六進制數(shù)4AC8可寫成(4AC8)16,或?qū)懗?AC8H。數(shù)的位權(quán)概念
對于形式化的進制表示,我們可以從0開始,對數(shù)字的各個數(shù)位進行編號,即個位起往左依次為編號0,1,2,……;對稱的,從小數(shù)點后的數(shù)位則是-1,-2,…… 進行進制轉(zhuǎn)換時,我們不妨設(shè)源進制(轉(zhuǎn)換前所用進制)的基為R1,目標進制(轉(zhuǎn)換后所用進制)的基為R2,原數(shù)值的表示按數(shù)位為AnA(n-1)……A2A1A0.A-1A-2……,R1在R2中的表示為R,則有(AnA(n-1)……A2A1A0.A-1A-2……)R1=(An*R^n+A(n-1)*R^(n-1)+……+A2*R^2+A1*R^1+A0*R^0+A-1*R^(-1)+A-2*R^(-2))R2 ?。ㄓ捎诖颂幉豢蛇x擇字體,說明如下:An,A2,A-1等符號中,n,2,-1等均應(yīng)改為下標,而上標的冪次均用^作為前綴) 舉例: 一個十進制數(shù)110,其中百位上的1表示1個10^2,既100,十位的1表示1個10^1,即10,個位的0表示0個100,即0。 一個二進制數(shù)110,其中高位的1表示1個2^2,即4,低位的1表示1個2^1,即2,最低位的0表示0個2^0,即0。 一個十六進制數(shù)110,其中高位的1表示1個16^2,即256,低位的1表示1個16^1,即16,最低位的0表示0個16^0,即0。 可見,在數(shù)制中,各位數(shù)字所表示值的大小不僅與該數(shù)字本身的大小有關(guān),還與該數(shù)字所在的位置有關(guān),我們稱這關(guān)系為數(shù)的位權(quán)。 十進制數(shù)的位權(quán)是以10為底的冪,二進制數(shù)的位權(quán)是以2為底的冪,十六進制數(shù)的位權(quán)是以16為底的冪。數(shù)位由高向低,以降冪的方式排列。進數(shù)制之間的轉(zhuǎn)換
1.二進制數(shù)、十六進制數(shù)轉(zhuǎn)換為十進制數(shù)(按權(quán)求和) 二進制數(shù)、十六進制數(shù)轉(zhuǎn)換為十進制數(shù)的規(guī)律是相同的。把二進制數(shù)(或十六進制數(shù))按位權(quán)形式展開多項式和的形式,求其最后的和,就是其對應(yīng)的十進制數(shù)——簡稱“按權(quán)求和”. 例如:把(1001.01)2轉(zhuǎn)換為十進制數(shù)。 解:(1001.01)2 =1*8+4*0+2*0+1*1+0*(1/2)+1*(1/4) =8+0+0+1+0+0.25 =9.25 把(38A.11)16轉(zhuǎn)換為十進制數(shù) 解:(38A.11)16 =3×16的2次方+8×16的1次方+10×16的0次方+1×16的-1次方+1×16的-2次方 =768+128+10+0.0625+0.0039 =906.0664 2.十進制數(shù)轉(zhuǎn)換為二進制數(shù),十六進制數(shù)(除2/16取余法) 整數(shù)轉(zhuǎn)換.一個十進制整數(shù)轉(zhuǎn)換為二進制整數(shù)通常采用除二取余法,即用2連續(xù)除十進制數(shù),直到商為0,逆序排列余數(shù)即可得到――簡稱除二取余法. 例:將25轉(zhuǎn)換為二進制數(shù) 解:25÷2=12 余數(shù)1 12÷2=6 余數(shù)0 6÷2=3 余數(shù)0 3÷2=1 余數(shù)1 1÷2=0 余數(shù)1 所以25=(11001)2 同理,把十進制數(shù)轉(zhuǎn)換為十六進制數(shù)時,將基數(shù)2轉(zhuǎn)換成16就可以了. 例:將25轉(zhuǎn)換為十六進制數(shù) 解:25÷16=1 余數(shù)9 1÷16=0 余數(shù)1 所以25=(19)16 3.二進制數(shù)與十六進制數(shù)之間的轉(zhuǎn)換 由于4位二進制數(shù)恰好有16個組合狀態(tài),即1位十六進制數(shù)與4位二進制數(shù)是一一對應(yīng)的.所以,十六進制數(shù)與二進制數(shù)的轉(zhuǎn)換是十分簡單的. (1)十六進制數(shù)轉(zhuǎn)換成二進制數(shù),只要將每一位十六進制數(shù)用對應(yīng)的4位二進制數(shù)替代即可――簡稱位分四位. 例:將(4AF8B)16轉(zhuǎn)換為二進制數(shù). 解: 4 A F 8 B 0100 1010 1111 1000 1011 所以(4AF8B)16=(1001010111110001011)2 (2)二進制數(shù)轉(zhuǎn)換為十六進制數(shù),分別向左,向右每四位一組,依次寫出每組4位二進制數(shù)所對應(yīng)的十六進制數(shù)――簡稱四位合一位. 例:將二進制數(shù)(000111010110)2轉(zhuǎn)換為十六進制數(shù). 解: 0001 1101 0110 1 D 6 所以(111010110)2=(1D6)16 轉(zhuǎn)換時注意最后一組不足4位時必須加0補齊4位數(shù)制轉(zhuǎn)換的一般化
1)R進制轉(zhuǎn)換成十進制 任意R進制數(shù)據(jù)按權(quán)展開、相加即可得十進制數(shù)據(jù)。 例如:N = 1101.0101B = 1*2^3+1*2^2+0*21+1*2^0+0*2^-1+1*2^-2+0*2^-3+1*2^-4 = 8+4+0+1+0+0.25+0+0.0625 = 13.3125 N = 5A.8 H = 5*161+A*160+8*16-1 = 80+10+0.5 = 90.5 2)十進制轉(zhuǎn)換R 進制 十進制數(shù)轉(zhuǎn)換成R 進制數(shù),須將整數(shù)部分和小數(shù)部分分別轉(zhuǎn)換. 1.整數(shù)轉(zhuǎn)換----除R 取余法 規(guī)則:(1)用R 去除給出的十進制數(shù)的整數(shù)部分,取其余數(shù)作為轉(zhuǎn)換后的R 進制數(shù)據(jù)的整數(shù)部分最低位數(shù)字; (2)再用2去除所得的商,取其余數(shù)作為轉(zhuǎn)換后的R 進制數(shù)據(jù)的高一位數(shù)字; (3)重復(fù)執(zhí)行(2)操作,一直到商為0結(jié)束。 例如: 115 轉(zhuǎn)換成 Binary數(shù)據(jù)和Hexadecimal數(shù)據(jù) (圖2-4) 所以 115 = 1110011 B = 73 H 2.小數(shù)轉(zhuǎn)換-----乘R 取整法 規(guī)則:(1)用R 去除給出的十進制數(shù)的小數(shù)部分,取乘積的整數(shù)部分作為轉(zhuǎn)換后R 進制小數(shù)點后第一位數(shù)字; (2)再用R 去乘上一步乘積的小數(shù)部分,然后取新乘積的整數(shù)部分作為轉(zhuǎn)換后R 進制小數(shù)的低一位數(shù)字; (3)重復(fù)(2)操作,一直到乘積為0,或已得到要求精度數(shù)位為止。單片機相關(guān)文章:單片機教程
單片機相關(guān)文章:單片機視頻教程
單片機相關(guān)文章:單片機工作原理
評論