Section 03 Part 06 – Homework Results 03 “The awkward moment when wikipedia has copied your homework.” ~Unknown author

Introduction

OK So, the previous part contained a homework section (I really should consider changing the name a bit, homework is probably patronising, but eh).  Here are the results:

Results

 move.b    #\$24,d0           bclr.l    #\$02,d0           ori.b     #\$03,d0           move.b    #\$F8,d1           and.b     d0,d1           not.w     d1           eori.w    #\$FF00,d1           move.b    d1,\$00002200           bset.b    #\$05,\$00002200           bchg.b    #\$01,\$00002200

 move.b    #\$24,d0

d0 now contains 00000024.

 bclr.l    #\$02,d0

Bit 02 is cleared:

 0000 0000 0000 0000 0000 0000 0010 0000

d0 now contains 00000020.

 ori.b     #\$03,d0

03 OR 20:

 03 0 0 0 0 0 0 1 1 OR OR OR OR OR OR OR OR OR 20 0 0 1 0 0 0 0 0 = = = = = = = = = 23 0 0 1 0 0 0 1 1

The result is 23, d0 now contains 00000023.

 move.b    #\$F8,d1

d1 now contains 000000F8.

 and.b     d0,d1

23 AND F8:

 23 0 0 1 0 0 0 1 1 AND AND AND AND AND AND AND AND AND F8 1 1 1 1 1 0 0 0 = = = = = = = = = 20 0 0 1 0 0 0 0 0

The result is 20, d1 now contains 00000020.

 not.w     d1

The word 0020 in d1 has had its bits reversed:

 0000 0000 0010 0000             |||| |||| |||| ||||           VVVV VVVV VVVV VVVV             1111 1111 1101 1111

The result is FFDF, d1 now contains 0000FFDF.

 eori.w    #\$FF00,d1

FF00 XOR FFDF:

 FF00 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 XOR XOR XOR XOR XOR XOR XOR XOR XOR XOR XOR XOR XOR XOR XOR XOR XOR FFDF 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 = = = = = = = = = = = = = = = = = 00DF 0 0 0 0 0 0 0 0 1 1 0 1 1 1 1 1

The result is 00DF, d1 now contains 000000DF.

 move.b    d1,\$00002200

DF from data register d1 is copied into memory at offset 00002200:

 Offset 0 1 2 3 4 5 6 7 8 9 A B C D E F 00002200 DF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

The byte in memory at offset 00002200 is now DF.

 bset.b    #\$05,\$00002200

Bit 05 of DF (in memory at offset 00002200) is set:

 1111 1111

 Offset 0 1 2 3 4 5 6 7 8 9 A B C D E F 00002200 FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Now the byte in memory at offset 00002200 has changed from DF to FF.

 bchg.b    #\$01,\$00002200

Bit 01 of FF (in memory at offset 00002200) is reversed:

 1111 1101

The bit was 1 (set), so it’s changed to 0 (clear):

 Offset 0 1 2 3 4 5 6 7 8 9 A B C D E F 00002200 FD 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

To sum it up, the byte in memory at offset 00002200 is FD.  Congratulations if you worked out that.