1. 程式人生 > >匯編語言 [BX]和loop指令

匯編語言 [BX]和loop指令

出現 下一條 一個 內容 內存 裏的 p s oop 利用

一 .[bx]

1. mov ax,[bx]

bx中存放的數據作為一個偏移地址EA,段地址SA默認在ds中,將SA:EA處的數據送入ax中。

2. mov [bx],ax

bx中存放的數據作為一個偏移地址EA,段地址SA默認在ds中,將ax中的數據送入內存SA:EA處。

3. inc bx

其表示的含義是bx中的內容加1,比如下面兩條指令:

mov bx,1

inc bx

執行之後的結果,bx=2.

二 loop指令

1. cx中的值影響著loop指令的執行結果。我們用loop指令來實現循環功能,cx中存放循環次數。

2. loops

CPU在執行loops的時候,要進行兩步的操作:

1)(cx)=(cx)-1;

2) 判斷cx中的值,不為0則轉至標號s所標識的地址處執行(這裏的指令是add ax,ax),如何為零則執行下一條指令

3)mov cx,11

s: add ax,ax

loop s

執行loops時,首先要將cx減1,然後若cx不為0,則向前轉至s處執行add ax,ax所以,可以利用cx來控制add ax,ax的執行次數。

三 段前綴

1:mov ax,es:[bx]

將一個內存單元的內容送入ax,這個內存單元的長度為2字節,存放1個字,偏移地址在地址bx中,段地址在es中。

2:mov ax,ss:[0]

將一個內存單元的內容送入ax中,這個內存單元的長度為2個字節,存放一個字,偏移地址為0,段地址在ss中。

這些出現在訪問內存單元的指令中,用於顯示地指明內存單元的段地址的es ss在匯編語言中稱為段前綴。

匯編語言 [BX]和loop指令