You are on page 1of 75

DATA TRANSFER

Click to edit Master subtitle style

5/8/12

DATA TRANSFER (MOVE)

REGISTER TO REGISTER MOVE .B D0, D1

MEMORY TO REGISTER MOVE .B $2000, D2

REGISTER TO MEMORY MOVE .B D2, $2000 DATA TO REGISTER

5/8/12 IMMEDIATE

DATA TRANSFER REGISTER TO REGISTER MOVE .subtitle styleD0, D1 B Click to edit Master
SOURCE DESTINATION

5/8/12

EXAMPLE
D0 AABBCC55 D1 112233AA D1 11223355 MOVE . B D0, D1 MOVE .W D0, D1 D1 1122CC55 MOVE .LW D0, D1 D1 AABBCC55

5/8/12

Data in Register D0 not changed

Practice
Register To Register D0 11223344 D1 AABBCCDD D2 DDEEAABB D3 EE5577AA

MOVE MOVE MOVE 5/8/12 MOVE

. W D0, D2 .B D1, D2 .L D3, D0 .W D3, D2

DATA TRANSFER MEMORY TO REGISTER MOVE .B $2000, D0 Click to edit Master subtitle style
SOURCE DESTINATION

5/8/12

MEMORY ADDRESING
Memory AddressContent Addres s $2001 $2000 0102 $2002 AABB $2003 $2004 CCEE $2005 $2007 $2006 FFAA $2009 $2008 2254 $200B $200A 2327

EVEN ADDRES S

ODD ADDRE SS

5/8/12

EXAMPLE

MOVE .B $2000, D0 MOVE .B $2001, D0 Memory Address Content $2000 0102 $2002 AABB
REGISTER D0
5/8/12

AFTER MOVE .B D0 EEAABB01 $2000, D0


MOVE .B $2001, D0 D0 EEAABB02

EEAABBFF

EXAMPLE

MOVE .W $2000, D0 MOVE .W $2001, D0 Memory Address Content $2000 0102 $2002 AABB
REGISTER D0
5/8/12

AFTER MOVE .W D0 EEAA0102 $2000, D0


MOVE .W $2001, D0 D0 EEAA02AA

EEAABBFF

Practice

MOVE .B $2000, D0 MOVE .B $2001, D0 Memory Address Content $2000 BBFF $2002 CCDD
REGISTER D0
5/8/12

AFTER MOVE .B D0 123456BB $2000, D0


MOVE .B $2001, D0 D0 123456FF

12345678

Practice

MOVE .W $2000, D0 MOVE .W $2001, D0 Memory Address Content $2000 BBFF $2002 CCDD
REGISTER D0
5/8/12

MOVE .W D0 123456BB $2000, D0


MOVE .W $2001, D0 D0 123456FF

12345678

Data Transfer Register To Memory MOVE .B D2, $2000


SOURCE DESTINATION

5/8/12

MEMORY ADDRESING
Memory AddressContent Addres s $2001 $2000 0102 $2002 AABB $2003 $2004 CCEE $2005 $2007 $2006 FFAA $2009 $2008 2254 $200B $200A 2327

EVEN ADDRES S

ODD ADDRE SS

5/8/12

5/8/12

5/8/12

EXAMPLE

MOVE .B

D0, $2000

AFTER

Memory Address Content $2000 0102 $2002 AABB


REGISTER D0 EEAABBFF
5/8/12

MOVE .B D0, $2000 Memory Address Content $2000 FF02 $2002 AABB
REGISTER D0 EEAABBFF

Register To Memory

MOVE .B

D0, $2001

AFTER

Memory Address Content $2000 0102 $2002 AABB


REGISTER D0 EEAABBFF
5/8/12

MOVE .B D0, $2001 Memory Address Content $2000 01FF $2002 AABB
REGISTER D0 EEAABBFF

Register To Memory

MOVE .W

D0, $2000

AFTER

Memory Address Content $2000 0102 $2002 AABB


REGISTER D0 EEAABBFF
5/8/12

MOVE .W D0, $2000 Memory Address Content $2000 BBFF $2002 AABB

