工程計算機 2_第1頁
工程計算機 2_第2頁
工程計算機 2_第3頁
工程計算機 2_第4頁
工程計算機 2_第5頁
已閱讀5頁,還剩50頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、2020/9/16,第1章 匯編語言基礎知識,1,序 言,匯編語言的特點 (1) 可直接控制硬件,充分發(fā)揮硬件功能。 (2) 匯編語言程序代碼質量高,占用內存空間 少,執(zhí)行速度快。 應用優(yōu)勢: 對于解決某些領域的問題,如操作系統(tǒng),實時控制和處理、加密/解密、軟件調試、病毒分析及逆向工程等領域具有獨特的優(yōu)勢。,2020/9/16,第1章 匯編語言基礎知識,2,在實際應用問題中,常常編寫匯編語言子程序,解決如下的問題: (1)進行計算速度或代碼長度優(yōu)化 (2)存取系統(tǒng)資源 (3)直接訪問硬件 (4)為不兼容的代碼(編程環(huán)境)提供接口 缺點:可移植性差、可讀性差。,2020/9/16,第1章 匯編語

2、言基礎知識,3,2 學習匯編語言的目標和要求 (1)掌握匯編語言程序設計的基本方法,為其他專業(yè)課奠定基礎(接口技術、組成原理、單片機等),深入理解計算機如何完成復雜操作和計算以及程序的執(zhí)行過程。 (2)培養(yǎng)自我拓展匯編語言新知識的能力,掌握扎實的軟件研制基本功。 學習要求: (1)預習+聽課+復習+動手 時間比:1+1+1+1 (2)按時完成上機作業(yè),2020/9/16,第1章 匯編語言基礎知識,4,參考教材: (1)IBM PC 匯編語言程序設計,沈美明等,清華大學出版社 (2)微機匯編語言基礎教程,許遠等,電子科技大出版社 (3)匯編語言程序設計, 錢曉捷等,電子工業(yè)出版社,2020/9/

3、16,第1章 匯編語言基礎知識,5,8086/8088和ARM核匯編語言程序設計,第1章 匯編語言基礎知識,2020/9/16,第1章 匯編語言基礎知識,6,1.1 匯編語言概述,1.2 進位計數制及其轉換,1.3 計算機中數和字符的表示方法,第1章 匯編語言基礎知識,2020/9/16,第1章 匯編語言基礎知識,7,自然語言是具有特定語音和語法等規(guī)范的、用于人類表達思想并實現相互交流的工具。人與人之間只有使用同一種語言才能進行直接交流,否則就必須通過翻譯。要使計算機為人類服務,人們就必須借助某種工具,告訴計算機“做什么”甚至“怎么做”,這種工具就是程序設計語言。 程序設計語言通常分為三類:機

4、器語言、匯編語言和高級語言。而前兩種語言與機器密切相關,統(tǒng)稱為低級語言。,1.1.1 匯編語言基本概念,1.1 匯編語言概述,2020/9/16,第1章 匯編語言基礎知識,8,計算機語言的發(fā)展,機器語言,FORTRAN BASIC COBOL PASCAL C/C+ JAVA .,1.1 匯編語言概述,1.1.1 匯編語言基本概念,2020/9/16,第1章 匯編語言基礎知識,9,計算機能夠直接識別的數據是由二進制數0和1組成的代碼。機器指令就是用二進制代碼組成的指令,一條機器指令控制計算機完成一個基本操作。 用機器語言編寫的程序是計算機惟一能夠直接識別并執(zhí)行的程序,而用其他語言編寫的程序必須

