ADDRESSING MODE FORMAT SEGMENT REGISTER


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.