第三章,暫存器整理
第三章,記憶體訪問
一,字資料在記憶體中的儲存
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