天天看點

彙編語言學習

彙編語言

  彙編語言(Assembly Language)是面向機器的程式設計語言.彙編語言是一種功能很強的程式設計語言,也是利用計算機所有硬體特性并能直接控制硬體的語言。彙編語言”作為一門語言,對應于進階語言的編譯器,需要一個“彙編器”來把彙編語言原檔案彙編成機器可執行的代碼。進階的彙編器如MASM, TASM等等為我們寫彙程式設計式提供了很多類似于進階語言的特征,比如結構化、抽象等。在這樣的環境中編寫的彙程式設計式,有很大一部分是面向彙編器的僞指令,已經類同于進階語言。現在的彙編環境已經如此進階,即使全部用彙編語言來編寫windows的應用程式也是可行的,但這不是彙編語言的長處。彙編語言的長處在于編寫高效且需要對機器硬體精确控制的程式。

  在彙編語言中,用助記符(Mnemonic)代替操作碼,用位址符号(Symbol)或标号(Label)代替位址碼。這樣用符号代替機器語言的二進制碼,就把機器語言變成了彙編語言。是以彙編語言亦稱為符号語言。

  使用彙編語言編寫的程式,機器不能直接識别,要由一種程式将彙編語言翻譯成機器語言,這種起翻譯作用的程式叫彙程式設計式,彙程式設計式是系統軟體中語言處理系統軟體。彙編語言編譯器把彙程式設計式翻譯成機器語言的過程稱為彙編。

  彙編語言比機器語言易于讀寫、調試和修改,同時具有機器語言全部優點。但在編寫複雜程式時,相對進階語言代碼量較大,而且彙編語言依賴于具體的處理器體系結構,不能通用,是以不能直接在不同處理器體系結構之間移植。

  彙編語言的特點:

  1.面向機器的低級語言,通常是為特定的計算機或系列計算機專門設計的。

  2.保持了機器語言的優點,具有直接和簡捷的特點。

  3.可有效地通路、控制計算機的各種硬體裝置,如磁盤、存儲器、CPU、I/O端口等。

  4.目标代碼簡短,占用記憶體少,執行速度快,是高效的程式設計語言。

  5.經常與進階語言配合使用,應用十分廣泛。

  彙編語言的應用:

  1.70%以上的系統軟體是用彙編語言編寫的。

  2.某些快速處理、位處理、通路硬體裝置等高效程式是用彙編語言編寫的。

  3.某些進階繪圖程式、視訊遊戲程式是用彙編語言編寫的。

  彙編語言是我們了解整個計算機系統的最佳起點和最有效途徑

  人們經常認為彙編語言的應用範圍很小,而忽視它的重要性。其實彙編語言對每一個希望學習計算機科學與技術的人來說都是非常重要的,是不能不學習的語言。

  所有可程式設計計算機都向人們提供機器指令,通過機器指令人們能夠使用機器的邏輯功能。

  所有程式,不論用何種語言編制,都必須轉成機器指令,運用機器的邏輯功能,其功能才能得以實作。

  機器的邏輯功能,軟體系統功能構築其上,硬體系統功能運作于下。

  彙編語言直接描述機器指令,比機器指令容易記憶和了解。通過學習和使用彙編語言,能夠感覺、體會、了解機器的邏輯功能,向上為了解各種軟體系統的原理,打下技術理論基礎;向下為掌握硬體系統的原理,打下實踐應用基礎。

  學習彙編語言,向上可以了解軟體,向下能夠感覺硬體,是我們了解整個計算機系統的最佳起點和最有效途徑。

  要想學好彙編語言,最起碼的ASCII必須知道一些常用的。以下是對應的二進制,十進制,十六進制

  Bin Dec Hex 縮寫 字元 解釋

  0000 0000 0 00 NUL (null) 空字元

  0000 0001 1 01 SOH (start of handing) 标題開始

  0000 0010 2 02 STX (start of text) 正文開始

  0000 0011 3 03 ETX (end of text) 正文結束

  0000 0100 4 04 EOT (end of transmission) 傳輸結束

  0000 0101 5 05 ENQ (enquiry) 請求

  0000 0110 6 06 ACK (acknowledge) 收到通知

  0000 0111 7 07 BEL (bell) 響鈴

  0000 1000 8 08 BS (backspace) 倒退

  0000 1001 9 09 HT (horizontal tab) 水準制表符

  0000 1010 10 0A LF (NL line feed, new line) 換行鍵

  0000 1011 11 0B VT (vertical tab) 垂直制表符

  0000 1100 12 0C FF (NP form feed, new page) 換頁鍵

  0000 1101 13 0D CR (carriage return) Enter鍵

  0000 1110 14 0E SO (shift out) 不用切換

  0000 1111 15 0F SI (shift in) 啟用切換

  0001 0000 16 10 DLE (data link escape) 資料鍊路轉義

  0001 0001 17 11 DC1 (device control 1) 裝置控制1

  0001 0010 18 12 DC2 (device control 2) 裝置控制2

  0001 0011 19 13 DC3 (device control 3) 裝置控制3

  0001 0100 20 14 DC4 (device control 4) 裝置控制4

  0001 0101 21 15 NAK (negative acknowledge) 拒絕接收

  0001 0110 22 16 SYN (synchronous idle) 同步空閑

  0001 0111 23 17 ETB (end of trans. block) 傳輸塊結束

  0001 1000 24 18 CAN (cancel) 取消

  0001 1001 25 19 EM (end of medium) 媒體中斷

  0001 1010 26 1A SUB (substitute) 替補

  0001 1011 27 1B ESC (escape) 溢出

  0001 1100 28 1C FS (file separator) 檔案分割符

  0001 1101 29 1D GS (group separator) 分組符

  0001 1110 30 1E RS (record separator) 記錄分離符

  0001 1111 31 1F US (unit separator) 單元分隔符

  0010 0000 32 20 空格

  0010 0001 33 21 !

  0010 0010 34 22 "

  0010 0011 35 23 #

  0010 0100 36 24 $

  0010 0101 37 25 %

  0010 0110 38 26 &

  0010 0111 39 27 '

  0010 1000 40 28 (

  0010 1001 41 29 )

  0010 1010 42 2A *

  0010 1011 43 2B +

  0010 1100 44 2C ,

  0010 1101 45 2D -

  0010 1110 46 2E .

  0010 1111 47 2F /

  0011 0000 48 30 0

  0011 0001 49 31 1

  0011 0010 50 32 2

  0011 0011 51 33 3

  0011 0100 52 34 4

  0011 0101 53 35 5

  0011 0110 54 36 6

  0011 0111 55 37 7

  0011 1000 56 38 8

  0011 1001 57 39 9

  0011 1010 58 3A :

  0011 1011 59 3B ;

  0011 1100 60 3C <

  0011 1101 61 3D =

  0011 1110 62 3E >

  0011 1111 63 3F ?

  0100 0000 64 40 @

  0100 0001 65 41 A

  0100 0010 66 42 B

  0100 0011 67 43 C

  0100 0100 68 44 D

  0100 0101 69 45 E

  0100 0110 70 46 F

  0100 0111 71 47 G

  0100 1000 72 48 H

  0100 1001 73 49 I

  0100 1010 74 4A J

  0100 1011 75 4B K

  0100 1100 76 4C L

  0100 1101 77 4D M

  0100 1110 78 4E N

  0100 1111 79 4F O

  0101 0000 80 50 P

  0101 0001 81 51 Q

  0101 0010 82 52 R

  0101 0011 83 53 S

  0101 0100 84 54 T

  0101 0101 85 55 U

  0101 0110 86 56 V

  0101 0111 87 57 W

  0101 1000 88 58 X

  0101 1001 89 59 Y

  0101 1010 90 5A Z

  0101 1011 91 5B [

  0101 1100 92 5C \

  0101 1101 93 5D ]

  0101 1110 94 5E ^

  0101 1111 95 5F _

  0110 0000 96 60 `

  0110 0001 97 61 a

  0110 0010 98 62 b

  0110 0011 99 63 c

  0110 0100 100 64 d

  0110 0101 101 65 e

  0110 0110 102 66 f

  0110 0111 103 67 g

  0110 1000 104 68 h

  0110 1001 105 69 i

  0110 1010 106 6A j

  0110 1011 107 6B k

  0110 1100 108 6C l

  0110 1101 109 6D m

  0110 1110 110 6E n

  0110 1111 111 6F o

  0111 0000 112 70 p

  0111 0001 113 71 q

  0111 0010 114 72 r

  0111 0011 115 73 s

  0111 0100 116 74 t

  0111 0101 117 75 u

  0111 0110 118 76 v

  0111 0111 119 77 w

  0111 1000 120 78 x

  0111 1001 121 79 y

  0111 1010 122 7A z

  0111 1011 123 7B {

  0111 1100 124 7C |

  0111 1101 125 7D }

  0111 1110 126 7E ~

  0111 1111 127 7F DEL (delete) 删除

繼續閱讀