第五章
- 第 5 章 [BX] 和 loop 指令
-
- 5.1 [BX]
- 5.2 LOOP 指令
- 5.3 在 Debug 中跟蹤用 loop 指令實作的循環程式
- 5.4 Debug 中跟蹤用 loop 指令實作的循環程式
- 5.5 loop 和 [bx] 的聯合應用
- 5.6 段字首
- 5.7 一段安全的空間
- 5.8 段字首的使用
第 5 章 [BX] 和 loop 指令
- [bx] 和記憶體單元的描述
- [bx] 表示一個記憶體單元,它的偏移位址在 bx 中,和 [0] 類似。
- 要完整的描述一個記憶體單元,需要兩種資訊:一是記憶體單元的位址,二是記憶體單元的長度(類型)。
- loop
- loop 指令和循環有關。
- 我們定義的描述性的符号"()"
- ”()“表示括号内寄存器(或者其它)中存的内容
- “()” 中的元素可以有 3 種類型:一是寄存器名,二是段寄存器名,三是記憶體單元的實體位址(一個 20 位資料)。
舉例:![]()
彙編語言學習筆記 -第五章第 5 章 [BX] 和 loop 指令
- “(X)” 表示的資料有兩種類型:一是位元組,二是字。由寄存器或具體的運算決定。
舉例:![]()
彙編語言學習筆記 -第五章第 5 章 [BX] 和 loop 指令
- 約定符号 idata 表示常量
- 指令中,在 “[···]” 裡用一個常量 0 表示記憶體單元的偏移位址。
指令 | 說明 |
---|---|
mov ax,[idata] | 代表 mov ax,[l]、mov ax,[2]、 mov ax,[3]等。 |
mov bx,idata | 代表 mov bx 1、mov bx,2、 mov bx,3 等。 |
mov ds,idata | 代表mov ds,1 、mov ds,2 等,它們都是非法指令。 |
5.1 [BX]
指令 | 功能 |
---|---|
mov ax, [bx] | bx中存放的資料作為一個偏移位址EA,段位址SA預設在ds中,将SA:EA 處的資料送入ax中。即:(ax)=((ds)*16+(bx))。 |
mov bx, [ax] | bx中存放的資料作為一個偏移位址EA,段位址SA預設在ds中,将 ax 中的資料送入記憶體 SA:EA 處。即:((ds)*16+(bx))=(ax)。 |
舉例:![]()
彙編語言學習筆記 -第五章第 5 章 [BX] 和 loop 指令 ![]()
彙編語言學習筆記 -第五章第 5 章 [BX] 和 loop 指令 ![]()
彙編語言學習筆記 -第五章第 5 章 [BX] 和 loop 指令
5.2 LOOP 指令
- loop 指令格式:loop 标号
- CPU 在執行 loop 指令時,需要進行兩步操作:
- (cx) = (cx) - 1
- 判斷 cx 中的值,不為零則轉至标号處執行程式,如果為零則向下執行。
- CX 中的值影響着 loop 指令的執行結果。通常(注意,我們說的是通常)我們用 loop 指令來實作循環功能,CX 中存放循環次數。
舉例:![]()
彙編語言學習筆記 -第五章第 5 章 [BX] 和 loop 指令 ![]()
彙編語言學習筆記 -第五章第 5 章 [BX] 和 loop 指令
舉例:![]()
彙編語言學習筆記 -第五章第 5 章 [BX] 和 loop 指令
舉例:![]()
彙編語言學習筆記 -第五章第 5 章 [BX] 和 loop 指令 ![]()
彙編語言學習筆記 -第五章第 5 章 [BX] 和 loop 指令 ![]()
彙編語言學習筆記 -第五章第 5 章 [BX] 和 loop 指令
舉例:![]()
彙編語言學習筆記 -第五章第 5 章 [BX] 和 loop 指令 ![]()
彙編語言學習筆記 -第五章第 5 章 [BX] 和 loop 指令
舉例:![]()
彙編語言學習筆記 -第五章第 5 章 [BX] 和 loop 指令
5.3 在 Debug 中跟蹤用 loop 指令實作的循環程式
5.4 Debug 中跟蹤用 loop 指令實作的循環程式
5.5 loop 和 [bx] 的聯合應用
舉例:![]()
彙編語言學習筆記 -第五章第 5 章 [BX] 和 loop 指令 ![]()
彙編語言學習筆記 -第五章第 5 章 [BX] 和 loop 指令 ![]()
彙編語言學習筆記 -第五章第 5 章 [BX] 和 loop 指令
5.6 段字首
5.7 一段安全的空間
- 在 8086 模式中,不能随意向一段空間寫入内容,其内可能存放着重要的資料和代碼。
舉例:![]()
彙編語言學習筆記 -第五章第 5 章 [BX] 和 loop 指令