日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

汇编语言之基础知识

發布時間:2023/12/4 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 汇编语言之基础知识 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、機器語言

?

說到匯編語言的產生,首先要講一下機器語言。機器語言是機器指令的集合。什么是機器指令?我們在使用CE時,常常見到。

請看下圖:

?

?

?

圖中所示的就是機器指令(或稱機器碼),這是十六進制的,如果要讓計算機識別,則必須是二進制的。如機器指令 89 5C 24

38,轉化為二進制是 10001001010111000010010000111000 ,你看得懂這條機器指令的含義是什么嗎?不懂是吧,我也不懂

,可見,機器指令是如此的晦澀難懂,于是匯編語言便產生了。

?

2、匯編語言

?

匯編語言的主體是匯編指令,匯編指令我們在使用CE時,也是常常見到,見下圖:

匯編指令和機器指令是一一對應的。比如:機器指令 89D8和匯編指令mov ax,bx的含義是相同的,然而我們很難懂 89D8

的含義是什么,mov ax,bx的含義一看就懂了,其含義是:把寄存器bx中的數據送給ax。匯編指令的寫法與人類語言接近,便于

閱讀和記憶。既然有了如此簡明易懂的匯編指令,為什么不把機器指令拋掉?指令最終是由CPU來執行的,但CPU只認識機器指

令,不認識匯編指令,所以拋不了的。匯編指令是給人看的,機器指令是給CPU看的。

有一個東西可以把匯編指令翻譯成機器指令,這個東西就是編譯器

程序員用匯編語言寫出源程序,再用編譯器將其編譯為機器碼,由計算機最終執行,下圖描述了這個工作過程。

3、指令和數據

CPU是計算機的核心部件,它控制整個計算機的運作并進行運算,要想讓一個CPU工作,就必須向它提供指令數據,指令

和數據在存儲器中存放,也就是我們平常說的內存。

在內存中,指令和數據沒有任何區別,都是二進制信息,CPU在工作的時候,把有的信息看作指令,把有的信息看作數據,為

同樣的信息賦予了不同的意義。

例如:內存中的二進制信息 1000100111011000,計算機既可把它看作大小為 89D8H的數據來處理,也可以把它看作指

令 mov ax,bx來處理。

1000100111011000 → 89D8H(數據)

1000100111011000 → mov ax,bx(指令)

4、存儲單元

存儲器被劃分成若干個存儲單元,每個存儲單元從0開始順序編號,例如一個存儲器有128個存儲單元,編號從0~127,見

下圖:

那么一個存儲單元能存儲多少信息呢?我們知道計算機的最小信息單位是bit,也就是一個二進制位,8個bit組成一個Byte,

也就是通常講的一個字節,微型機存儲器的一個存儲單元可以存儲一個Byte,即8個bit(8個二進制位),一個存儲器有128個

存儲單元,它可以存儲128個Byte。

微機存儲器的容量是以字節為最小單位來計算的,對于擁有128個存儲單元的存儲器,我們可以說它的容量是128個字節。

對于大容量的存儲器,一般還用以下單位來計量容量(以下用B代表Byte)。

1KB=1024B? 1MB=1024KB? 1GB=1024MB? 1TB=1024GB

5、cpu對存儲的讀寫

以上講到,存儲器被劃分成多個存儲單元,存儲單元從0開始順序編號,這些編號就是存儲單元的內存地址,見下圖:

?

CPU要從內存中讀取或寫入數據,首先要指定內存地址,并指明要對哪一個器件進行操作,是讀取數據還是寫入數據,因而,

CPU要想進行數據的讀寫,必須和外部器件的芯片進行下面3類信息的互交:

1:內存地址(地址信息)

2:器件的選擇,讀或寫命令(控制信息)

3:讀或寫的數據(數據信息)

那么CUP是通過什么將地址、數據和控制信息傳到內存中呢?是導線,是連接CPU和其他芯片的導線,通常稱之為總線。

根據傳送信息的不同,總線從邏輯上分為3類:地址總線、控制總線、數據總線。

CPU從內存3讀取數據的過程如下圖:

?

1:CPU通過地址線將地址信息3發出。

2:CPU通過控制線發出內存讀命令,選中存儲器芯片,并通知它,將要從中讀取數據。

3:存儲器將內存地址3中的數據8通過數據線送入CPU。

寫入數據的過程和讀取數據的過程相似。如向內存地址3寫入數據26:

1:CPU通過地址線將地址信息3發出。

2:CPU通過控制線發出內存寫命令,選中存儲器芯片,并通知它,將要從中寫入數據。

3:CPU通過數據線將數據26送入內存地址3的存儲單元中。

從上面我們知道了CPU是如何進行數據讀寫的,可是,如何命令計算機進行數據的讀寫呢?那要向它輸入能夠驅動它進行工

作的機器指令。

對于8086CPU,下面的機器指令就能夠完成從內存地址3的存儲單元讀取數據。

機器指令:101000000000001100000000

匯編指令:mov ax,[3]

含義:從內存地址3的存儲單元讀取數據送入寄存器ax中。


總結

以上是生活随笔為你收集整理的汇编语言之基础知识的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。