Posts

Showing posts from October, 2010

Perihal Flag Part 3(Katak Ikut Arahan)

Sebelum ni kita faham JMP iaitu JUMP atau lompat berfungsi. Jadi apa kaitannya? Segalanya berkaitan dengan arahan CMP. Sebagai contoh mula: CMP AX,5 JE mati JMP mula mati: Jika anda memahami post yang sebelum ini mengenai uncondition jump( JMP ) anda pasti faham JMP mula bermaksud apa. Sila rujuk ilustrasi dalam pos terdahulu mengania JMP . Untuk meneruskan pemahaman kita. Anda tertanya apa dia JE ? JE atau Jump Equal bermaksud arahan untuk melakukan operasi sama seperti JMP tetapi dengan syarat AX = 5 . Walau bagaimanapun dalam Pos yang sebelum ini telah dinyatakan bahawa CMP serupa dengan SUB di mana nilai kiri akan ditolak dengan yang kanan. sebagai cth: SUB kiri, kanan sama dengan kiri=kiri-kanan SUB AX, 5 sama dengan AX=AX-5 perbezaan SUB dengan CMP adalah SUB mengubah nilai sebelah kiri tetapi CMP tidak. Walaubagaimanapun kedua-duanya akan mengubah nilai flag. Seperti contoh yang tadi iaitu: mula: ;label mula CMP AX,5 ;Lakukan perbandingan sila rujuk Perihal Flag Pa

Perihal Flag Part 2(Lompat Si Katak Lompat)

Image
Sekarang kita tau apa yang berlaku pada Flag semasa operasi Compare( CMP ). Dari sudut bahasa Compare bermaksud Banding. Oleh itu: CMP AX,2 bermaksud Bandingkan AX dengan 2 CMP kiri, kanan bermaksud Bandingkan kiri dengan kanan. Seperti yang kita fahami dari artikel yang sebelumnya(Perihal Flag Part 1): Flag berubah kalau kita Compare( CMP ) atau Subtitute( SUB ). JUMP( JMP,JE, JB, JG, JGE, JBE ) bergantung dengan flag. Apa gunanya JUMP ? Untuk melompat la dari satu 'Label' ke 'Label' yang lain. Unconditional Jump Pertama sekali, kita kena faham konsep unconditional JUMP yang menggunakan arahan JMP . bentuk asas arahan JMP adalah seperti di bawah. JMP Label Label: (operasi) dibawah adalah ilustrasi bagaimana arahan JMP berfungsi Pertama, 0. JMP pergi ke Label 1. Dalam 'Label' ada arahan JMP ke 'Mahmud' 2.Pergi ke 'Mahmud', dalam ada arahan JMP ke 'Ali' 3.Berakhir dekat 'Ali' sebab takde arahan JMP. Paham tak?

Perihal Flag Part 1(CMP dan SUB)

Pertama kita akan concentrate dengan 2 jenis Flag: Carry Flag(CF) Zero Flag(ZF) Sign Flag(SF) Kedua kita akan tengok apa berlaku pada kedua-dua flag ni bila seru command: Compare(CMP) Subtitute(SUB) Command Compare( CMP ) dengan Subtitute( SUB ) ada persamaan iaitu kedua-duanya melakukan operasi TOLAK. Cth. SUB AX, BX adalah AX= AX-BX SUB AX,2 adalah AX=AX-2 beza CMP dengan SUB adalah CMP takkan ubah nilai kecuali flag. Cth: CMP AX, BX tidak akan ubah nilai AX seperti sub tetapi akan melakukan operasi sama CMP AX, 2 juga tidak akan ubah nilai AX seperti diterangkan tadi. Sekarang mari kita lihat apa yang berlaku pada Flag. Sebagai contoh sekarang nilai AX= 0002 ASSEMBLY AX Carry Flag(CF) Zero Flag(ZF) Sign Flag(SF) SUB AX,2 0000 0 1 0 CMP AX,2 0002 0 1 0 Di atas kita dapat lihat perbezaan antara SUB dengan CMP dimana CMP tidak mengubah nilai AX tetapi kedua-duanya akan mengubah nilai FLAG. Cuba perhatikan contoh seterusnya AX=0002 ASSEMBLY AX Carry Flag(CF) Zero Flag(ZF) Sign Fl

Popular posts from this blog

Perihal Flag Part 1(CMP dan SUB)

Contemplating Nothing