第五章 [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
彙編基礎知識總結(一)
學習了王爽老師的 組合語言 覺得自己應該把知識串一串。首先cpu只能識別機器語言 01010101010 由於對人類非常不友好,所以組合語言就產生了。於是在產生彙編後,計算機是不會明白組合語言的,所以我們又要乙個翻譯員,那就是編譯器。就這樣,組合語言也能完成機器語言的工作。發展到現在,彙編由三類指令...
第01章 基礎知識
1.1 組合語言的組成 組合語言發展至今,由以下3類指令組成 彙編指令 機器碼的助記符,有對應的機器碼。偽指令 沒有對應的機器碼,由編譯器識別,計算機並不執行。其他符號 如 等,由編譯器識別,沒有對應的機器碼。組合語言的核心是彙編指令,它決定了組合語言的特性。1.2 指令和資料 指令和資料是應用上的...
第1章 基礎知識
機器語言是機器指令的集合,由0和1組成,但是很長很複雜,組合語言因此產生。組合語言的主體是彙編指令。彙編指令是機器指令的便於記憶的書寫格式。程式設計師寫完彙編指令通過編譯器轉換為機器碼,機器碼再傳到計算機執行。組合語言有以下三類 1彙編指令 助記符,有對應機器碼 2.偽指令 沒有對應機器碼,編譯器執...