資料來源:彙編語言第二版-王爽
1.[bx]和loop指令
[bx]表示一個內存單元,它的偏移地址在bx中
我們要完整地描述一個內存單元,需要兩種信息:(1)內存單元的地址;(2)內存單元的長度(類型)。
loop指令的格式是:loop 標號
CPU執行loop指令的時候,要進行兩步操作:(1)inc cx 即通用寄存器中的值-1;(2)判斷通用寄存器cx中的值,不爲零則轉到標號處執行程序,如果爲零則向下執行。
從上面的描述中,我們可以看到,通用寄存器cx中的值影響着loop指令的執行結果。通常我們使用loop指令來實現循環功能,通用寄存器cx中存放循環次數。
2.段前綴
出現在訪問內存單元的指令中,用於顯式地指明內存單元的段地址的"ds:"、"cs:"、"ss:"或者"es:",在彙編語言中稱爲段前綴。
3.and和or指令
(3.1)and指令:邏輯與指令,按位進行與運算。
(3.2)or指令,邏輯或指令,按位進行或運算。
4.si寄存器和di寄存器
si和di是8086CPU中和bx功能相近的寄存器,si和di不能夠分成兩個8位寄存器來使用,只能按照16位的寄存器進行使用。
5.不同尋址方式的靈活應用
尋址方式有以下幾種:
(1)[idata] 用一個常量來表示地址,可用於直接定位一個內存單元;
(2)[bx] 用一個變量來表示內存地址,可用於間接定位一個內存單元;
(3)[bx+idata] 用一個變量和常量表示地址,可在一個起始地址的基礎上用變量間接定位一個內存單元;
(4)[bx+si] 用兩個變量來表示內存地址;
(5)[bx+si+idata] 用兩個變量和一個常量來表示地址。
6.bx,si,di,bp
(6.1)在8086CPU中,只有bx,si,di,bp這四個寄存器可以用在"[···]"中來進行內存單元的尋址。
(6.2)在[···]中,這四個寄存器可以單個出現,或只能以四種組合出現:bx和si,bx和di,bp和si,bp和di。
(6.3)只要在[···]中使用寄存器bp,而指令中沒有顯性地給出段地址,段地址就默認在ss中
有錯誤請指正,謝謝!