1. 程式人生 > >五~八章 知識總結

五~八章 知識總結

第五章

1.[bx]

mov ax,[bx]  設偏移地址為SA,段地址預設儲存在DS暫存器中,那麼該指令的作用是將地址為DS:SA處的值傳入ax暫存器中。

用"()"符號解釋為 (ax)=((DS)*16+(bx))

mov [bx],ax  設偏移地址為SA,段地址預設儲存在DS暫存器中,那麼該指令的作用是將暫存器ax值傳入[bx]所代表的偏移地址的位置,用"()"符號解釋為 ((DS)*16+(bx))=(ax)

2. LOOP指令

LOOP指令為迴圈指令,其格式為 LOOP 標號,當cx不為0的時候跳轉到標號處迴圈同時cx=cx-1,如果標號為0則向下執行。(CX預設為迴圈計數器)

第六章

大多數有用的程式,都要處理資料,使用棧空間,當然也都必須有指令,為了程式設計上的清晰和方便,我們一般也都定義不同的段來存放它們。

然而本章主要是以這樣的順序來深入地討論多個段的問題:(對比)

(1)在一個段中存放資料、程式碼、棧。

(2)將資料、程式碼、棧放入不同的段中。

第七章

and 和 or 指令

(1) and指令,邏輯按位與指令

例如:

mov al,01100011B

and al,00111011B

執行後 al=00100011B 

and指令可以用來將某個數的位置為零。

比如我們要將al的第二位置為零,則: and al,11111101B

 

(2) or指令,邏輯按位或指令

例如:

mov al,01100011B


or   al,00111011B

執行後 al=01111011B
or指令可以用來將某個數的位置為1

比如我們要將al的第高位置為一,則: or al,10000000B

第八章

計算機是進行資料處理、運算的機器,那麼有兩個基本的問題就包含在其中:

  1. 要處理的資料在什麼地方?
  2. 要處理的資料有多長?

reg和sreg。

reg的集合包括:ax、bx、cx、dx、ah、al、bh、bl、ch、cl、dh、dl、sp、bp、si、di。

sreg的集合包括:ds、ss、cs、es。

div是除法指令,使用div做除法的時候應該注意以下問題:

除數:有8位和16位兩種,在一個reg或記憶體單元中。
被除數:預設放在AX或DX和AX中,如果除數為8位,被除數則為16位,預設在AX中存放;如果除數為16位,被除數則為32位,在DX和AX中存放,DX存放高16位,AX存放低16位。
結果:如果除數為8位,則AL儲存除法操作的商,AH儲存除法操作的餘數;如果除數為16位,則AX儲存除法操作的商,DX儲存除法操作的餘數。
dup是一個操作符,在組合語言中同db、dw、dd等一樣,也是由編譯器識別處理的符號。它是和db、dw、dd等資料定義偽指令配合使用的,用來進行資料的重複。