5、經過翻譯才能變換成機器語言程序,所以,機器語言程序被稱為目標程序。,機器語言,1.1 匯編語言概述,1.1.1 匯編語言基本概念,2020/9/16,第1章 匯編語言基礎知識,10,為了克服機器語言的缺點,人們采用助記符表示機器指令的操作碼,用變量代替操作數的存放地址等,這樣就形成了匯編語言。所以匯編語言是一種用符號書寫的、基本操作與機器指令相對應的、并遵循一定語法規(guī)則的計算機語言。 用匯編語言編寫的程序稱為匯編源程序。 匯編語言是一種符號語言,比機器語言容易理解和掌握,也容易調試和維護。但是,匯編語言源程序要翻譯成機器語言程序才可以由計算機執(zhí)行。這個翻譯的過程稱為“匯編”,這種把匯編源程序翻

6、譯成目標程序的語言加工程序稱為匯編程序。,匯編語言,1.1 匯編語言概述,1.1.1 匯編語言基本概念,2020/9/16,第1章 匯編語言基礎知識,11,例如,在8086機器下,分別用匯編語言和機器語言計算10+20的程序代碼如下: 匯編語言 機器語言 MOV AL,10 B0 0A ADD AL,20 04 14 顯然,使用匯編語言編寫的程序要比機器語言更容易理解,易編寫程序。,1.1 匯編語言概述,1.1.1 匯編語言基本概念,2020/9/16,第1章 匯編語言基礎知識,12,匯編語言雖然較機器語言直觀,但仍然煩瑣難懂。于是人們研制出了高級程序設計語言。高級程序設計語言接近于人類自然語

7、言的語法習慣,與計算機硬件無關,易被用戶掌握和使用。目前廣泛應用的高級語言有多種,如BASIC、FORTRAN、PASCAL、C、C+等等。,高級語言,1.1 匯編語言概述,1.1.1 匯編語言基本概念,2020/9/16,第1章 匯編語言基礎知識,13,面向機器的低級語言,通常是為特定的計算機或計算機系列專門設計的。 保持了機器語言的優(yōu)點,具有直接和簡捷的特點。 可有效地訪問、控制計算機的各種硬件設備, 如磁盤、存儲器、CPU、I/O端口等。 目標代碼簡短,占用內存少,執(zhí)行速度快, 是高效的程序設計語言。 經常與高級語言配合使用,應用十分廣泛。,1.1 匯編語言概述,1.1.2 匯編語言的特

8、點,2020/9/16,第1章 匯編語言基礎知識,14,#include stdafx.h #include stdio.h int main(int argc, char* argv) int a,b,c; a=1; b=2; c=a+b; printf(“c=%dn,c); return 0; ,編程實現 c =a+b,并在屏幕上顯示出結果。,編譯后的目標文件達到3.59KB,1.1 匯編語言概述,C 語言實現,1.1.2 匯編語言的特點,2020/9/16,第1章 匯編語言基礎知識,15,匯編 語言實現,匯編后的目標文件只有208字節(jié),data segment a db ? b db ?

9、 c db ? string db c=$ data ends code segment main proc far assume cs:code, ds:data, es:data start: push ds sub ax,ax push ax mov ax,data mov ds,ax mov es,ax,mov a,1 mov b,2 mov al,a add al,b mov c,al lea dx,string mov ah,09 int 21h add c,30h mov dl,c mov ah,2 int 21h mov dl,0ah int 21h mov dl,0dh in

10、t 21h ret main endp code ends end start,1.1 匯編語言概述,編程實現 c =a+b,并在屏幕上顯示出結果。,1.1.2 匯編語言的特點,2020/9/16,第1章 匯編語言基礎知識,16,建議: 充分注意“匯編”課實踐性強的特點, 多讀程序,多寫程序,多上機調試程序, 熟悉PC機的編程結構, 掌握匯編語言及其程序設計的基本概念、方法和技巧。,1.1 匯編語言概述,1.1.2 匯編語言的特點,2020/9/16,第1章 匯編語言基礎知識,17,1.1 匯編語言概述,1.2 進位計數制及其轉換,1.3 計算機中數和字符的表示方法,第1章 匯編語言基礎知識,

