<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://gbdev.gg8.se/wiki/index.php?action=history&amp;feed=atom&amp;title=CPU_Instruction_Set</id>
		<title>CPU Instruction Set - Revision history</title>
		<link rel="self" type="application/atom+xml" href="https://gbdev.gg8.se/wiki/index.php?action=history&amp;feed=atom&amp;title=CPU_Instruction_Set"/>
		<link rel="alternate" type="text/html" href="https://gbdev.gg8.se/wiki/index.php?title=CPU_Instruction_Set&amp;action=history"/>
		<updated>2026-04-16T04:24:30Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.25.1</generator>

	<entry>
		<id>https://gbdev.gg8.se/wiki/index.php?title=CPU_Instruction_Set&amp;diff=954&amp;oldid=prev</id>
		<title>Nitro2k01 at 02:22, 5 April 2020</title>
		<link rel="alternate" type="text/html" href="https://gbdev.gg8.se/wiki/index.php?title=CPU_Instruction_Set&amp;diff=954&amp;oldid=prev"/>
				<updated>2020-04-05T02:22:34Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 02:22, 5 April 2020&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;L1&quot; &gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Pandocs|&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;cpuinstructionset&lt;/del&gt;}}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Pandocs|&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;instruction-set&lt;/ins&gt;}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Tables below specify the mnemonic, opcode bytes, clock cycles, affected flags (ordered as znhc), and explanatation.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Tables below specify the mnemonic, opcode bytes, clock cycles, affected flags (ordered as znhc), and explanatation.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The timings assume a CPU clock frequency of 4.194304 MHz (or 8.4&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The timings assume a CPU clock frequency of 4.194304 MHz (or 8.4&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Nitro2k01</name></author>	</entry>

	<entry>
		<id>https://gbdev.gg8.se/wiki/index.php?title=CPU_Instruction_Set&amp;diff=176&amp;oldid=prev</id>
		<title>Xzakox at 12:58, 28 June 2009</title>
		<link rel="alternate" type="text/html" href="https://gbdev.gg8.se/wiki/index.php?title=CPU_Instruction_Set&amp;diff=176&amp;oldid=prev"/>
				<updated>2009-06-28T12:58:54Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 12:58, 28 June 2009&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;L1&quot; &gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{Pandocs|cpuinstructionset}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Tables below specify the mnemonic, opcode bytes, clock cycles, affected flags (ordered as znhc), and explanatation.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Tables below specify the mnemonic, opcode bytes, clock cycles, affected flags (ordered as znhc), and explanatation.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The timings assume a CPU clock frequency of 4.194304 MHz (or 8.4&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The timings assume a CPU clock frequency of 4.194304 MHz (or 8.4&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Xzakox</name></author>	</entry>

	<entry>
		<id>https://gbdev.gg8.se/wiki/index.php?title=CPU_Instruction_Set&amp;diff=157&amp;oldid=prev</id>
		<title>Xzakox: New page: Tables below specify the mnemonic, opcode bytes, clock cycles, affected flags (ordered as znhc), and explanatation. The timings assume a CPU clock frequency of 4.194304 MHz (or 8.4 MHz for...</title>
		<link rel="alternate" type="text/html" href="https://gbdev.gg8.se/wiki/index.php?title=CPU_Instruction_Set&amp;diff=157&amp;oldid=prev"/>
				<updated>2009-06-28T10:56:34Z</updated>
		
		<summary type="html">&lt;p&gt;New page: Tables below specify the mnemonic, opcode bytes, clock cycles, affected flags (ordered as znhc), and explanatation. The timings assume a CPU clock frequency of 4.194304 MHz (or 8.4 MHz for...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Tables below specify the mnemonic, opcode bytes, clock cycles, affected flags (ordered as znhc), and explanatation.&lt;br /&gt;
The timings assume a CPU clock frequency of 4.194304 MHz (or 8.4&lt;br /&gt;
MHz for CGB in double speed mode), as all gameboy timings are divideable&lt;br /&gt;
by 4, many people specify timings and clock frequency divided by 4.&lt;br /&gt;
&lt;br /&gt;
===GMB 8bit-Loadcommands===&lt;br /&gt;
&lt;br /&gt;
  ld   r,r         xx         4 ---- r=r&lt;br /&gt;
  ld   r,n         xx nn      8 ---- r=n&lt;br /&gt;
  ld   r,(HL)      xx         8 ---- r=(HL)&lt;br /&gt;
  ld   (HL),r      7x         8 ---- (HL)=r&lt;br /&gt;
  ld   (HL),n      36 nn     12 ----&lt;br /&gt;
  ld   A,(BC)      0A         8 ----&lt;br /&gt;
  ld   A,(DE)      1A         8 ----&lt;br /&gt;
  ld   A,(nn)      FA        16 ----&lt;br /&gt;
  ld   (BC),A      02         8 ----&lt;br /&gt;
  ld   (DE),A      12         8 ----&lt;br /&gt;
  ld   (nn),A      EA        16 ----&lt;br /&gt;
  ld   A,(FF00+n)  F0 nn     12 ---- read from io-port n (memory FF00+n)&lt;br /&gt;
  ld   (FF00+n),A  E0 nn     12 ---- write to io-port n (memory FF00+n)&lt;br /&gt;
  ld   A,(FF00+C)  F2         8 ---- read from io-port C (memory FF00+C)&lt;br /&gt;
  ld   (FF00+C),A  E2         8 ---- write to io-port C (memory FF00+C)&lt;br /&gt;
  ldi  (HL),A      22         8 ---- (HL)=A, HL=HL+1&lt;br /&gt;
  ldi  A,(HL)      2A         8 ---- A=(HL), HL=HL+1&lt;br /&gt;
  ldd  (HL),A      32         8 ---- (HL)=A, HL=HL-1&lt;br /&gt;
  ldd  A,(HL)      3A         8 ---- A=(HL), HL=HL-1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===GMB 16bit-Loadcommands===&lt;br /&gt;
&lt;br /&gt;
  ld   rr,nn       x1 nn nn  12 ---- rr=nn (rr may be BC,DE,HL or SP)&lt;br /&gt;
  ld   SP,HL       F9         8 ---- SP=HL&lt;br /&gt;
  push rr          x5        16 ---- SP=SP-2  (SP)=rr   (rr may be BC,DE,HL,AF)&lt;br /&gt;
  pop  rr          x1        12 (AF) rr=(SP)  SP=SP+2   (rr may be BC,DE,HL,AF)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===GMB 8bit-Arithmetic/logical Commands===&lt;br /&gt;
&lt;br /&gt;
  add  A,r         8x         4 z0hc A=A+r&lt;br /&gt;
  add  A,n         C6 nn      8 z0hc A=A+n&lt;br /&gt;
  add  A,(HL)      86         8 z0hc A=A+(HL)&lt;br /&gt;
  adc  A,r         8x         4 z0hc A=A+r+cy&lt;br /&gt;
  adc  A,n         CE nn      8 z0hc A=A+n+cy&lt;br /&gt;
  adc  A,(HL)      8E         8 z0hc A=A+(HL)+cy&lt;br /&gt;
  sub  r           9x         4 z1hc A=A-r&lt;br /&gt;
  sub  n           D6 nn      8 z1hc A=A-n&lt;br /&gt;
  sub  (HL)        96         8 z1hc A=A-(HL)&lt;br /&gt;
  sbc  A,r         9x         4 z1hc A=A-r-cy&lt;br /&gt;
  sbc  A,n         DE nn      8 z1hc A=A-n-cy&lt;br /&gt;
  sbc  A,(HL)      9E         8 z1hc A=A-(HL)-cy&lt;br /&gt;
  and  r           Ax         4 z010 A=A &amp;amp; r&lt;br /&gt;
  and  n           E6 nn      8 z010 A=A &amp;amp; n&lt;br /&gt;
  and  (HL)        A6         8 z010 A=A &amp;amp; (HL)&lt;br /&gt;
  xor  r           Ax         4 z000&lt;br /&gt;
  xor  n           EE nn      8 z000&lt;br /&gt;
  xor  (HL)        AE         8 z000&lt;br /&gt;
  or   r           Bx         4 z000 A=A | r&lt;br /&gt;
  or   n           F6 nn      8 z000 A=A | n&lt;br /&gt;
  or   (HL)        B6         8 z000 A=A | (HL)&lt;br /&gt;
  cp   r           Bx         4 z1hc compare A-r&lt;br /&gt;
  cp   n           FE nn      8 z1hc compare A-n&lt;br /&gt;
  cp   (HL)        BE         8 z1hc compare A-(HL)&lt;br /&gt;
  inc  r           xx         4 z0h- r=r+1&lt;br /&gt;
  inc  (HL)        34        12 z0h- (HL)=(HL)+1&lt;br /&gt;
  dec  r           xx         4 z1h- r=r-1&lt;br /&gt;
  dec  (HL)        35        12 z1h- (HL)=(HL)-1&lt;br /&gt;
  daa              27         4 z-0x decimal adjust akku&lt;br /&gt;
  cpl              2F         4 -11- A = A xor FF&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===GMB 16bit-Arithmetic/logical Commands===&lt;br /&gt;
&lt;br /&gt;
  add  HL,rr     x9           8 -0hc HL = HL+rr     ;rr may be BC,DE,HL,SP&lt;br /&gt;
  inc  rr        x3           8 ---- rr = rr+1      ;rr may be BC,DE,HL,SP&lt;br /&gt;
  dec  rr        xB           8 ---- rr = rr-1      ;rr may be BC,DE,HL,SP&lt;br /&gt;
  add  SP,dd     E8          16 00hc SP = SP +/- dd ;dd is 8bit signed number&lt;br /&gt;
  ld   HL,SP+dd  F8          12 00hc HL = SP +/- dd ;dd is 8bit signed number&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===GMB Rotate- und Shift-Commands===&lt;br /&gt;
&lt;br /&gt;
  rlca           07           4 000c rotate akku left&lt;br /&gt;
  rla            17           4 000c rotate akku left through carry&lt;br /&gt;
  rrca           0F           4 000c rotate akku right&lt;br /&gt;
  rra            1F           4 000c rotate akku right through carry&lt;br /&gt;
  rlc  r         CB 0x        8 z00c rotate left&lt;br /&gt;
  rlc  (HL)      CB 06       16 z00c rotate left&lt;br /&gt;
  rl   r         CB 1x        8 z00c rotate left through carry&lt;br /&gt;
  rl   (HL)      CB 16       16 z00c rotate left through carry&lt;br /&gt;
  rrc  r         CB 0x        8 z00c rotate right&lt;br /&gt;
  rrc  (HL)      CB 0E       16 z00c rotate right&lt;br /&gt;
  rr   r         CB 1x        8 z00c rotate right through carry&lt;br /&gt;
  rr   (HL)      CB 1E       16 z00c rotate right through carry&lt;br /&gt;
  sla  r         CB 2x        8 z00c shift left arithmetic (b0=0)&lt;br /&gt;
  sla  (HL)      CB 26       16 z00c shift left arithmetic (b0=0)&lt;br /&gt;
  swap r         CB 3x        8 z000 exchange low/hi-nibble&lt;br /&gt;
  swap (HL)      CB 36       16 z000 exchange low/hi-nibble&lt;br /&gt;
  sra  r         CB 2x        8 z00c shift right arithmetic (b7=b7)&lt;br /&gt;
  sra  (HL)      CB 2E       16 z00c shift right arithmetic (b7=b7)&lt;br /&gt;
  srl  r         CB 3x        8 z00c shift right logical (b7=0)&lt;br /&gt;
  srl  (HL)      CB 3E       16 z00c shift right logical (b7=0)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===GMB Singlebit Operation Commands===&lt;br /&gt;
&lt;br /&gt;
  bit  n,r       CB xx        8 z01- test bit n&lt;br /&gt;
  bit  n,(HL)    CB xx       12 z01- test bit n&lt;br /&gt;
  set  n,r       CB xx        8 ---- set bit n&lt;br /&gt;
  set  n,(HL)    CB xx       16 ---- set bit n&lt;br /&gt;
  res  n,r       CB xx        8 ---- reset bit n&lt;br /&gt;
  res  n,(HL)    CB xx       16 ---- reset bit n&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===GMB CPU-Controlcommands===&lt;br /&gt;
&lt;br /&gt;
  ccf            3F           4 -00c cy=cy xor 1&lt;br /&gt;
  scf            37           4 -001 cy=1&lt;br /&gt;
  nop            00           4 ---- no operation&lt;br /&gt;
  halt           76         N*4 ---- halt until interrupt occurs (low power)&lt;br /&gt;
  stop           10 00        ? ---- low power standby mode (VERY low power)&lt;br /&gt;
  di             F3           4 ---- disable interrupts, IME=0&lt;br /&gt;
  ei             FB           4 ---- enable interrupts, IME=1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===GMB Jumpcommands===&lt;br /&gt;
&lt;br /&gt;
  jp   nn        C3 nn nn    16 ---- jump to nn, PC=nn&lt;br /&gt;
  jp   HL        E9           4 ---- jump to HL, PC=HL&lt;br /&gt;
  jp   f,nn      xx nn nn 16;12 ---- conditional jump if nz,z,nc,c&lt;br /&gt;
  jr   PC+dd     18 dd       12 ---- relative jump to nn (PC=PC+/-7bit)&lt;br /&gt;
  jr   f,PC+dd   xx dd     12;8 ---- conditional relative jump if nz,z,nc,c&lt;br /&gt;
  call nn        CD nn nn    24 ---- call to nn, SP=SP-2, (SP)=PC, PC=nn&lt;br /&gt;
  call f,nn      xx nn nn 24;12 ---- conditional call if nz,z,nc,c&lt;br /&gt;
  ret            C9          16 ---- return, PC=(SP), SP=SP+2&lt;br /&gt;
  ret  f         xx        20;8 ---- conditional return if nz,z,nc,c&lt;br /&gt;
  reti           D9          16 ---- return and enable interrupts (IME=1)&lt;br /&gt;
  rst  n         xx          16 ---- call to 00,08,10,18,20,28,30,38&lt;/div&gt;</summary>
		<author><name>Xzakox</name></author>	</entry>

	</feed>