筆記 組合語言 第3章 暫存器(記憶體訪問)

2022-03-06 17:07:05 字數 1122 閱讀 3294

3.1 記憶體中字的儲存

cpu中,用16位暫存器來儲存乙個字,高8位存放高位位元組,低8位存放低位位元組。

由於記憶體單元是位元組單元,則乙個字要用兩個位址連續的記憶體單元來存放。低位位元組存放在低位址單元中,高位位元組存放在高位址單元中。

3.2 ds和[address]

[address] 即 ds:address

注:8086cpu不支援將資料直接送入段暫存器的操作。

3.3 字的傳送

8086cpu是16位結構,可以一次傳送乙個字。

3.4 mov,add,sub指令

mov指令的幾種形式

mov reg,idata

mov reg,reg

mov reg,[address]

mov [address],reg

mov sreg,reg

注:add,sub指令也有與mov指令一樣的格式

3.5 資料段

將一段記憶體當作資料段,是我們在程式設計時的一種安排,可以在具體操作的時候,用ds存放資料段的段位址,再根據需要,用相關指令訪問資料段中的具體單元。

3.6 棧

一種特殊的儲存結構,遵循lifo或filo的操作規則。

3.7 cpu提供的棧機制

8086cpu提供入棧和出棧指令,push和pop。

cpu中有兩個暫存器,ss和sp,ss指示棧的段位址,sp指示棧的偏移位址。  >>>>任意時刻,ss:sp指向棧頂元素<<<<

push reg 操作過程:

1) sp=sp-2

2) 將資料送入ss:sp指示的位址

pop reg 的操作過程正好相反:

1) 從ss:sp指示的位址讀取資料

2) sp=sp+2

3.8 棧頂超界的問題

8086cpu並沒有提供預防棧頂超界的機制,需要我們自己注意。

3.9 push,pop指令

push/pop reg/sreg/[address]

tips: 清零操作,可以使用"sub ax,ax"指令,大小為2個位元組,而使用"mov ax,0"的大小為3個位元組

3.10 棧段

8086cpu中,乙個棧段最大的容量為64kb

實驗2 用機器指令和彙編指令程式設計

3 暫存器 記憶體訪問 《組合語言》

cpu中,使用16位暫存器來儲存乙個字.高8位存放高位位元組,低8位存放低位位元組.記憶體單元是位元組單元,所以需要用兩個位址連續的記憶體單元來存放,這個字的低位位元組存放在低位址中,高位位元組存放在高位址中.字單元 即存放乙個字型資料 16位 的記憶體單元,由兩個位址連續的記憶體單元組成.我們將起...

組合語言 3暫存器

1.資料在21f60h記憶體單元中,可以說為 資料存在記憶體2000 1f60單元中 資料存在記憶體中的2000段的1f60單元中。2.9段暫存器 8086cou有4個段暫存器 cs,ds,ss,es.2.10 cs和ip cs為段暫存器,ip為指令暫存器 在8086機中任意時刻cpu將cs ip指...

組合語言暫存器記憶體訪問筆記

cpu記憶體方式 字在儲存器的儲存 記憶體中字的儲存 mov指令 mov bx,1000h 將資料送入暫存器中 mov ds,bx 將乙個暫存器的內容送入另外乙個暫存器中 mov 0 al 將儲存器內容送入記憶體 mov 指令中 的說明操作物件是乙個記憶體單元,中的 0 說明這個記憶體單元的偏移位址...