* WORD MUST STORED AT EVEN ADDRESSES

Register To Memory

MOVE .W

D0, $2002

AFTER

Memory Address Content $2000 0102 $2002 AABB


REGISTER D0 EEAABBFF
5/8/12

MOVE .W D0, $2002 Memory Address Content $2000 0102 $2002 BBFF

* WORD MUST STORED AT EVEN ADDRESSES

Practice

MOVE .B

D0, $2000

AFTER

Memory Address Content $2000 DDEE $2002 BB66


REGISTER D0 55558899
5/8/12

MOVE .B D0, $2000 Memory Address Content $2000 99EE $2002 BB66
REGISTER D0 55558899

Practice

MOVE .B

D0, $2003

AFTER

Memory Address Content $2000 DDEE $2002 BB66


REGISTER D0 55558899
5/8/12

MOVE .B D0, $2003 Memory Address Content $2000 DDEE $2002 BB99
REGISTER D0 55558899

Practice

MOVE .W

D0, $2000

AFTER

Memory Address Content $2000 DDEE $2002 BB66


REGISTER D0 55558899
5/8/12

MOVE .W D0, $2000 Memory Address Content $2000 8899 $2002 BB66

* WORD MUST STORED AT EVEN ADDRESSES

Practice

MOVE .W

D0, $2001

AFTER

Memory Address Content $2000 DDEE $2002 BB66


REGISTER D0 55558899
5/8/12

MOVE .W D0, $2001 Memory Address Content $2000 TRAP $2002

* WORD MUST STORED AT EVEN ADDRESSES

Data Transfer Immediate Data to Register MOVE .W #$50AB, D0


SOURCE DESTINATION

5/8/12

Example
SOURCE DESTINATION

BEFOR D1AAAAAA5 E 0

MOVE. W #$72,D1 ; Transfer data 7216 to D1

AFTER D1AAAA007 2

Immediate Data to Register


5/8/12

EXAMPLE
BEFORE AFTER

D1 AABBCC55 MOVE. B #$8A,D1 MOVE. W #$8A,D1 MOVE. L #$8A,D1


5/8/12

D1 AABBCC8A D1 AABB008A D1 0000008A

EXAMPLE
BEFORE AFTER

D1 AABBCC55 MOVE. B #$8AED,D1 MOVE. W #$8AED,D1 MOVE. L #$8AED,D1 5/8/12 MOVE. W D1 INVALID D1 AABB8AED D1 00008AED D1 INVALID

PRACTICE
BEFORE AFTER

D1 BB55CC77 MOVE. B #$BA5,D1 MOVE. W #$BA5,D1 MOVE. L #$BA5,D1 MOVE. W 5/8/12 D1 INVALID D1 BB550BA5 D1 00000BA5 D1 BB5500AC

ARITHMETIC OPERATION

Basic operation Add & Subtract With 2 basic operation can produce multiplication & division operation Theprocesseddataincludingthe values ofthe binary,decimaland ASCII
5/8/12

ADDITION OPERATION

68000 microprocessorcanperform addition operation in 3sizesof8bits(.B),16bits(. W) and32bits(.L)

Dataobtainedfrom theregisters(D0toD7),
5/8/12

memoryandI/O port.

ADDITION OPERATION CONT


ADD.S <dea>

<sea>,

.S is size of data ( .B , .W or .L) SOURCE +DESTINATION DESTINATION


Data at source plus with data at

5/8/12

ADDITION OPERATION CONT ADD.B D0, D1


Add 8 - bits data register D0 with data in register D1 and the result is stored at D1 D0 +D1 D1(RESULT)

5/8/12

Example

ADD.B D0, D1 ; Add 8-bit data in register D0 with data in register D1and the result are stored at D1 BEFOR AFTER D0 00002222 D0 00002222 E + + D1 00004444 D1 00004466
0010 1000 1010 0010 1000 1010
BACAUSE THE DATA SIZE IS 8-BITS (.B),SO ONLY 2 NUMBER WILL BE CHANGED AND THE OTHERS REMAINS