11、2020/9/16,第1章 匯編語言基礎知識,18,計算機內部的信息分為兩大類:控制信息和數據信息。控制信息是一系列的控制命令,用于指揮計算機如何操作;數據信息是計算機操作的對象,一般又可分為數值數據和非數值數據。 對計算機而言,不論是控制命令還是數據,它們都要用“0”和“1”兩個基本符號即基2碼來編碼表示,這是由于以下三個原因: (1)基2碼在物理上最容易實現。例如,用高、低兩個電位表示“1”和“0”,或用脈沖的有、無表示“1”和“0” 等等,可靠性都較高。 (2)基2碼用來表示二進制數,其編碼及加減運算規(guī)則簡單。 (3)基2碼的兩個符號“1”和“0”正好與邏輯數據“真”與“假”相對應,為計

12、算機實現邏輯運算帶來了方便。 因此,不論是什么信息,在輸入計算機內部時,都必須用基2碼編碼表示,以方便存儲、傳送和處理。,1.2 進位計數制及其轉換,2020/9/16,第1章 匯編語言基礎知識,19,預 備 知 識,存儲容量 1K = 1024 = 210 (Kilo) 1M = 1024K = 220 (Mega) 1G = 1024M = 230 (Giga) 1個二進制位:bit (比特) 8個二進制位:Byte (字節(jié)) 1Byte = 8bit 2個字節(jié): Word (字) 1Word = 2Byte = 16bit,1.2 進位計數制及其轉換,2020/9/16,第1章 匯編語言

13、基礎知識,20,1.2.1 數與數制,1數的表示,二進制: 基數為2,逢二進一 11012 = 12 3 + 12 2 + 12 0 = 1310 十六進制:基數為16,逢十六進一 1001, 0001, 1000, 0111 9 1 8 7 = 9 16 3 + 1 16 2 + 8 16 1 + 7 16 0,1.2 進位計數制及其轉換,2020/9/16,第1章 匯編語言基礎知識,21,任何進制的數都可用如下方法表示: N = Ki * ri 其中:Ki 是任一個數碼; ri是各位對應的權 r 是基數,1.2 進位計數制及其轉換,1.2.1 數與數制,2020/9/16,第1章 匯編語言

14、基礎知識,22,2計數制的書寫規(guī)則,為了區(qū)別不同的計數制,可采用下列兩種方法: (1)在數字后面加寫相應的英文字母作為標識,英文字母不分大小寫。本書約定采用大寫字母形式。 如:1100011B。B后綴表示為二進制數(Binary)。 2357O。O后綴表示為八進制數(Octal)。由于英文字母O容易和零誤會,所以也可以用Q來表示八進制。 1000D。D后綴表示為十進制數(Decimal)。 3AB5H。H后綴表示為十六進制數(Hexadecimal)。如果記數符號a,b,c,d,e,f打頭,頭部應加0,如0A8F5H;記數符號 a,b,c,d,e,f不區(qū)別大小寫,與ABCDEF等效。 缺省后綴

15、時,一般約定為十進制數。 (2)在括號外面加數字下標。 如:(1011)2 表示二進制數的1011 (2DF2)16表示十六進制數的2DF2,1.2 進位計數制及其轉換,1.2.1 數與數制,2020/9/16,第1章 匯編語言基礎知識,23,1.2.2 不同數制之間的轉換,1十進制數與二進制數之間的轉換,(1)十進制整數轉換成二進制整數 方法:除2取余法 注意:第一次得到的余數為二進制數的最低位,最后得到的余數為二進制數的最高位。,(2)十進制小數轉換成二進制小數 方法:乘2取整法 注意:最后將每次得到的整數部分(必定是0或1)按先后順序從左到右排列即得到所對應二進制小數。,1.2 進位計數

