教材:80x86組合語言程式設計教程 楊季文、錢培德等編著 清華大學出版社
第一章 基礎知識
掌握的兩個要點:一是各進製的轉換,而是資料、非資料的表示和資料的型別
一、各進製的轉換
1、二進位制數和十六進製制數
在計算機裡,通常用數字後面跟乙個英文本母表示該數的數字
十進位制數一般用d,二進位制數用b,八進位制數用o,十六進製制數用h來表示,例如:1010b,1115d,058ah等
2,十六進製制數及其與二進位制、十進位制數之間的轉換
(1)十進位制數轉換為二進位制數或十六進製制數
用除以2或16取餘法
(2)二進位制數或十六進製制數轉換為十進位制數
各位二進位制數碼或十六進製制數碼乘以與其對應的權之和
<=權展開
例:11001b=1*2^4+1*2^3+0*2^2+0*2^1+1*2^0=25d
(3)十六進製制數和二進位制數之間的轉換
乙個二進位制數,把它從低位到高位每4位組成一組,直接用十六進製制數來表示
例:0011010110111111b轉換為十六進製制數
0011 0101 1011 1111
3 5 b f
所以轉換為十六進製制數的結果為 35bfh
二、資料的表示
計算機中儲存資訊的最小單位稱為 位 ,在絕大數系統中他只能表示兩種狀態,這兩種狀態分別代表0和1.
計算機系統內部採用二進位制表示數值資料,也採用二進位制編碼表示非數值資料和指令
1、數的補碼表示(有符號數)
把乙個數連同其符號在內 在機器中的表示加以數值化,這種數稱為 機器數
一般用最高有效位來表示數的符號: 正數用 0 表示,負數用 1 表示
機器數可以用不用的碼制來表示,常用的有原碼、補碼和反嗎表示法
補碼表示法中,正數採用符號+絕對值表示:
例:假設機器字長為8位,則[+1]補=00000001,[+127]補=01111111,[+0]補=00000000
當用補碼表示法來表示負數時:負數x用2^n-[x]表示,其中n為機器的字長
例:當n=8時,[-1]補=2^8-1=11111111,[-127]補=2^8-127=10000001
在補碼表示法中0只有一種表示,即00000000.
對於10000000這個數,在補碼表示法中被定義為-128
採用補碼形式表示的有符號數,那麼n位二進位制數能夠表示:有符號整數的範圍為: -2^(n-1)<=n<=+2^(n-1)-1
8位表示數的有符號整數的範圍為-128~+127即(10000000~01111111)
16位表示的有符號整數的範圍是: -32768~+32767
1'1補充----補碼
1,在計算機系統中,數值的一律用補碼表示(儲存):使用補碼,可以將符號位和其它位統一處理;同時,減法也可按加法來處理。另外,兩個用補碼表示的數相加時,如果符號位有進製,則進製被捨棄。
2,補碼與原碼的轉換過程幾乎是相同的:
求給定數值的補碼表示分以下兩種情況:
(1)正數的補碼:與原碼相同。
(2)負數的補碼:符號位為1,其餘位為該數絕對值的原碼按位取反;然後整個數加1
2,、無符號整數
在某些情況下,要處理的數全是正數,此時再保留符號位就沒意義了。
因此,n位二進位制數能夠表示的無符號整數的範圍是:0<=n<=2^n-1
8位無符號數表示的範圍是0<=n<=255
16位無符號數表示的範圍是0<=n<=65535
3,符號擴充套件
把n位二進位制數擴充套件成m為二進位制數(m>n)
當要擴充套件的數是無符號數時,只要在最高位前擴充套件(m-n)個0
如果要擴充套件的數是有符號數,並且採用補碼形式表示,進行符號擴充套件
例:-3的8位二進位制補碼和16位二進位制補碼如下:
11111101 8位
1111111111111101 16位
4,補碼的加法和減法
對於乙個正數的補碼表示 ,按位求反後再在末位加 1 ,可以得到與此正數相應的負數的補碼表示
把這種對乙個二進位制數按位求反後在末位加 1 的運算稱為 求補運算。
因此可以得到以下特性:
補碼的加法規則: [x+y]補=[x]補+[y]補
補碼的減法規則: [x-y]補=[x]補+[-y]補
例:用8位二進位制補碼計算:25+(-32)
25 00011001
+(-32) + 11100000
-7 11111001
三、非數值資料的表示
計算機除了處理數值資料外,還要處理大量的非數值資料,如文字資訊和圖表資訊等。為此必須對非數值資料進行編碼。這樣不僅計算機能夠方便地處理和儲存它們,而且還可以賦予它們數值資料的某些屬性
1、ascⅱ 碼
是目前國際上比較通用的字元二進位制編碼,微型計算機也普遍採用它作為字元的編碼。擴充套件的ascⅱ碼使用8位二進位制進行編碼,可以表示256個字元
例:鍵盤上的空格符16位ascⅱ碼表示是:20h
數字0的16位ascⅱ碼是:30h
英文小寫字母a的16位ascⅱ碼是:61h
英文大寫字母a的16位ascⅱ碼是:41h
2、變形國際碼
為使計算機能處理漢字資訊,就必須對漢字進行編碼
國際碼是16位編碼,高8位表示漢字元的區號,低8位表示漢字元的位號
變形的國際碼的第7位和第15位給賦值為1.
在國標碼上加8080h就形成了變形的國標碼
四、基本資料型別
計算機訪問的以二進位制表示的資訊位數一般是8的倍數,它們有如下專門的名稱:
1,、位元組
乙個位元組由8個二進位制位組成
位元組的最低位一般稱為第0位,最高位稱為第7位,如下: 7 6 5 4 3 2 1 0 <=乙個位元組
通常,硬體儲存器的每一儲存單元就由8個二進位制位組成,即可用於儲存乙個位元組的資訊
乙個位元組足以表示乙個ascⅱ字元,也可以表示乙個擴充套件的ascⅱ字元。
乙個位元組可分成2個4位的位組,稱為 半位元組
2、字2個位元組(即16個二進位制位)組成乙個字,字的最低位稱為0位,最高位稱為第15位。
字的低位稱為低位元組,高位稱為高位元組
3、雙字
雙字由2個字組成,即包含32個二進位制位
低16位稱為低字,高16位稱為高字
雙字能表示的資料的範圍更大
4,、四字
四字就是由四個字組成,包含64個二進位制位
5,、十字節
由10個位元組組成,含80個二進位制位,可用於儲存非常大的數或表示較多的資訊
6、字串
字串是指由字元構成的乙個線性陣列。通常每個字元用乙個位元組表示,有時每個字元也可以用乙個字或雙字來表示
彙編基礎知識
最近感覺自己學的到了乙個瓶頸,學的不知道有多少是記住的,總是感覺自己要學的東西有那麼多,時間又太少。專業課也越來越多,花在程式設計上的時間就少了,但是這畢竟是我的興趣愛好,所以我不想放棄。昨晚突然有個想法,以後寫部落格的頻率加快,儘管這樣部落格的質量也就下降了很多,但是我還是覺得部落格就是來記錄我成...
彙編 基礎知識
一 進製數的表示 十進位制後加d,二進位制後加b,八進位制加o,十六進製制加h 二 十進位制數轉換為二進位制數或十六進製制數 使用除2取餘法或使用除16取餘法,結果向上讀,如4,得餘數0 0 1,則相應二進位制為100,十六進製制數類似 三 二進位制數或十六進製制數轉換為十進位制數 使用權的展開式 ...
彙編基礎知識
1.si和di 功能和bx相似,只是不能分成2個8暫存器使用。2inc ax指令 將暫存器的內容加1 mov ax,0 inc ax 執行完畢ax 1 3.bx,si,di,bp暫存器 cpu的核心是暫存器,學習彙編這麼一段時間,我也深刻體會到對暫存器理解的重要性 1 在8086cpu中,只有這4個...