5/8/12

Example

ADD.B D0, D1 ; Add 8-bit data in register D0 with data in register D1and the result are stored at D1 BEFOR AFTER D0 000022A D0 000022A E + + A A D1 00004455 D1 000044FF
1010 0101 1111 1010 0101 1111
BACAUSE THE DATA SIZE IS 8-BITS (.B),SO ONLY 2 NUMBER WILL BE CHANGED AND THE OTHERS REMAINS

5/8/12

Example

ADD.B D0, D1 ; Add 8-bit data in register D0 with data in register D1and the result are stored at D1 BEFOR AFTER D0 000022BB D0 000022BB E + + D1 00004466 D1 00004421
1011 0110 0010 1011 0110 0001
BACAUSE THE DATA SIZE IS 8-BITS (.B),SO ONLY 2 NUMBER WILL BE CHANGED AND THE OTHERS REMAINS

1 5/8/12 SUBCRIBED

Practice
BEFORE AFTER

D0 BB55CC77 D1 112233AA ADD. B ADD. W D0,D1 D0,D1 D1 D1

5/8/12

Contoh 2

5/8/12

Contoh 3
ADD.W $2000, D2 ; Suruhan berikut menunjukkan bagaimana kandungan daftar D2 dalam pemproses dengan nilai data kedudukan ingatan ditambah dari 200016

5/8/12

ADD.W $2000, D2 Memory Address Content $2000 0101 $2002 AABB


+
5/8/12

Sebelum Register D2 00001010 Selepas Register D2 00001111

0101 1010 1111

OPERASI TOLAK

SUB. W #02, D1 ; Data di data register D1 ditolak 0216. Keputusan disimpan di data SEBELU register D1 SELEPA M D1 12345678 D1 12345676 S 0002
Oleh kerana saiz data hanya 16 bit (W) maka hanya 4 nombor akan berubah ,yang lain kekal

5/8/12

SUB. W D0, D1 ; data 16 bit di data register D1 ditolak dengan data 16 bit di D0. Keputusan SEBEL SELEPA disimpan di data register D1 D1 12345678 D0 S UM 98765432 D0 98765432 D1 12340246
Oleh kerana saiz data hanya 16 bit (W) maka hanya 4 nombor HEX akan berubah yang lain kekal

5/8/12

Contoh
Diberi , [D0]=$12345678 [D1]=$00ABCDEF [M($1002)]=$01020304 Dapatkan kandungan setiap destinasi D bagi alamat 0 berkesan berikut:
a) b)

MOVE.W D1,D0 MOVE.W #$1000, D0

D 0 D 1

5/8/12

MOVE D1,D0 [D0] = $1234CDEF MOVE.W #$1000, D0 [D0]= $12341000 MOVE.W $1002,D1 [D1]= $00AB0304
5/8/12

Practice
Execute the instruction base on initial value like table below

D0 D1 D2 D3

11223344 AABBCCDD DDEE5588 EE5577AA

5/8/12

ADD. B D0, D1 ADD.W D0, D2 SUB.W #$50, D3 SUB.B D3, D2

SURUHAN LOGIKAL

Antara suruhan logikal ialah AND, OR & NOT

5/8/12

AND OPERATION
A 0 0 1 1 B 0 1 0 1 F 0 0 0 1

5/8/12

AND.B #$3E,D3;kandungan D3 di AND dengan data 3E dengan size 8 bit ,keputusan disimpan di data register D3

5/8/12

AND.B

#$3E,D3
Sebelum Selepas

D3

12345678 AND 3E

D3

12345638

5/8/12

And (darab)
7 0 0 0 1 3 0 0 3 1 1 1 1 1 1 1 0 8 1 1 1 0 E 1 0 0 0 8 0 0

5/8/12

OR OPERATION
A 0 0 1 1 B 0 1 0 1 F 0 1 1 1

5/8/12

OR.B D0,D1

;data 8 bit di data register D1 di OR

dengan data 8 bit di D0 keputusan disimpan di data register D1


5/8/12

