Perihal Flag Part 1(CMP dan SUB)
Pertama kita akan concentrate dengan 2 jenis Flag:
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
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
AX=0002 lagi
Berdasarkan pada ketiga-tiga contoh kita dapat rumuskan sebagai:
SUB kiri,kanan sebagai:
CMP kiri, kanan sebagai
Buat masa sekarang itu saja yang mampu diterangkan perihal FLAG. Ada apa-apa persoalan sila nyatakan pada comment atau e-mail atau twitter.
Wallahua'lam.
- Carry Flag(CF)
- Zero Flag(ZF)
- Sign Flag(SF)
- Compare(CMP)
- Subtitute(SUB)
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 |
Cuba perhatikan contoh seterusnya
AX=0002
ASSEMBLY | AX | Carry Flag(CF) | Zero Flag(ZF) | Sign Flag(SF) |
SUB AX,4 | FFFE | 1 | 0 | 1 |
CMP AX,4 | 0002 | 1 | 0 | 1 |
AX=0002 lagi
ASSEMBLY | AX | Carry Flag(CF) | Zero Flag(ZF) | Sign Flag(SF) |
SUB AX,1 | 0001 | 0 | 0 | 0 |
CMP AX,1 | 0002 | 0 | 0 | 0 |
SUB kiri,kanan sebagai:
ASSEMBLY | Nilai Kiri | Carry Flag(CF) | Zero Flag(ZF) | Sign Flag(SF) |
Kiri = Kanan | 0 | 0 | 1 | 0 |
Kiri < Kanan | Negatif | 1 | 0 | 1 |
Kiri > Kanan | Positif | 0 | 0 | 0 |
ASSEMBLY | Nilai Kiri | Carry Flag(CF) | Zero Flag(ZF) | Sign Flag(SF) |
Kiri = Kanan | Tak Berubah | 0 | 1 | 0 |
Kiri < Kanan | Tak Berubah | 1 | 0 | 1 |
Kiri > Kanan | Tak Berubah | 0 | 0 | 0 |
Wallahua'lam.
oo begitu ceritanya.. thanks prof!
ReplyDelete