一 二章 彙編知識整理之基礎知識,暫存器

2021-10-08 18:20:07 字數 2876 閱讀 9995

機器語言其實就是和機器交流的語言,是機器指令的集合,機器指令可以控制計算機的一系列的命令。它是一系列二進位制語言,計算機將其轉化為一系列高低電平,來驅動計算機的電器器件,從而達到某些功能。

由於機器語言是一堆二進位制語言,可讀性非常差,所以出現了組合語言,目的是為了更好的閱讀還有書寫**。

1.彙編指令:機器碼的助記符,有對應的機器碼。

2.偽指令:沒有對應的機器碼,由編譯器執行,計算機並不執行(就是給編譯器看的,告訴匯程式設計序如何進行彙編的指令)

3.其他符號:如+、–*、/等,由編譯器識別,沒有對應的機器碼。

彙編的核心是彙編指令。

其實就是口袋,不斷地取出和放回東西。

記憶體單元

儲存器裡面被分成多個記憶體單元,每乙個單元都有乙個編號,這就是記憶體位址,cpu要訪問記憶體的話,就要通過記憶體位址。

1.位址線

儲存單元的位址,通過這條線傳輸位址資訊。

2.資料線

要操作的資料,讀或寫的資料。

3.控制線

器件的選擇,讀或寫的命令。

讀1.cpu通過位址線將位址資訊發出。

2.cpu通過控制線來操作來這個個記憶體,告訴它cpu接下來要幹什麼,接下來我要讀取你的資料。

3.cpu通過資料線把資料讀取。

寫的過程和讀一樣。

位址匯流排

有n根位址匯流排,就有2^n個位址,定址能力 2^n 個。

資料匯流排

一次傳送8位資料

一次傳送16位資料。

乙個儲存單元可以儲存 8 個bit,也就是 8 個二進位制數。16位數就儲存在兩個儲存單元裡面。

運算器、控制器、暫存器等器件,這些器件靠內部匯流排相連。

每乙個記憶體單元構成的記憶體空間是乙個一維的線性空間,而且每乙個記憶體單元在這個空間裡面的位址是唯一的,把這個唯一的位址就是實體地址。

8086cpu是16位的結構,但是它有20位位址也就是220byte,說明有1mb個位址。而8086cpu裡16位的結構說明定址能力有216位,少了2^4,對於這種情況,8086cpu採用兩個16位位址合成的方法來合成乙個20位的實體地址。

實體地址 = 段位址*16 + 偏移位址。

我們都是到,在機器裡面,資訊的儲存都是以二進位制方式存放的,段位址 x 16 說明,對於二進位制來說資料左移4位,對於cpu訪問的位址一般都用16進製表示,也就是左移1位。

1.同乙個實體地址,可以由不同的段位址還有偏移位址得到。

2.由於偏移位址的取值只有0000h~ffffh,一共有10000h個數字,轉化為十進位制就是2^16次方=64kb,所以確定了段位址的話,偏移位址就會有64kb的定址能力。(h代表16進製制。)

資料儲存的表達

資料的位址是12345h

1.資料在1234:0005單元中(「:」前面表示「段位址」,「:」後面表示偏移位址。)

2.資料在1234h段中的0005h裡面。

cs暫存器還有ip暫存器都是cpu裡面非常重要的暫存器。

cs暫存器:**段暫存器

ip暫存器:指令指標暫存器

由於位址還有其他資料在cpu裡面都是一堆二進位制在打交道,cpu要怎麼區分哪一些是指令,哪一些是資料呢?

cs:ip指向的內容就是執行指令。

比如cs = 2000; ip = 0000 (或者直接寫0,高位會自動補上0)

這表示 2000:0所指向的內容是要當作指令來進行的。

工作過程

2.cs*16 + ip = 實體地址輸出

3.實體地址進入「輸入輸出電路」

4.實體地址通過20位位址匯流排傳到記憶體。

5.把記憶體裡面的資料拿出來通過資料匯流排送到輸入輸出控制電路。

6.送到指令緩衝器裡面,讀取指令後,ip位址此時會增加。

7.在將資料送到執行控制器裡面,執行指令。

詳細的過程如下:

還可以直接只修改ip。

比如: jmp 某一合法暫存器

例子 jmp ax=mov ip,ax(功能上相等,但是語法上mov ip,ax「不存在。

彙編基礎知識學習整理 一

由於工作需要,上次要寫個程式從讀取lcd的edid rom上相關資訊,用到一些彙編知識,最近有時間將彙編拿出來翻一番,複習一下,記筆記如下 彙編基礎知識學習整理 一 國內人寫的很不錯的很易入手的一本書 1.基礎知識 1.cpu要想進行資料的讀寫,必須和外部器件進行資訊互動,a,儲存單元的位址 位址資...

彙編基礎知識

最近感覺自己學的到了乙個瓶頸,學的不知道有多少是記住的,總是感覺自己要學的東西有那麼多,時間又太少。專業課也越來越多,花在程式設計上的時間就少了,但是這畢竟是我的興趣愛好,所以我不想放棄。昨晚突然有個想法,以後寫部落格的頻率加快,儘管這樣部落格的質量也就下降了很多,但是我還是覺得部落格就是來記錄我成...

彙編 基礎知識

一 進製數的表示 十進位制後加d,二進位制後加b,八進位制加o,十六進製制加h 二 十進位制數轉換為二進位制數或十六進製制數 使用除2取餘法或使用除16取餘法,結果向上讀,如4,得餘數0 0 1,則相應二進位制為100,十六進製制數類似 三 二進位制數或十六進製制數轉換為十進位制數 使用權的展開式 ...