16、制及其轉換,2020/9/16,第1章 匯編語言基礎知識,24,例:117.8125D = 1110101.1101B,(3)一般的十進制數轉換成二進制數 為了將一個既有整數又有小數部分的十進制數轉換成二進制數,可以將其整數部分和小數部分分別進行轉換,然后再組合起來。,1.2 進位計數制及其轉換,1.2.2 不同數制之間的轉換,2020/9/16,第1章 匯編語言基礎知識,25,(4)二進制數轉換十進制數 方法:按位權展開后相加。 注意:用其各位所對應的系數,按“位權展開求和”的方法就可以得到,其基數為2。 例1.4 將(101.11)2轉換成十進制數。其過程如下: (101.11)2=122

17、+021+120+12-1+12-2 =4+0+1+0.5+0.25 =(5.75)10,1.2 進位計數制及其轉換,1.2.2 不同數制之間的轉換,2020/9/16,第1章 匯編語言基礎知識,26,(1)十進制整數轉換成八進制整數 方法:除8取余法 注意:采用基數8連續(xù)去除該十進制整數,直至商等于“0”為止,然后逆序排列所得到的余數。,(2)十進制小數轉換成八進制小數 方法:乘8取整法 注意:連續(xù)用基數8去乘以該十進制小數,直至乘積的小數部分等于“0”,然后順序排列每次乘積的整數部分。,(3)八進制數轉換成十進制數 方法:按位權展開后相加。 用其各位所對應的系數,按“位權展開求和”的方法就

18、可以得到,其基數為8。,1.2 進位計數制及其轉換,2. 十進制與八進制之間的轉換,1.2.2 不同數制之間的轉換,2020/9/16,第1章 匯編語言基礎知識,27,(1)十進制整數轉換成十六進制整數 方法:除16取余法 注意:采用基數16連續(xù)去除該十進制整數,直至商等于“0”為止,然后逆序排列所得到的余數。,例1.8 將十進制整數(2347)10轉換為十六進制整數,采用“除16倒取余”的方法,過程如下: 16 2347 余數為11, 即A0=B(十六進制數為B) 16 146 余數為2, 即A1=2 16 9 余數為9, 即A2=9 0 余數為0, 結束 最后結果為:(2347)10(A2

19、 A1 A0)16=(92B)16,1.2 進位計數制及其轉換,3. 十進制與十六進制之間的轉換,1.2.2 不同數制之間的轉換,2020/9/16,第1章 匯編語言基礎知識,28,(2)十進制小數轉換成十六進制小數 方法:乘16取整法 注意:連續(xù)用基數16去乘以該十進制小數,直至乘積的小數部分等于“0”,然后順序排列每次乘積的整數部分。 例1.9 將十進制小數0.6875轉換成十六進制小數。其過程如下: 0.6875 16 11.0000 整數部分為11,即A1=B 0.0000 余下的小數部分為0,結束 最后結果為:(0.6875)10=(0.A-1) 16=(0.B)16,1.2 進位計

20、數制及其轉換,1.2.2 不同數制之間的轉換,2020/9/16,第1章 匯編語言基礎知識,29,(3)十六進制數轉換十進制數 方法:按位權展開后相加 注意:用其各位所對應的系數,按“位權展開求和”的方法就可以得到,其基數為16。 BF3CH = 11163 +15162 +3161 +12160 = 48956D,1.2 進位計數制及其轉換,1.2.2 不同數制之間的轉換,2020/9/16,第1章 匯編語言基礎知識,30,因為:23=8,所以每三位二進制數對應一位八進制數; 24=16,所以每四位二進制數對應一位十六進制。,(1) 二進制數轉換成八進制數 從小數點所在位置分別向左向右每三位

21、一組進行劃分。若小數點左側的位數不是3的整數倍,在數的最左側補零;若小數點右側的位數不是3的整數倍,在數的最右側補零。然后參照表1.2,將每三位二進制數轉換成對應的一位八進制數,即為二進制數對應的八進制數。 例1.11 將(11010.11)2轉換為八進制數。其過程如下: 011 010. 110 3 2. 6 所以 (11110.11)2 =(32.6)8,1.2 進位計數制及其轉換,1.2.2 不同數制之間的轉換,4. 二進制與八進制、十六進制數之間的轉換,2020/9/16,第1章 匯編語言基礎知識,31,(2)八進制數轉換成二進制數 方法:參照表1.2,將每一位八進制數轉換成對應的三位