OR.B D0,D1
Sebelum Selepas Oleh kerana 1234567 saiz data 8 E bit (B) maka 2 nombor 9876547 Hex akan 4 berubah yang lain kekal

D0 D1

1234563E OR 98765474

D0 D1

5/8/12

OR (+)
0 0 0 0 1 1 1 1 1 1 1 1 1 0 1 7E (14) 1 1 1 1 0 1 0 0 0

5/8/12

5/8/12

NOT OPERATION
A 0 1 F 1 0

5/8/12

NOT.B D1 ;kandungan D1 di NOT dengan size 8 bit dan keputusan disimpan di D1)
Sebelum Data Register D1 Selepas Data register D1

12345655

Oleh kerana saiz data 8 bit (B) 123456AA maka 2 nom. Hex akan berubah yang lain kekal

5/8/12

NOT- invert 5 0 1 1 0 0 1 1 0 1 0 1 0 A (10)A (10) 5 0 1 1 0

5/8/12

Documentation/ comment
Instruction ORG $2500 MOVE.W D0,D1 Comment /Documentation ; Program start at address $ 2500 ; transfer data in register D0 to register D1 with size 16 bit (.W) ; Transfer data 6716 to register D0 with size 8 bits (.B) ; Add data in register D0 with data in register D2 with size 16 bit (.W). The result are stored in register D2. ; Program end

MOVE.B #$67, D0 ADD. W D0,D2

5/8/12

END

PRACTICE
Instruction ORG $3000 MOVE.W D1,D4 MOVE.B #$67, D0 ADD. W D0,D2 SUB.B D1, D3
5/8/12

Comment /Documentation

Instruction MOVE. B D2, $2000 MOVE.W $2300,D4 AND .B D1, D2

Comment /Documentation

OR .W D0, D1

5/8/12

Suruhan Cabang

Pemproses pada asasnya melaksanakan suruhan-suruhan dalam aturcara secara berturutan. Suruhan-suruhan alihan aturcara/ bercabang digunakan bagi menukarkan aliran aturcara supaya pemproses melaksanakan suruhan yang tidak berturutan. Suruhan-suruhan begini termasuk 5/8/12 suruhan-suruhan cabang atau

Samb

Suruhan cabang dan lompat ialah suruhan alihan aturcara yang asas. Suruhan ini akan mengubah kandungan Program Counter. Mikropemproses akan lompat beberapa nombor lokasi ingatan bagi melaksanakan program baru (subroutine) atau kembali kepada kedudukan asal. (main program)
5/8/12

Samb..

Suruhan bercabang terdiri dari suruhan tak bersyarat dan suruhan bersyarat (unconditional and conditional). Suruhan cabang tak sentiasa dilaksanakan. bersyarat

Suruhan berikut menyuruh pemproses 68000 melompat ke suruhan seterusnya di alamat $8A50. Apabila suruhan tak 5/8/12

Suruhan cabang bersyarat hanya dilaksanakan apabila sesuatu bendera mempunyai nilai yang ditetapkan dalam suruhan (syarat dipenuhi).

Suruhan berikut menyebabkan pemproses 6800 dan 68000 melompat ke alamat 8A50 jika bendera C bernilai 1 (carry set C = 1) 5/8/12

Operasi Branch Always Branch If Carry Clear Branch If Branch If Branch If Branch If Same Branch If Zero Carry Set = Zero Higher Lower Or Not Equal

Mnemonic BRA BCC BCS BEQ BHI BLS BNE

Branch Test None C=0 C=1 Z=1 C+Z=0 C+Z=1 Z=0

Jump Jump To Subroutine

JMP JSR

5/8/12

1)

Perubahan Daftar Bendera Terhadap Suruhan Yang Dilaksanakan


Carry (C) C = 1, carry flag is set if a carry is generated out of the MSB of the result of an instruction operation.

CF (Carry Flag) / bendera bawa Bendera ini disetkan (1) apabila terjadinya bawa daripada bit paling bererti (MSB) samada dari d7 selepas operasi 8 bit atau d 15 & d 5/8/12 31 selepas operasi 16 bit dan 32 bit.

