<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.cheatengine.org/index.php?action=history&amp;feed=atom&amp;title=Tutorials%3AAuto_Assembler%3AExample_2</id>
	<title>Tutorials:Auto Assembler:Example 2 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.cheatengine.org/index.php?action=history&amp;feed=atom&amp;title=Tutorials%3AAuto_Assembler%3AExample_2"/>
	<link rel="alternate" type="text/html" href="https://wiki.cheatengine.org/index.php?title=Tutorials:Auto_Assembler:Example_2&amp;action=history"/>
	<updated>2026-04-14T16:49:35Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.32.0</generator>
	<entry>
		<id>https://wiki.cheatengine.org/index.php?title=Tutorials:Auto_Assembler:Example_2&amp;diff=6617&amp;oldid=prev</id>
		<title>Dark Byte: Reverted edits by This content is not available (Talk) to last revision by TheyCallMeTim13</title>
		<link rel="alternate" type="text/html" href="https://wiki.cheatengine.org/index.php?title=Tutorials:Auto_Assembler:Example_2&amp;diff=6617&amp;oldid=prev"/>
		<updated>2019-03-18T19:07:24Z</updated>

		<summary type="html">&lt;p&gt;Reverted edits by &lt;a href=&quot;/index.php?title=Special:Contributions/This_content_is_not_available&quot; title=&quot;Special:Contributions/This content is not available&quot;&gt;This content is not available&lt;/a&gt; (&lt;a href=&quot;/index.php?title=User_talk:This_content_is_not_available&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;User talk:This content is not available (page does not exist)&quot;&gt;Talk&lt;/a&gt;) to last revision by &lt;a href=&quot;/index.php?title=User:TheyCallMeTim13&quot; title=&quot;User:TheyCallMeTim13&quot;&gt;TheyCallMeTim13&lt;/a&gt;&lt;/p&gt;
&lt;a href=&quot;https://wiki.cheatengine.org/index.php?title=Tutorials:Auto_Assembler:Example_2&amp;amp;diff=6617&amp;amp;oldid=6519&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Dark Byte</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.cheatengine.org/index.php?title=Tutorials:Auto_Assembler:Example_2&amp;diff=6519&amp;oldid=prev</id>
		<title>This content is not available: Replaced content with '&lt;span style=&quot;font-size:25px;color:red&quot;&gt;Sorry! Content not available.&lt;/span&gt;'</title>
		<link rel="alternate" type="text/html" href="https://wiki.cheatengine.org/index.php?title=Tutorials:Auto_Assembler:Example_2&amp;diff=6519&amp;oldid=prev"/>
		<updated>2019-03-16T15:57:29Z</updated>

		<summary type="html">&lt;p&gt;Replaced content with &amp;#039;&amp;lt;span style=&amp;quot;font-size:25px;color:red&amp;quot;&amp;gt;Sorry! Content not available.&amp;lt;/span&amp;gt;&amp;#039;&lt;/p&gt;
