天天看點

彙編語言學習筆記 -第五章第 5 章 [BX] 和 loop 指令

第五章

  • 第 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 指令

  1. [bx] 和記憶體單元的描述
  • [bx] 表示一個記憶體單元,它的偏移位址在 bx 中,和 [0] 類似。
  • 要完整的描述一個記憶體單元,需要兩種資訊:一是記憶體單元的位址,二是記憶體單元的長度(類型)。
  1. loop
  • loop 指令和循環有關。
  1. 我們定義的描述性的符号"()"
  • ”()“表示括号内寄存器(或者其它)中存的内容
  • “()” 中的元素可以有 3 種類型:一是寄存器名,二是段寄存器名,三是記憶體單元的實體位址(一個 20 位資料)。
舉例:
彙編語言學習筆記 -第五章第 5 章 [BX] 和 loop 指令
  • “(X)” 表示的資料有兩種類型:一是位元組,二是字。由寄存器或具體的運算決定。
舉例:
彙編語言學習筆記 -第五章第 5 章 [BX] 和 loop 指令
  1. 約定符号 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 章 [BX] 和 loop 指令

5.3 在 Debug 中跟蹤用 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.4 Debug 中跟蹤用 loop 指令實作的循環程式

彙編語言學習筆記 -第五章第 5 章 [BX] 和 loop 指令
彙編語言學習筆記 -第五章第 5 章 [BX] 和 loop 指令
彙編語言學習筆記 -第五章第 5 章 [BX] 和 loop 指令

5.5 loop 和 [bx] 的聯合應用

彙編語言學習筆記 -第五章第 5 章 [BX] 和 loop 指令
彙編語言學習筆記 -第五章第 5 章 [BX] 和 loop 指令
彙編語言學習筆記 -第五章第 5 章 [BX] 和 loop 指令
舉例:
彙編語言學習筆記 -第五章第 5 章 [BX] 和 loop 指令
彙編語言學習筆記 -第五章第 5 章 [BX] 和 loop 指令
彙編語言學習筆記 -第五章第 5 章 [BX] 和 loop 指令

5.6 段字首

彙編語言學習筆記 -第五章第 5 章 [BX] 和 loop 指令
彙編語言學習筆記 -第五章第 5 章 [BX] 和 loop 指令

5.7 一段安全的空間

  • 在 8086 模式中,不能随意向一段空間寫入内容,其内可能存放着重要的資料和代碼。
舉例:
彙編語言學習筆記 -第五章第 5 章 [BX] 和 loop 指令
彙編語言學習筆記 -第五章第 5 章 [BX] 和 loop 指令
彙編語言學習筆記 -第五章第 5 章 [BX] 和 loop 指令

5.8 段字首的使用

彙編語言學習筆記 -第五章第 5 章 [BX] 和 loop 指令
彙編語言學習筆記 -第五章第 5 章 [BX] 和 loop 指令

繼續閱讀