22、二進制數,即為八進制數對應的二進制數。 例1.12 將(34.6)8轉換為二進制數。其過程如下: 3 4. 6 011 100.110 所以 (34.6)8=(11100.11)2,1.2 進位計數制及其轉換,1.2.2 不同數制之間的轉換,2020/9/16,第1章 匯編語言基礎知識,32,0011 0101 1011 1111 3 5 B F 0011,0101,1011,1111B = 35BFH A 1 9 C 1010 0001 1001 1100 A19CH = 1010,0001,1001,1100B,(4) 十六進制數轉換成二進制數 方法:將每一位十六進制數轉換成對應的四位二進

23、制數,即為十六進制數對應的二進制數。,(3)二進制數轉換成十六進制數 從小數點所在位置分別向左向右每四位一組進行劃分。若小數點左側的位數不是4的整數倍,在數的最左側補零;若小數點右側的位數不是4的整數倍,在數的最右側補零,1.2 進位計數制及其轉換,1.2.2 不同數制之間的轉換,2020/9/16,第1章 匯編語言基礎知識,33,(5) 十六進制和二進制的相互轉換舉例,方法:對于二進制整數,只要從右到左每4位組成一組,不足4位最左邊補0,即可得到相應的十六進制。對于二進制小數,只要從左到右每4位組成一組,不足4位最右邊補0,即可得到相應的十六進制。 0 111 1101. 0101 11 0

24、 0 7 D 5 C (1111101.0101111)2 = (7D.5C)16 如果將十六進制轉成二進制數,只要每一位十六進制數用四位二進制數表示即可。,補0,補0,1.2 進位計數制及其轉換,1.2.2 不同數制之間的轉換,2020/9/16,第1章 匯編語言基礎知識,34,1.1 匯編語言概述,1.2 進位計數制及其轉換,1.3 計算機中數和字符的表示方法,第1章 匯編語言基礎知識,2020/9/16,第1章 匯編語言基礎知識,35,1.3 計算機中數和字符的表示方法,計算機中數值型數據是用二進制數來表示的,而非數值型數據包括英文字母、標點符號、專用符號、漢字等,也是用二進制數來編碼的

25、。,2020/9/16,第1章 匯編語言基礎知識,36,計算機中正負數的表示,7 6 5 4 3 2 1 0,符號位 數值位,假設機器字長為16位:,符號位 = 0 正數 數值位 = 1 負數,15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0,假設機器字長為8位:,H.O.Byte,L.O.Byte,1. 二進制數的編碼及運算,1.3.1 數值型數據的編碼,1.3 計算機中數和字符的表示方法,2020/9/16,第1章 匯編語言基礎知識,37,數的常用表示法 原碼 反碼 補碼 原碼表示法:符號 + 絕對值 例:n = 8bit +3原碼 = 0 000,0011 =

26、03H - 3原碼 = 1 000,0011 = 83H +0原碼 = 0 000,0000 = 00H - 0原碼 = 1 000,0000 = 80H 0 的表示不惟一 反碼表示法:正數的反碼同原碼,負數的反碼數值位與此負數原 碼數值位相反 例:n = 8bit +5反碼 = 0 000,0101 = 05H - 5反碼 = 1 111,1010 = FAH +0反碼 = 0 000,0000 = 00H - 0反碼 = 1 111,1111 = FFH 0 的表示不惟一,1.3 計算機中數和字符的表示方法,1.3.1 數值型數據的編碼,2020/9/16,第1章 匯編語言基礎知識,38,