&lt;a href=&quot;https://wiki.cheatengine.org/index.php?title=Tutorials:Auto_Assembler:Example_2&amp;amp;diff=6519&amp;amp;oldid=5859&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>This content is not available</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.cheatengine.org/index.php?title=Tutorials:Auto_Assembler:Example_2&amp;diff=5859&amp;oldid=prev</id>
		<title>TheyCallMeTim13: /* Enable section */</title>
		<link rel="alternate" type="text/html" href="https://wiki.cheatengine.org/index.php?title=Tutorials:Auto_Assembler:Example_2&amp;diff=5859&amp;oldid=prev"/>
		<updated>2018-04-21T21:04:04Z</updated>

		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Enable section&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 21:04, 21 April 2018&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l145&quot; &gt;Line 145:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 145:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: This will [[Assembler:Commands:MOV|mov]]e the value of [[Assembler#Structure|RBX]] into the ''value at the address'' (denoted by the '''[''' and ''']''') of ''ptrSomeHook''.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: This will [[Assembler:Commands:MOV|mov]]e the value of [[Assembler#Structure|RBX]] into the ''value at the address'' (denoted by the '''[''' and ''']''') of ''ptrSomeHook''.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;; 34. cmp byte ptr [flgSomeHook],0&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;; 34. cmp byte ptr [flgSomeHook],0&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; 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;: This compares a byte pointer value at the address of ''flgSomeHook'' to 0x0 (as an immediate).&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; 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;: This &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[[Assembler:Commands:CMP|&lt;/ins&gt;compares&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;]] &lt;/ins&gt;a byte pointer value at the address of ''flgSomeHook'' to 0x0 (as an immediate).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;; 35. je o_code&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;; 35. je o_code&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: This will [[Assembler:Commands:JMP|jump]], [[Assembler:Commands:JE|if equal]] to the label ''o_code''; i.e.: if the last compare equated to being ''equal''.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: This will [[Assembler:Commands:JMP|jump]], [[Assembler:Commands:JE|if equal]] to the label ''o_code''; i.e.: if the last compare equated to being ''equal''.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;; 36. cmp byte ptr [flgSomeHook],1&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;; 36. cmp byte ptr [flgSomeHook],1&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; 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;: This compares a byte pointer value at the address of ''flgSomeHook'' to 0x1.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; 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;: This &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[[Assembler:Commands:CMP|&lt;/ins&gt;compares&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;]] &lt;/ins&gt;a byte pointer value at the address of ''flgSomeHook'' to 0x1.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;; 37. jne @f&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;; 37. jne @f&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: This will [[Assembler:Commands:JMP|jump]], [[Assembler:Commands:JNE|if not equal]] forward to the next label (denoted by the &amp;quot;@f&amp;quot;, as &amp;quot;@b&amp;quot; would be for a label back); i.e.: if the last compare equated to being ''not equal''.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: This will [[Assembler:Commands:JMP|jump]], [[Assembler:Commands:JNE|if not equal]] forward to the next label (denoted by the &amp;quot;@f&amp;quot;, as &amp;quot;@b&amp;quot; would be for a label back); i.e.: if the last compare equated to being ''not equal''.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l179&quot; &gt;Line 179:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 179:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;; 54. return&amp;amp;#8758;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;; 54. return&amp;amp;#8758;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: This places the symbol, here it denotes the placement of ''return'', this will be the ''return'' point.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: This places the symbol, here it denotes the placement of ''return'', this will be the ''return'' point.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; 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;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Disable section ===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Disable section ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>TheyCallMeTim13</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.cheatengine.org/index.php?title=Tutorials:Auto_Assembler:Example_2&amp;diff=5858&amp;oldid=prev</id>
		<title>TheyCallMeTim13 at 20:51, 21 April 2018</title>
		<link rel="alternate" type="text/html" href="https://wiki.cheatengine.org/index.php?title=Tutorials:Auto_Assembler:Example_2&amp;diff=5858&amp;oldid=prev"/>
		<updated>2018-04-21T20:51:47Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 20:51, 21 April 2018&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l166&quot; &gt;Line 166:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 166:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;; 44. exit&amp;amp;#8758;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;; 44. exit&amp;amp;#8758;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: This places the symbol, here it denotes the placement of ''exit'', this will be the start of the ''exit code'', note that the ''exit'' label is not used so it could be removed with the [[Auto_Assembler:label|label]] declaration.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: This places the symbol, here it denotes the placement of ''exit'', this will be the start of the ''exit code'', note that the ''exit'' label is not used so it could be removed with the [[Auto_Assembler:label|label]] declaration.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; 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;; jmp return&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; 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 class=&quot;diffchange diffchange-inline&quot;&gt;45. &lt;/ins&gt;jmp return&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: This will [[Assembler:Commands:JMP|jump]] to the label ''return''.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: This will [[Assembler:Commands:JMP|jump]] to the label ''return''.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>TheyCallMeTim13</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.cheatengine.org/index.php?title=Tutorials:Auto_Assembler:Example_2&amp;diff=5857&amp;oldid=prev</id>
		<title>TheyCallMeTim13: Created page with 'Category:Tutorial Category:Auto Assembler {{DISPLAYTITLE:Auto Assembler - Example 2}}  Let's look at that the following example. : Note: All numbers in the ''Auto Assembl…'</title>
		<link rel="alternate" type="text/html" href="https://wiki.cheatengine.org/index.php?title=Tutorials:Auto_Assembler:Example_2&amp;diff=5857&amp;oldid=prev"/>
		<updated>2018-04-21T20:40:51Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;#039;&lt;a href=&quot;/index.php?title=Category:Tutorial&quot; title=&quot;Category:Tutorial&quot;&gt;Category:Tutorial&lt;/a&gt; &lt;a href=&quot;/index.php?title=Category:Auto_Assembler&quot; class=&quot;mw-redirect&quot; title=&quot;Category:Auto Assembler&quot;&gt;Category:Auto Assembler&lt;/a&gt; {{DISPLAYTITLE:Auto Assembler - Example 2}}  Let&amp;#039;s look at that the following example. : Note: All numbers in the &amp;#039;&amp;#039;Auto Assembl…&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Category:Tutorial]]&lt;br /&gt;
[[Category:Auto Assembler]]&lt;br /&gt;
{{DISPLAYTITLE:Auto Assembler - Example 2}}&lt;br /&gt;
&lt;br /&gt;
Let's look at that the following example.&lt;br /&gt;
: Note: All numbers in the ''Auto Assembler'' are read as [https://wikipedia.org/wiki/Hexadecimal hexadecimal] format by default, use '''#''' or '''(int)''' for decimal format (base 10).&lt;br /&gt;
: Note: Values written in a 0x* notation are in [https://wikipedia.org/wiki/Hexadecimal hexadecimal] format.&lt;br /&gt;
[[File:AutoAssembler-Example-2.01.png|border]]&lt;br /&gt;
&amp;lt;!-- &amp;lt;pre&amp;gt;{$STRICT}&lt;br /&gt;
&lt;br /&gt;
define(address, GAME.exe+123ABC)&lt;br /&gt;
define(bytes, 0F 2F 05 7C A4 6A FE)&lt;br /&gt;
&lt;br /&gt;
////&lt;br /&gt;
//// ------------------------------ ENABLE ------------------------------&lt;br /&gt;
[ENABLE]&lt;br /&gt;
alloc(memSomeHook, 0x400)&lt;br /&gt;
&lt;br /&gt;
label(fltSomeHook)&lt;br /&gt;
registerSymbol(fltSomeHook)&lt;br /&gt;
label(flgSomeHook)&lt;br /&gt;
registerSymbol(flgSomeHook)&lt;br /&gt;
label(ptrSomeHook)&lt;br /&gt;
registerSymbol(ptrSomeHook)&lt;br /&gt;
&lt;br /&gt;
label(n_code)&lt;br /&gt;
label(o_code)&lt;br /&gt;
label(exit)&lt;br /&gt;
label(return)&lt;br /&gt;
&lt;br /&gt;
memSomeHook:&lt;br /&gt;
    fltSomeHook:&lt;br /&gt;
        dd (float)1&lt;br /&gt;
    flgSomeHook:&lt;br /&gt;
        db 00&lt;br /&gt;
    align 10&lt;br /&gt;
    ptrSomeHook:&lt;br /&gt;
        dq 0&lt;br /&gt;
    align 10 CC&lt;br /&gt;
    n_code:&lt;br /&gt;
        mov [ptrSomeHook],rbx&lt;br /&gt;
        cmp byte ptr [flgSomeHook],0&lt;br /&gt;
        je o_code&lt;br /&gt;
        cmp byte ptr [flgSomeHook],1&lt;br /&gt;
        jne @f&lt;br /&gt;
            movss xmm0,[fltSomeHook]&lt;br /&gt;
            jmp o_code&lt;br /&gt;
        @@:&lt;br /&gt;
        mov byte ptr [flgSomeHook],0&lt;br /&gt;
    o_code:&lt;br /&gt;
        movss [rbx+10],xmm0&lt;br /&gt;
    exit:&lt;br /&gt;
        jmp return&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
////&lt;br /&gt;
//// ---------- Injection Point ----------&lt;br /&gt;
address:&lt;br /&gt;
    jmp n_code&lt;br /&gt;
    nop&lt;br /&gt;
    nop&lt;br /&gt;
    return:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
////&lt;br /&gt;
//// ------------------------------ DISABLE ------------------------------&lt;br /&gt;
[DISABLE]&lt;br /&gt;
////&lt;br /&gt;
//// ---------- Injection Point ----------&lt;br /&gt;
address:&lt;br /&gt;
    db bytes&lt;br /&gt;
&lt;br /&gt;
unregisterSymbol(fltSomeHook)&lt;br /&gt;
unregisterSymbol(flgSomeHook)&lt;br /&gt;
unregisterSymbol(ptrSomeHook)&lt;br /&gt;
dealloc(memSomeHook)&amp;lt;/pre&amp;gt; --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Main section ===&lt;br /&gt;
&lt;br /&gt;
; 1. {$STRICT}&lt;br /&gt;
: When [[Auto_Assembler:STRICT|{$STRICT}]] is present in your script, Cheat Engine will not assume that an undefined symbol is a [[Auto_Assembler:label|label]], and will give you an error instead.&lt;br /&gt;
: Note that this is optional.&lt;br /&gt;
; 3. define(address, GAME.exe+123ABC)&lt;br /&gt;
: This line [[Auto_Assembler:define|define]]s or sets &amp;quot;address&amp;quot; to &amp;quot;GAME.exe+123ABC&amp;quot;,&lt;br /&gt;
: i.e.: any where in this script we place &amp;quot;address&amp;quot; Cheat Engine will replace it with &amp;quot;GAME.exe+123ABC&amp;quot;.&lt;br /&gt;
; 4. define(bytes, 0F 2F 05 7C A4 6A FE)&lt;br /&gt;
: This line [[Auto_Assembler:define|define]]s or sets &amp;quot;bytes&amp;quot; to &amp;quot;0F 2F 05 7C A4 6A FE&amp;quot;,&lt;br /&gt;
: i.e.: any where in this script we place &amp;quot;bytes&amp;quot; Cheat Engine will replace it with &amp;quot;0F 2F 05 7C A4 6A FE&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Enable section ===&lt;br /&gt;
&lt;br /&gt;
; 8. [ENABLE]&lt;br /&gt;
: This line just denotes the start of the enable section.&lt;br /&gt;
: Note: Cheat Engine table scripts require an '''enable''' and '''disable''' section.&lt;br /&gt;
; 9. alloc(memSomeHook, 0x400, address)&lt;br /&gt;
: This line [[Auto_Assembler:alloc|alloc]]ates 0x400 bytes using the symbol &amp;quot;memSomeHook&amp;quot;, near the address of ''address'' (which is &amp;quot;GAME.exe+123ABC&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
; 11. label(fltSomeHook)&lt;br /&gt;
: This creates a [[Auto_Assembler:label|label]] using the symbol &amp;quot;fltSomeHook&amp;quot;.&lt;br /&gt;
; 12. registerSymbol(fltSomeHook)&lt;br /&gt;
: This [[Auto_Assembler:registerSymbol|registers the symbol]] &amp;quot;fltSomeHook&amp;quot; with the user symbol list.&lt;br /&gt;
: A registered symbol can be used in the disable section and else where on the table.&lt;br /&gt;
; 13. label(flgSomeHook)&lt;br /&gt;
: This creates a [[Auto_Assembler:label|label]] using the symbol &amp;quot;flgSomeHook&amp;quot;.&lt;br /&gt;
; 14. registerSymbol(flgSomeHook)&lt;br /&gt;
: This [[Auto_Assembler:registerSymbol|registers the symbol]] &amp;quot;flgSomeHook&amp;quot; with the user symbol list.&lt;br /&gt;
; 15. label(ptrSomeHook)&lt;br /&gt;
: This creates a [[Auto_Assembler:label|label]] using the symbol &amp;quot;ptrSomeHook&amp;quot;.&lt;br /&gt;
; 16. registerSymbol(ptrSomeHook)&lt;br /&gt;
: This [[Auto_Assembler:registerSymbol|registers the symbol]] &amp;quot;ptrSomeHook&amp;quot; with the user symbol list.&lt;br /&gt;
&lt;br /&gt;
; 18. label(n_code)&lt;br /&gt;
: This creates a [[Auto_Assembler:label|label]] using the symbol &amp;quot;n_code&amp;quot;.&lt;br /&gt;
; 19. label(o_code)&lt;br /&gt;
: This creates a [[Auto_Assembler:label|label]] using the symbol &amp;quot;o_code&amp;quot;.&lt;br /&gt;
; 20. label(exit)&lt;br /&gt;
: This creates a [[Auto_Assembler:label|label]] using the symbol &amp;quot;exit&amp;quot;.&lt;br /&gt;
; 21. label(return)&lt;br /&gt;
: This creates a [[Auto_Assembler:label|label]] using the symbol &amp;quot;return&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
; 23. memSomeHook&amp;amp;#8758;&lt;br /&gt;
: This places the symbol, here it denotes to start assembling at the address of ''memSomeHook''.&lt;br /&gt;
; 24. fltSomeHook&amp;amp;#8758;&lt;br /&gt;
: This places the symbol, here it denotes the placement of ''fltSomeHook''.&lt;br /&gt;
; 25. dd (float)1&lt;br /&gt;
: This sets the [[Tutorials:Value_types#Value_sizes|size]] of the &amp;quot;fltSomeHook&amp;quot; as a ''data double word'' (4 bytes), with a float value of 1.&lt;br /&gt;
; 26. flgSomeHook&amp;amp;#8758;&lt;br /&gt;
: This places the symbol, here it denotes the placement of ''flgSomeHook''.&lt;br /&gt;
; 27. db 00&lt;br /&gt;
: This sets the [[Tutorials:Value_types#Value_sizes|size]] of the &amp;quot;flgSomeHook&amp;quot; as a ''data byte'', with a value of 0.&lt;br /&gt;
; 28. align 10&lt;br /&gt;
: This will [[Auto_Assembler:align|align]] what comes after this line, it aligns at an address ending with 0x10, with the default padding byte of 0x0.&lt;br /&gt;
; 29. ptrSomeHook&amp;amp;#8758;&lt;br /&gt;
: This places the symbol, here it denotes the placement of ''ptrSomeHook''.&lt;br /&gt;
; 30. dq 0&lt;br /&gt;
: This sets the [[Tutorials:Value_types#Value_sizes|size]] of the &amp;quot;ptrSomeHook&amp;quot; as a ''data quadword'' (8 bytes), with a value of 0x0.&lt;br /&gt;
: Note: ''ptrSomeHook'' will be used as a base address and in 64 bit mode 8 bytes is needed, but in 32 bit mode only 4 bytes is needed.&lt;br /&gt;
; 31. align 10 CC&lt;br /&gt;
: This will [[Auto_Assembler:align|align]] what comes after this line, it aligns at an address ending with 0x10, with a padding byte of 0xCC.&lt;br /&gt;
; 32. n_code&amp;amp;#8758;&lt;br /&gt;
: This places the symbol, here it denotes the placement of ''n_code'', this will be the start of the ''new code''.&lt;br /&gt;
; 33. mov [ptrSomeHook],rbx&lt;br /&gt;
: This will [[Assembler:Commands:MOV|mov]]e the value of [[Assembler#Structure|RBX]] into the ''value at the address'' (denoted by the '''[''' and ''']''') of ''ptrSomeHook''.&lt;br /&gt;
; 34. cmp byte ptr [flgSomeHook],0&lt;br /&gt;
: This compares a byte pointer value at the address of ''flgSomeHook'' to 0x0 (as an immediate).&lt;br /&gt;
; 35. je o_code&lt;br /&gt;
: This will [[Assembler:Commands:JMP|jump]], [[Assembler:Commands:JE|if equal]] to the label ''o_code''; i.e.: if the last compare equated to being ''equal''.&lt;br /&gt;
; 36. cmp byte ptr [flgSomeHook],1&lt;br /&gt;
: This compares a byte pointer value at the address of ''flgSomeHook'' to 0x1.&lt;br /&gt;
; 37. jne @f&lt;br /&gt;
: This will [[Assembler:Commands:JMP|jump]], [[Assembler:Commands:JNE|if not equal]] forward to the next label (denoted by the &amp;quot;@f&amp;quot;, as &amp;quot;@b&amp;quot; would be for a label back); i.e.: if the last compare equated to being ''not equal''.&lt;br /&gt;
; 38. movss xmm0,[fltSomeHook]&lt;br /&gt;
: This will [[Assembler:Commands:MOV|mov]]e [[Assembler:Commands:MOVSS|a ''Scalar Single-Precision Floating-Point'']] of the ''value at the address'' of ''fltSomeHook'' into [[Assembler#Structure|XMM0]].&lt;br /&gt;
; 39. jmp o_code&lt;br /&gt;
: This will [[Assembler:Commands:JMP|jump]] to the label ''o_code''.&lt;br /&gt;
; 40. @@&amp;amp;#8758;&lt;br /&gt;
: This denotes a generic label, it can't be used by name is only useful with &amp;quot;''@f''&amp;quot; and &amp;quot;''@b''&amp;quot;.&lt;br /&gt;
; 41. mov byte ptr [flgSomeHook],0&lt;br /&gt;
: This will [[Assembler:Commands:MOV|mov]]e a byte value of 0x0 into the ''value at the address'' of ''flgSomeHook''.&lt;br /&gt;
; 42. o_code&amp;amp;#8758;&lt;br /&gt;
: This places the symbol, here it denotes the placement of ''o_code'', this will be the start of the ''original code''.&lt;br /&gt;
; 43. movss [rbx+10],xmm0&lt;br /&gt;
: This will [[Assembler:Commands:MOV|mov]]e [[Assembler:Commands:MOVSS|a ''Scalar Single-Precision Floating-Point'']] of [[Assembler#Structure|XMM0]] into the ''value at the address'' of [[Assembler#Structure|RBX]] plus 0x10.&lt;br /&gt;
; 44. exit&amp;amp;#8758;&lt;br /&gt;
: This places the symbol, here it denotes the placement of ''exit'', this will be the start of the ''exit code'', note that the ''exit'' label is not used so it could be removed with the [[Auto_Assembler:label|label]] declaration.&lt;br /&gt;
; jmp return&lt;br /&gt;
: This will [[Assembler:Commands:JMP|jump]] to the label ''return''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; 50. address&amp;amp;#8758;&lt;br /&gt;
: This places the symbol, here it denotes to start assembling at the address of ''address'' (which is &amp;quot;GAME.exe+123ABC&amp;quot;).&lt;br /&gt;
; 51. jmp n_code&lt;br /&gt;
: This will [[Assembler:Commands:JMP|jump]] to the label ''n_code''. This is the injection hook, as it hooks the code to do some thing else.&lt;br /&gt;
: Note that, in 64 bit mode, here is where the use of ''AllocateNearThisAddress'' with [[Auto_Assembler:alloc|alloc]] helps to insure a 5 byte jump.&lt;br /&gt;
; 52. nop&lt;br /&gt;
: This is a [[Assembler:Commands:NOP|NOP]] (no operation), here it is used a padding as the original instruction was more then 5 bytes&lt;br /&gt;
; 54. return&amp;amp;#8758;&lt;br /&gt;
: This places the symbol, here it denotes the placement of ''return'', this will be the ''return'' point.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Disable section ===&lt;br /&gt;
; 59. [DISABLE]&lt;br /&gt;
: This line just denotes the start of the disable section.&lt;br /&gt;
&lt;br /&gt;
; 62. address&amp;amp;#8758;&lt;br /&gt;
: This places the symbol, here it denotes to start assembling at the address of ''address'' (which is &amp;quot;GAME.exe+123ABC&amp;quot;).&lt;br /&gt;
; 63. db bytes&lt;br /&gt;
: This denotes to start assembling data bytes using the symbol ''bytes'' (which is &amp;quot;0F 2F 05 7C A4 6A FE&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
; 65. unregisterSymbol(fltSomeHook)&lt;br /&gt;
: This [[Auto_Assembler:unregisterSymbol|unregisters the symbol]] &amp;quot;fltSomeHook&amp;quot; with the user symbol list.&lt;br /&gt;
; 66. unregisterSymbol(flgSomeHook)&lt;br /&gt;
: This [[Auto_Assembler:unregisterSymbol|unregisters the symbol]] &amp;quot;flgSomeHook&amp;quot; with the user symbol list.&lt;br /&gt;
; 67. unregisterSymbol(ptrSomeHook)&lt;br /&gt;
: This [[Auto_Assembler:unregisterSymbol|unregisters the symbol]] &amp;quot;ptrSomeHook&amp;quot; with the user symbol list.&lt;br /&gt;
; 68. dealloc(memSomeHook)&lt;br /&gt;
: This [[Auto_Assembler:dealloc|dealloc]]ates the memory at &amp;quot;memSomeHook&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Assembler]]&lt;br /&gt;
* [[Assembler:Commands|Assembler Commands]]&lt;br /&gt;
* [[Cheat_Engine:Auto Assembler|Auto Assembler]]&lt;br /&gt;
* [[Tutorials:Auto_Assembler:Templates|Auto Assembler Templates]]&lt;br /&gt;
* [[Tutorials:Auto_Assembler:Injection_basic|Code Injection Basic]]&lt;br /&gt;
* [[Tutorials:Auto_Assembler:Injection_full|Code Injection Full]]&lt;/div&gt;</summary>
		<author><name>TheyCallMeTim13</name></author>
		
	</entry>
</feed>