組合語言第五到八章總結

2022-06-04 16:45:09 字數 2131 閱讀 9200

第五章 [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指...