第五章 [bx]和loop
1.記憶體單元間接表示: [bx]
mov dl, [0]; dl ← ((ds)×16 + 0)
mov bx, 0
mov dl, [bx]; dl ← ((ds)×16 + (bx))
可以使用bx間接訪問記憶體單元。預設,段位址在ds。
2.loop指令
(1) 語法格式
loop 標號
(2) cpu執行指令過程
① (cx) ← (cx) - 1
② 判斷cx的值是否為0。 如果(cx) ≠ 0,跳轉到標號處執行; 如果(cx) = 0, 執行loop後面的其它指令。
3.段字首
mov dl, [6]; dl ← ((ds)×16 + 6)
mov ax, [bx]; ax ← ((ds)×16 + (bx))
預設情形下,無論是直接給出的偏移位址,還是通過bx間接給出的偏移位址,都是取ds的值作為段位址來計算實體地址。 可以通過增加「段字首」改變預設狀況。
4.安全記憶體空間
計算機系統記憶體的使用並不是任意的,有些記憶體單元有專用用途,保留有系統重要資料。
① 在8086模式中,00200h ~ 002ffh這段空間一般不會被使用,視作使用者可自由使用的安全空間。
② 現代作業系統大多使用cpu保護模式對記憶體使用進行管理,限制使用者非法訪問一些關鍵記憶體空間。
第六章 包含多個段的程式
① 使用偽指令segment和ends定義邏輯段後,究竟是用作**段、資料段還是棧,由程式設計師指定。
② 使用assume僅僅表示將某個邏輯段和某個段暫存器關聯起來;真正當作特定的段使用,需要在**段中設定相應的段暫存器值,如ds, ss。
③ 段名代表的是段位址,是常數。不能使用mov直接送入段暫存器。
第七章 更靈活的定位記憶體位址方法
1.彙編指令: and和or
and指令:① and指令語法格式及對運算元要求與add指令同
② 可以實現將運算元指定位設定為0
or指令:① or指令語法格式及對運算元要求與add指令同
② 可以實現將運算元指定位設為1
2.彙編中的字元處理
在彙編源程式中:既可以使用諸如'a'這樣的字元寫法,也可以使用ascⅱ碼形式的寫法。
在debug中: a命令中不支援諸如'a'這樣的寫法
e命令中支援諸如'a'這樣的寫法,也支援ascⅱ碼形式的寫法
3.其它靈活的記憶體位址表示
用[bx + idata]表示表示記憶體單元。idata表示常數。
用[si]表示表示記憶體單元。
用[si + idata]表示表示記憶體單元。idata表示常量。
用[di]表示表示記憶體單元。
用[di + idata]表示表示記憶體單元。idata表示常量。
用[bx+di], [bx+si]表示表示記憶體單元。
用[bx+di+idata], [bx+si+idata]表示表示記憶體單元。
第八章 資料處理的兩個基本問題
1.彙編指令中運算元的型別
常數字於cpu內部,指令緩衝器;暫存器位於cpu內部,暫存器;記憶體單元位於cpu外部,記憶體
2.彙編指令中記憶體單元運算元的位址表示
在8086中,可用於表示記憶體偏移位址的暫存器只有: bx, si, di和bp。
這些暫存器可以單個出現在中,也可以以特定組合方式出現。
使用bx, si, di表示偏移位址時,預設段位址在ds中;
使用bp表示偏移位址時,預設段位址在ss中。
3.彙編偽指令: db, dw, dd, dup
data segment
db 1,2,3; 每個資料分配1個位元組
dw 1,2 3; 每個資料分配2個位元組
dd 1,2,3; 每個資料分配4個位元組
data ends
data segment
db 0,0,0,0,0,0,0,0
db 8 dup(0); 預留8個位元組單元,每個單元值為0
dd 8 dup(?); 預留8個位元組單元,每個單元值未分配
data ends
組合語言 六至八章的總結
一 多個段 1.dw的含義是定義字型資料 2.在程式的第一條指令的前面加上了乙個標號start,而這個標號在偽指令end的後面出現。end除了通知編譯器程式結束外,還可以通知編譯器程式的入口在什麼地方。3.在程式中,段名就相當於乙個標號,它代表了段位址。所以指令mov ax,data,的含義就是將名...
組合語言第八章知識點總結
絕大部分機器指令都是進行資料處理的指令,可以分為讀取 寫入 運算。使用 bx 為偏移位址時,大多數情況段位址預設在ds中 使用 bp 時,段位址預設在ss中。8086cpu指令可以處理兩種尺寸資料 byte和word。指令執行的是字操作還是位元組操作。用word ptr 和 byte ptr 指明指...
彙編基礎 筆記6(《組合語言》第八章)
資料處理 1.要處理的資料在什麼地方 指令執行前,可能是 cpu內部 暫存器 指令緩衝器 記憶體 埠 2.資料多長?bx,si,di,bp 只有這四個可以用在中進行定址 且只能1.單個出現 2.以四個組合出現 bx si,bx di,bp si,bp di 中出現bp,則預設段位址為ss push指...