Negative (N)

N = 1, negative flag is set, when the result is negative N = 0, negative flag is cleared, when the results is positive NF (negative Flag) / bendera negative Bendera ini akan disetkan (1) apabila d7, d15 dan d31 bagi operasi 8 bit, 16 bit dan 32 bit 5/8/12 nilainya bersamaan 1.

Overflow (V)

The overflow (V) flag is set when the result exceeds the maximum number VF (overflow flag) / bendera limpahan Bendera ini akan disetkan apabila hasil yang didapati adalah terlampau besar atau luar daripada julat yang ditetapkan
5/8/12

Zero (Z)

Z = 1, zero flag is set, when the result is zero Z = 0, zero flag cleared, when the result is non-zero ZF (zero flag) / bendera sifar Bendera ini akan disetkan jika hasil operasi arithmetic dan logic adalah sifar.

5/8/12

Extend (X)****

Multiprecision arithmetic operations. Apabila bendera ini disetkan, ia membenarkan aturcara untuk melaksanakan suruhan satu demi satu suruhan (single stepping). Ini biasa digunakan semasa kerja debugging dilakukan. The extend flag is set the same way 5/8/12 the carry (C) flag as

Contoh 1

D7

Tunjukkan nilai bendera (CF, NF, VF dan ZF) dalam daftar bendera selepas operasi tambah 38H dan 2FH dilaksanakan. D6 D5 D4 D3 D2 D1 D0
3 8 1 2 1 1 1 0 0 1 1 0 0 F 1 1 1 1 1 1 0 0 0 0 1

0 0 0

CF = 0 ;tiada bawa dari d7 NF = 0 ;d7 menunjukkan nombor positif VF = 0 ;normal ZF = 0;hasil bukan sifar

5/8/12

Contoh 2
Tunjukkan nilai bendera (CF, NF, VF dan ZF) dalam daftar bendera selepas operasi tambah 9CH dan 64H D8 dilaksanakan. D1 D0 D7 D6 D5 D4 D3 D2

1 0 0 1 1 1 0 0 6 4 0 1 1 0 0 1 0 0
1 0 0 0 0 0 0 0 0

CF = 1 ;berlaku bawa dari d7 NF = 0 ;d7menunjukkan nombor positif VF = 0 ;normal ZF = 1 ;hasil sifar

5/8/12

Contoh 3

Tunjukkan nilai bendera (CF, NF, VF dan ZF) dalam daftar bendera selepas operasi tambah EEH dan 70H D8 dilaksanakan. D7 D6 D5 D4 D3 D2 D1 D0
E E 1 1 1 0 1 1 1 0 7 0 0 1 1 1 0 0 0 0 1 0 1 0 1 1 1 1 0
5/8/12
CF = 1 NF = 0 positif VF = 0 ZF = 0 ;kerana berlaku bawa dari d7 ;d7 menunjukkan nombor ;normal ;hasil bukan sifar

Contoh

D8

Tunjukkan nilai bendera (CF, NF, VF dan ZF) dalam daftar bendera selepas operasi tambah EE H dan F0H D5 D4 D3 D2 D1 D0 D7 D6 dilaksanakan.
E E
CF = 1 NF = 1 negatif VF = 0 ZF = 0 ;berlaku bawa dari d7 ;d7 menunjukkan nombor ;normal ;hasil bukan sifar

1 1 1 0 1 1 1 0 F 0 1 1 1 1 0 0 0 0 1 1 1 0 1 1 1 1 0
5/8/12

D15

1 0 1

Tunjukkan nilai bendera (CF, NF, VF dan ZF) dalam daftar bendera selepas operasi tambah 94C2H dan D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 323EH 0dilaksanakan. 0 0 0 0 1 1 0 0 1 1 0 0 1 1
0 1 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 0 0

CF = 0 NF = 1 VF = 0 ZF = 0

;tidak berlaku bawa dari d15 ;d15 menunjukkan nombor negatif ; normal ;hasil bukan sifar

5/8/12

You might also like