Gray code: Difference between revisions

Content added Content deleted
No edit summary
No edit summary
Line 207: Line 207:
30 ==> 11110 ==> 10001 ==> 11110 ==> 30
30 ==> 11110 ==> 10001 ==> 11110 ==> 30
31 ==> 11111 ==> 10000 ==> 11111 ==> 31
31 ==> 11111 ==> 10000 ==> 11111 ==> 31
</pre>

=={{header|8051 Assembly}}==

<syntaxhighlight lang="8051asm">
.equ cin, 0x0032
.equ cout, 0x0030
.equ phex, 0x0034
.equ phex16, 0x0036
.equ nl, 0x0048

.org 0x2000

main:
mov r7, #0
next:
mov a, r7
lcall phex
mov a, #' '
lcall cout
mov a, r7
acall genc
lcall phex
mov r6, a
mov a, #' '
lcall cout
mov a, r6
acall gdec
lcall phex
lcall nl
inc r7
cjne r7, #0, next
lcall cin
ljmp 0x0000
;--------
genc:
mov r0, a
clr c
rrc a
xrl a, r0
ret
;--------

;--------
gdec:
mov r0, a
gdec_shift_xor:
clr c
rrc a
jz gdec_out
xch a, r0
xrl a, r0
xch a, r0
sjmp gdec_shift_xor
gdec_out:
xch a, r0
ret
;--------
</syntaxhighlight>

{{out}}
<pre>
00 00 00
01 01 01
02 03 02
03 02 03
04 06 04
05 07 05
06 05 06
07 04 07
08 0C 08
09 0D 09
0A 0F 0A
0B 0E 0B
0C 0A 0C
0D 0B 0D
0E 09 0E
0F 08 0F
10 18 10
11 19 11
12 1B 12
13 1A 13
14 1E 14
15 1F 15
16 1D 16
17 1C 17
18 14 18
19 15 19
1A 17 1A
1B 16 1B
1C 12 1C
1D 13 1D
1E 11 1E
1F 10 1F
20 30 20
21 31 21
22 33 22
23 32 23
24 36 24
25 37 25
26 35 26
27 34 27
28 3C 28
29 3D 29
2A 3F 2A
2B 3E 2B
2C 3A 2C
2D 3B 2D
2E 39 2E
2F 38 2F
30 28 30
31 29 31
32 2B 32
33 2A 33
34 2E 34
35 2F 35
36 2D 36
37 2C 37
38 24 38
39 25 39
3A 27 3A
3B 26 3B
3C 22 3C
3D 23 3D
3E 21 3E
3F 20 3F
40 60 40
41 61 41
42 63 42
43 62 43
44 66 44
45 67 45
46 65 46
47 64 47
48 6C 48
49 6D 49
4A 6F 4A
4B 6E 4B
4C 6A 4C
4D 6B 4D
4E 69 4E
4F 68 4F
50 78 50
51 79 51
52 7B 52
53 7A 53
54 7E 54
55 7F 55
56 7D 56
57 7C 57
58 74 58
59 75 59
5A 77 5A
5B 76 5B
5C 72 5C
5D 73 5D
5E 71 5E
5F 70 5F
60 50 60
61 51 61
62 53 62
63 52 63
64 56 64
65 57 65
66 55 66
67 54 67
68 5C 68
69 5D 69
6A 5F 6A
6B 5E 6B
6C 5A 6C
6D 5B 6D
6E 59 6E
6F 58 6F
70 48 70
71 49 71
72 4B 72
73 4A 73
74 4E 74
75 4F 75
76 4D 76
77 4C 77
78 44 78
79 45 79
7A 47 7A
7B 46 7B
7C 42 7C
7D 43 7D
7E 41 7E
7F 40 7F
80 C0 80
81 C1 81
82 C3 82
83 C2 83
84 C6 84
85 C7 85
86 C5 86
87 C4 87
88 CC 88
89 CD 89
8A CF 8A
8B CE 8B
8C CA 8C
8D CB 8D
8E C9 8E
8F C8 8F
90 D8 90
91 D9 91
92 DB 92
93 DA 93
94 DE 94
95 DF 95
96 DD 96
97 DC 97
98 D4 98
99 D5 99
9A D7 9A
9B D6 9B
9C D2 9C
9D D3 9D
9E D1 9E
9F D0 9F
A0 F0 A0
A1 F1 A1
A2 F3 A2
A3 F2 A3
A4 F6 A4
A5 F7 A5
A6 F5 A6
A7 F4 A7
A8 FC A8
A9 FD A9
AA FF AA
AB FE AB
AC FA AC
AD FB AD
AE F9 AE
AF F8 AF
B0 E8 B0
B1 E9 B1
B2 EB B2
B3 EA B3
B4 EE B4
B5 EF B5
B6 ED B6
B7 EC B7
B8 E4 B8
B9 E5 B9
BA E7 BA
BB E6 BB
BC E2 BC
BD E3 BD
BE E1 BE
BF E0 BF
C0 A0 C0
C1 A1 C1
C2 A3 C2
C3 A2 C3
C4 A6 C4
C5 A7 C5
C6 A5 C6
C7 A4 C7
C8 AC C8
C9 AD C9
CA AF CA
CB AE CB
CC AA CC
CD AB CD
CE A9 CE
CF A8 CF
D0 B8 D0
D1 B9 D1
D2 BB D2
D3 BA D3
D4 BE D4
D5 BF D5
D6 BD D6
D7 BC D7
D8 B4 D8
D9 B5 D9
DA B7 DA
DB B6 DB
DC B2 DC
DD B3 DD
DE B1 DE
DF B0 DF
E0 90 E0
E1 91 E1
E2 93 E2
E3 92 E3
E4 96 E4
E5 97 E5
E6 95 E6
E7 94 E7
E8 9C E8
E9 9D E9
EA 9F EA
EB 9E EB
EC 9A EC
ED 9B ED
EE 99 EE
EF 98 EF
F0 88 F0
F1 89 F1
F2 8B F2
F3 8A F3
F4 8E F4
F5 8F F5
F6 8D F6
F7 8C F7
F8 84 F8
F9 85 F9
FA 87 FA
FB 86 FB
FC 82 FC
FD 83 FD
FE 81 FE
FF 80 FF
</pre>
</pre>