27、補碼(Twos Complement)表示法: 正數的補碼: 同原碼 負數的補碼:(1)寫出與該負數相對應的正數的補碼 (2)按位求反 (3)末位加一,1.3 計算機中數和字符的表示方法,1.3.1 數值型數據的編碼,2020/9/16,第1章 匯編語言基礎知識,39,十進制 二進制 十六進制 十進制 十六進制 n=8 n=16 +127 0111 1111 7F +32767 7FFF +126 0111 1110 7E +32766 7FFE . . . +2 0000 0010 02 +2 0002 +1 0000 0001 01 +1 0001 0 0000 0000 00 0 000

28、0 -1 1111 1111 FF -1 FFFF -2 1111 1110 FE -2 FFFE . . . -126 1000 0010 82 -32766 8002 -127 1000 0001 81 -32767 8001 -128 1000 0000 80 -32768 8000,n位二進制補碼的表數范圍: - 2n-1 N 2n-1-1,無符號整數的表數范圍: 0 N 2n-1,1.3 計算機中數和字符的表示方法,1.3.1 數值型數據的編碼,2020/9/16,第1章 匯編語言基礎知識,40,補碼的加法和減法: 求補運算 :對一個二進制數按位求反、末位加一 求補 求補 X補碼 -

29、X補碼 X補碼 加法規(guī)則:X+Y補碼 = X補碼 + Y補碼 減法規(guī)則:X-Y補碼 = X補碼 + -Y補碼 補碼減法可轉換為補碼加法,64 (-46) 18,0100 0000 1101 0010 0001 0010,例:,1.3 計算機中數和字符的表示方法,1.3.1 數值型數據的編碼,2020/9/16,第1章 匯編語言基礎知識,41,進位和溢出 進位: 由于運算結果超出了位數,最高有效位向前的進位,這一位自然丟失,一般不表示結果的對錯。 溢出:表示結果超出了字長允許表示的范圍, 一般會造成結果出錯。 例: (64) 11000000 127 01111111 64 01000000 +

30、 1 00000001 0 1 00000000 128 10000000 進位 溢出,1.3 計算機中數和字符的表示方法,1.3.1 數值型數據的編碼,2020/9/16,第1章 匯編語言基礎知識,42,2. 無符號整數的編碼 在某些情況下,計算機要處理的數據全是正數,此時機器數再保留符號位就沒有意義了。這時,我們將機器數最高有效位也作為數值位處理,也就是說,假設機器字長為n位,則有符號整數的編碼格式如圖1.1所示。 1位 n-1位 圖1.1 有符號整數編碼格式,1.3 計算機中數和字符的表示方法,1.3.1 數值型數據的編碼,2020/9/16,第1章 匯編語言基礎知識,43,無符號整數的

31、編碼格式如圖1.2所示。 n位 圖1.2 無符號整數編碼格式 無符號整數的表示范圍為:0N2n 1。 例如,當n=8位時,表示范圍為:0N255; 當n=16位時,表示范圍為:0N65535。 在計算機中最常見的無符號整數是地址。另外,雙字長數據的低位字也是無符號整數。 要注意的是,計算機本身不論是對有符號數還是無符號數,總是按照補碼的運算規(guī)則做運算。,1.3 計算機中數和字符的表示方法,1.3.1 數值型數據的編碼,2020/9/16,第1章 匯編語言基礎知識,44,人們在日常生活中習慣使用十進制數,而在計算機內,采用二進制數表示和處理數據更方便。因此,在往計算機里輸入和輸出數據時,要進行十

32、二和二十的進制轉換。但是,在某些特定的應用領域中,如商業(yè)統(tǒng)計,數據的運算很簡單,但數據的輸入、輸出量很大,這樣,數制轉換所占的時間比例很大。從提高計算機的運行效率考慮,可以在計算機內部直接用十進制數表示和處理數據。以下介紹在計算機內部十進制數的編碼方法及運算方法。,1.3 計算機中數和字符的表示方法,1.3.1 數值型數據的編碼,3. 十進制數的編碼,2020/9/16,第1章 匯編語言基礎知識,45,BCD碼 BCD(Binary-Coded Decimal)碼又稱為“二十進制編碼”,專門解決用二進制數表示十進數的問題。最常用的是8421編碼,其方法是用4位二進制數表示1位十進制數,自左至右

