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 |
All
of the data registers will start with 00000000.
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.