1. 程式人生 > >第三章,暫存器

第三章,暫存器

第三章,記憶體訪問

一,字資料在記憶體中的儲存

1, 記憶體以位元組為單位,劃分為若干個單元。位元組:8bit,字:16bit,雙字:32bit,四字:64bit

2, 字資料的儲存的原則為:高-高-低-低,字資料的低位位元組存放於低地址記憶體單元,字資料的高位位元組存放於高地址的記憶體單元。取低地址記憶體單元地址作為字資料地址。

例子:

 

二,資料在記憶體和cpu之間的傳送

1,DS:資料段段暫存器,用於存放資料段的段地址。在mov,add,sub等彙編指令中,訪問記憶體單元時,預設情況下,指的是資料段。Mov ax,[1];ax   ((ds)*16+1)

 

 

三,彙編指令mov,add,sub

1,                                                                                                  範例:

2,                                                                                                  Mov指令:

 

 

 

3,                                                                                                  mov指令注意:兩個運算元要一致

關於常數,又名立即數,不可做為第一個運算元(目的運算元)。作第二個運算元時,若最高位進位制的a~f,前面要加0

 

 

 

兩個記憶體單元之間不可直接傳送資料:如mov[1],[2].不可用mov指令修改cs,ip的值。

4,                                                                                                  add指令

add指令的運算元不能同時是記憶體單元:add [1],[2];add指令的運算元不能是段暫存器

 

5,                                                                                                  sub指令

 

注意:兩個記憶體單元不可直接用sub指令相減

 

 

Sub指令的運算元不能是段暫存器

四,棧

1, 棧是邏輯上的概念,可以將一段記憶體空間當棧使用。特點:後進先出。

2, 8086中棧以字為存取單位

3, 棧頂:最後入棧的字資料所對應的地址單元,棧底:固定的一端,棧區最高地址單元前的一個單元

4, Ss:棧段段暫存器,存放棧段的段地址;sp:棧指標暫存器,存放棧頂的偏移地址

(ss)*16+(sp)  棧頂的實體地址

5, 棧的操作指令:push,pop

 

 

 

6,於8086cpu而言,push,pop操作,入棧出棧均已字為單元,操作物件不能常數,pop段暫存器中,段暫存器不能是cs,ss