33、每一位對應的位權是8、4、2、1。,1.3.1 數值型數據的編碼,1.3 計算機中數和字符的表示方法,2020/9/16,第1章 匯編語言基礎知識,46,BCD碼有兩種格式: (1)壓縮BCD碼格式(Packed BCD Format) 用4個二進制位表示一個十進制位,就是用0000B-1001B來表示十進制數0-9。例如:十進制數4256的壓縮BCD碼表示為:0100 0010 0101 0110 B (2)非壓縮BCD碼格式(Unpacked BCD Format) 用8個二進制位表示一個十進制位,其中,高四位無意義,我們一般用xxxx表示,低四位和壓縮BCD碼相同。 例如:十進制數425

34、6的非壓縮BCD碼表示為: xxxx0100 xxxx0010 xxxx0101 xxxx0110 B,1.3 計算機中數和字符的表示方法,1.3.1 數值型數據的編碼,2020/9/16,第1章 匯編語言基礎知識,47,1.3 計算機中數和字符的表示方法,1.3.2 非數值型數據的編碼,現代計算機不僅處理數值數據,而且還要處理大量的非數值數據,像英文字母、標點符號、專用符號、漢字等等。前面已說過,不論什么數據,都必須用基2碼編碼后才能存儲、傳送及處理,非數值數據也不例外。下面我們分別介紹常見的非數值數據的二進制編碼方法。,2020/9/16,第1章 匯編語言基礎知識,48,字符的表示 ASC

35、II碼: 用一個字節(jié)來表示一個字符,低7位為字符的ASCII值,最高位一般用作校驗位。 例: A 41H a 61H 1 31H 換行 0AH 回車 0DH 空格 20H,1.3 計算機中數和字符的表示方法,使用最多、最普遍的是ASCII字符編碼,即美國標準信息交換代碼(American Standard Code for Information Interchance),具體見表1.5。,1. 字符編碼,1.3.2 非數值型數據的編碼,2020/9/16,第1章 匯編語言基礎知識,49,1.3 計算機中數和字符的表示方法,ASCII碼表有以下幾個特點: (1) 每個字符用7位基2碼表示,其排

36、列次序為B6 B5 B4 B3 B2 B1 B0。實際上,在計算機內部,每個字符是用8位(即一個字節(jié))表示的。一般情況下,將最高位置為“0”,即B7為“0”。需要奇偶校驗時,最高位用做校驗位。 (2) ASCII碼共編碼了128個字符,它們分別是: 32個控制字符,主要用于通信中的通信控制或對計算機設備的功能控制,編碼值為031(十進制)。 間隔字符(也稱空格字符)SP,編碼值為20H。 刪除控制碼DEL,編碼值為7FH。 94個可印刷字符(或稱有形字符)。這94個可印刷字符編碼有如下規(guī)律 字符09這10個數字符的高3位編碼都為011,低4位為00001001,屏蔽掉高3位的值,低4位正好是數據09的二進制形式。這樣編碼的好處是既滿足正常的數值排序關系,又有利于ASCII碼與二進制碼之間的轉換。英文字母的編碼值滿足AZ或az正常的字母排序關系。另外,大小寫英文字母編碼僅是B5位值不相同,B5為1是小寫字母,這樣編碼有利于大小寫字母之間的編碼轉換。,1.3.2 非數值型數據的編碼,2020/9/16,第1章 匯編語言基礎知識,50,計算機在處理漢字時,漢字字符也必須用基2碼編碼表示,一般漢字編碼采用兩個字節(jié)即16位二進制數。但由于漢字的特殊性,在漢字的輸入、存儲

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論