五~八章 知識總結
第五章
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
第八章
計算機是進行資料處理、運算的機器,那麼有兩個基本的問題就包含在其中:
- 要處理的資料在什麼地方?
- 要處理的資料有多長?
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等資料定義偽指令配合使用的,用來進行資料的重複。