Beberapa dari kita telah mengerti, bagaimana perintah "MOV"
mengcopykan suatu nilai kepada suatu register atau variabel. Kita bisa
mengcopykan nilai pada suatu register, variabel ataupun lokasi memory dengan
berbagai cara. Secara umum banyaknya cara yang dapat digunakan dapat dibagi
menjadi 7.
-------------------------------------------------------------
ADDRESSING MODE FORMAT SEGMENT REGISTER
-------------------------------------------------------------
1. Immediate Data Tidak Ada
2. Register Register Tidak Ada
3. Direct Displacement DS
Label DS
4. Register Indirect [BX] DS
[BP] SS
[SI] DS
[DI] DS
5. Base Relative [BX]+Displacement DS
[BP]+Displacement SS
6. Direct Indexed [DI]+Displacement DS
[SI]+Displacement DS
7. Base Indexed [BX][SI]+Displacement DS
[BX][DI]+Displacement DS
[BP][SI]+Displacement SS
[BP][DI]+Displacement SS
------------------------------------------------------------
Perlu anda perhatikan bahwa ada juga
pengcopyan data yang terlarang, yaitu :
1. Pengcopyan data antar segment
register, seperti:
MOV DS,ES
Untuk memecahkan hal ini, anda bisa
menggunakan register general purpose
sebagai perantara, seperti:
MOV AX,ES
MOV DS,AX
Selain dengan cara diatas, anda bisa juga menggunakan
stack sebagai perantara, seperti:
PUSH ES
POP DS
2. Pemberian nilai untuk segment
register(DS, ES, CS, SS) secara langsung, seperti:
MOV ES,0B800h
Untuk memecahkan hal ini, anda bisa
menggunakan register general purpose sebagai perantara, seperti:
MOV AX,0B800h
MOV ES,AX
3. Pengcopyan data langsung antar
memory, seperti:
MOV MemB,MemA
Untuk memecahkan hal ini, anda bisa
menggunakan register general purpose sebagai perantara, seperti:
MOV AX,MemA
MOV MemB,AX
4. Pengcopyan data antar register yang
berbeda tipenya(8 bit dengan 16 bit) tanpa menggunakan pointer, seperti:
MOV AL,BX
Pelajarilah:
bagian ini dengan baik, karena
addressing modes merupakan dasar bagi programmer bahasa assembly yang harus
dikuasai.
ConversionConversion EmoticonEmoticon