<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" media="screen" href="/styles/xslt/rss.xslt"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:c9="http://channel9.msdn.com">
<channel>
	<title>Channel 9 Forums - Coffeehouse - Machine code</title>
	<atom:link rel="self" type="application/rss+xml" href="http://channel9.msdn.com/Forums/rss"></atom:link>
	<image>
		<url>http://mschnlnine.vo.llnwd.net/d1/Dev/App_Themes/C9/images/feedimage.png</url>
		<title>Channel 9 Forums - Coffeehouse - Machine code</title>
		<link>http://channel9.msdn.com/Forums</link>
	</image>
	<description>Channel 9 keeps you up to date with the latest news and behind the scenes info from Microsoft that developers love to keep up with. From LINQ to SilverLight – Watch videos and hear about all the cool technologies coming and the people behind them.</description>
	<link>http://channel9.msdn.com/Forums</link>
	<language>en</language>
	<pubDate>Sun, 19 May 2013 13:46:41 GMT</pubDate>
	<lastBuildDate>Sun, 19 May 2013 13:46:41 GMT</lastBuildDate>
	<generator>Rev9</generator>
	<c9:totalResults>13</c9:totalResults>
	<c9:pageCount>-13</c9:pageCount>
	<c9:pageSize>-1</c9:pageSize>
	<item>
		<title>Coffeehouse - Machine code</title>
		<description><![CDATA[<p>is it possible to learn Machine code, Binary code, things like this. My tutor said its almost impossible....but surely since it exists someone some were down the line wrote it?</p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/Machine-code/e81a8490cb1749f4bc7da12700f3dac3#e81a8490cb1749f4bc7da12700f3dac3</link>
		<pubDate>Fri, 14 Dec 2012 14:47:50 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/Machine-code/e81a8490cb1749f4bc7da12700f3dac3#e81a8490cb1749f4bc7da12700f3dac3</guid>
		<dc:creator>TLapworth93</dc:creator>
		<slash:comments>13</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/TLapworth93/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Coffeehouse - Machine code</title>
		<description><![CDATA[<p>@<a href="/Forums/Coffeehouse/Machine-code#ce81a8490cb1749f4bc7da12700f3dac3">TLapworth93</a>:&nbsp; The last compiler written in machine code was an old one for Pascal, by the great Anders Hejlsberg.&nbsp; At least, that's what I heard.&nbsp; Why you'd write anything else other than a compiler in machine code, I don't know.&nbsp; Just for the challenge, eh?&nbsp; I wondered if it was possible to teach a young child to read machine code fluently ... don't know how I would teach it though.&nbsp; I think it's really an exercise worth trying but you'd probably give up after &quot;Hello World!&quot;.&nbsp; After you get that far, everything is just a simple matter of coding ... forever.&nbsp; <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-5.gif?v=c9' alt='Wink' /></p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/Machine-code/2d7070118e0247f1bba0a12700f55163#2d7070118e0247f1bba0a12700f55163</link>
		<pubDate>Fri, 14 Dec 2012 14:53:10 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/Machine-code/2d7070118e0247f1bba0a12700f55163#2d7070118e0247f1bba0a12700f55163</guid>
		<dc:creator>Richard Anthony Hein</dc:creator>
		<slash:comments>13</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/Richard.Hein/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Coffeehouse - Machine code</title>
		<description><![CDATA[<p>Really the only people that need to deal with the real binary machine code are the people who design CPUs and people who create compiler backends. Even then they will likely use some level of abstraction (e.g. assembly) whenever possible.</p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/Machine-code/7b5ffb95c5c846e59d4fa12700fbf218#7b5ffb95c5c846e59d4fa12700fbf218</link>
		<pubDate>Fri, 14 Dec 2012 15:17:18 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/Machine-code/7b5ffb95c5c846e59d4fa12700fbf218#7b5ffb95c5c846e59d4fa12700fbf218</guid>
		<dc:creator>Sven Groot</dc:creator>
		<slash:comments>13</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/Sven Groot/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Coffeehouse - Machine code</title>
		<description><![CDATA[<p>You mean <a href="http://en.wikipedia.org/wiki/Assembly_language">assembly</a>. It's not impossible to learn but it would be stupid to learn since each processor architecture (x86, x86-64, ARM, PowerPC) has it's own instruction set.</p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/Machine-code/ef99561800aa45c98e69a12700fc9ab9#ef99561800aa45c98e69a12700fc9ab9</link>
		<pubDate>Fri, 14 Dec 2012 15:19:42 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/Machine-code/ef99561800aa45c98e69a12700fc9ab9#ef99561800aa45c98e69a12700fc9ab9</guid>
		<dc:creator>ZippyV</dc:creator>
		<slash:comments>13</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/ZippyV/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Coffeehouse - Machine code</title>
		<description><![CDATA[<p>I think you are refering to assembly language. Yes it is certainly possible to learn and knowing the fundamentals of CPUs and their instruction sets is very valuable, IMHO. On the other hand their is little practical use for assembly language in mainstream software development. Even developers of device drivers, which are pretty close to the metal, rarely dip into using assembly - doing so presents an obvious platform maintainability problem.</p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/Machine-code/d73d412f37654b179daba12700ff9dd4#d73d412f37654b179daba12700ff9dd4</link>
		<pubDate>Fri, 14 Dec 2012 15:30:40 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/Machine-code/d73d412f37654b179daba12700ff9dd4#d73d412f37654b179daba12700ff9dd4</guid>
		<dc:creator>Jim Young</dc:creator>
		<slash:comments>13</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/Jim Young/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Coffeehouse - Machine code</title>
		<description><![CDATA[<p>Assembly languages and machine code aren't the same. Assembly files are assembled into machine code. One can certainly learn machine code... but there's little use beyond the academics of it. In college I took a course where we created a very simple virtual machine (called Simple) with an Assembler that produced the byte codes used by this machine. Very useful academic exercise, but not all that useful in the real world. There's very little benefit in knowing the machine language of the architecture you're on, unless you're actually building said architecture. Knowing the Assembly language for your architecture is more than enough.</p><p>Can't agree with folks who think it's not useful to understand Assembly, though. It's important to understand how things work at that level, if for no other reason than to be able to diagnose some class of problems that you'll run into even when developing using high level languages.</p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/Machine-code/f68fa9ac7a9f4502a1eca127011d9892#f68fa9ac7a9f4502a1eca127011d9892</link>
		<pubDate>Fri, 14 Dec 2012 17:19:49 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/Machine-code/f68fa9ac7a9f4502a1eca127011d9892#f68fa9ac7a9f4502a1eca127011d9892</guid>
		<dc:creator>William Kempf</dc:creator>
		<slash:comments>13</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/wkempf/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Coffeehouse - Machine code</title>
		<description><![CDATA[<p></p><blockquote><div class="quoteText"><p></p><p><a class="permalink" title="Post Permalink" href="/Forums/Coffeehouse/Machine-code/e81a8490cb1749f4bc7da12700f3dac3">2 hours&nbsp;ago</a>, <a href="/Niners/TLapworth93">TLapworth93</a> wrote</p><p>is it possible to learn Machine code, Binary code, things like this. My tutor said its almost impossible....but surely since it exists someone some were down the line wrote it?</p><p></p></div></blockquote><p></p><p>Your tutor is wrong. It's not hard to learn, but it only has very niche applications, such as developing custom hardware, key kernel components, compilers or some weird low-level security testing.</p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/Machine-code/c1c8415cc44d454585f5a127011db027#c1c8415cc44d454585f5a127011db027</link>
		<pubDate>Fri, 14 Dec 2012 17:20:09 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/Machine-code/c1c8415cc44d454585f5a127011db027#c1c8415cc44d454585f5a127011db027</guid>
		<dc:creator>evildictaitor</dc:creator>
		<slash:comments>13</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/evildictaitor/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Coffeehouse - Machine code</title>
		<description><![CDATA[<p>Yeah you can code in machine code (most CPU makers provide detailed manuals for their instruction set). But it's more common to program in an assembly language, which more human readable and typically maps 1:1 to machine code. But there is nothing stopping you from coding in machine code directly. I had a professor that claimed this wasn't uncommon in the 70s.</p><p><a href="http://www.intel.com/content/www/us/en/search.html?keyword=instruction+set+manual">http&#58;&#47;&#47;www.intel.com&#47;content&#47;www&#47;us&#47;en&#47;search.html&#63;keyword&#61;instruction&#43;set&#43;manual</a></p><p>There are many assemblers for x86/AMD64, here is one example often used for learning (free/multiplatform) called FASM:</p><p><a href="http://flatassembler.net/">http&#58;&#47;&#47;flatassembler.net&#47;</a></p><p>You can even write your own if you want a challenge.</p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/Machine-code/ae38f51cacbc439cb04ea127015ad160#ae38f51cacbc439cb04ea127015ad160</link>
		<pubDate>Fri, 14 Dec 2012 21:02:43 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/Machine-code/ae38f51cacbc439cb04ea127015ad160#ae38f51cacbc439cb04ea127015ad160</guid>
		<dc:creator>Bass</dc:creator>
		<slash:comments>13</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/Bass/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Coffeehouse - Machine code</title>
		<description><![CDATA[<p>The most common assembler for handwriting x86 is NASM (the Netwide assembler). It uses Intel syntax, which is the same as WinDbg and Visual Studio's syntax. FASM, MASM and GAS tend to have&nbsp;peculiarities&nbsp;because they're either really old, or really intended as a compiler back-end.</p><p>But if you're just interested in playing with assembler, create a C project (in visual studio) and do this:</p><p>__declspec(naked) foo()<br>{<br>&nbsp; __asm&nbsp;<br>&nbsp; {<br>&nbsp; &nbsp; int 3<br>&nbsp; &nbsp; mov eax, 0xaabbccdd<br>&nbsp; &nbsp; ret<br>&nbsp; }<br>}</p><p>void main()<br>{<br>&nbsp; int result = foo();<br>&nbsp; printf(&quot;%08x\r\n&quot;, result);<br>}</p><p>&quot;int 3&quot; gives you a manually inserted breakpoint so you can step through the function.</p><p>You can also right click the program at any breakpoint when you're running C or C&#43;&#43; code and click &quot;view disassembly&quot; to show the output of the compiler. You'll notice there that the code is much less understandable but also much shorter when running release builds.</p><p>Finally you can right click in the disassmbly window to &quot;Show Code Bytes&quot;, which will show you the actual opcodes that are being sent to the processor.</p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/Machine-code/e6da47fdb36a42698c62a12800d8e152#e6da47fdb36a42698c62a12800d8e152</link>
		<pubDate>Sat, 15 Dec 2012 13:09:38 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/Machine-code/e6da47fdb36a42698c62a12800d8e152#e6da47fdb36a42698c62a12800d8e152</guid>
		<dc:creator>evildictaitor</dc:creator>
		<slash:comments>13</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/evildictaitor/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Coffeehouse - Machine code</title>
		<description><![CDATA[<p>And if you want to be <em>really&nbsp;</em>hardcore and just do machine code directly&nbsp;instead of assembly, try something a bit more like this.</p><p>BYTE[] data= { 0xcc, 0x33, 0xc0, 0x40, 0xc3&nbsp;};</p><p>void main()<br>{<br>&nbsp; FARPROC fp = (FARPROC)&amp;data[0];<br>&nbsp; DWORD _ignore;<br>&nbsp; VirtualProtect(fp, sizeof(data), PAGE_EXECUTE_READWRITE, &amp;_ignore);<br>&nbsp; printf(&quot;%08x&quot;, fp());<br>}</p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/Machine-code/8d16eeddac4d4145aebaa12800da3419#8d16eeddac4d4145aebaa12800da3419</link>
		<pubDate>Sat, 15 Dec 2012 13:14:27 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/Machine-code/8d16eeddac4d4145aebaa12800da3419#8d16eeddac4d4145aebaa12800da3419</guid>
		<dc:creator>evildictaitor</dc:creator>
		<slash:comments>13</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/evildictaitor/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Coffeehouse - Machine code</title>
		<description><![CDATA[<p>damn, it all looks pretty complicated. im studying to someday go into PLC programming. industrial automation as i am being taught by a company that makes these machines. im learning C sharp but was just wondering about the machine code (or assembly language). i think i might give it a try in the near future. thanks <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif?v=c9' alt='Smiley' /></p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/Machine-code/73eaa3b07e624ce6a98fa12a0085ba57#73eaa3b07e624ce6a98fa12a0085ba57</link>
		<pubDate>Mon, 17 Dec 2012 08:06:53 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/Machine-code/73eaa3b07e624ce6a98fa12a0085ba57#73eaa3b07e624ce6a98fa12a0085ba57</guid>
		<dc:creator>TLapworth93</dc:creator>
		<slash:comments>13</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/TLapworth93/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Coffeehouse - Machine code</title>
		<description><![CDATA[<p></p><blockquote><div class="quoteText"><p></p><p><a class="permalink" title="Post Permalink" href="/Forums/Coffeehouse/Machine-code/73eaa3b07e624ce6a98fa12a0085ba57">6 hours&nbsp;ago</a>, <a href="/Niners/TLapworth93">TLapworth93</a> wrote</p><p>damn, it all looks pretty complicated. im studying to someday go into PLC programming. industrial automation as i am being taught by a company that makes these machines. im learning C sharp but was just wondering about the machine code (or assembly language). i think i might give it a try in the near future. thanks <img src="http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif?v=c9" alt="Smiley"></p><p></p></div></blockquote><p></p><p>most of the time you will read and write the assembly language code for a given cpu not the binary machine code, think of assembler as the &quot;source Code&quot; for the machine.</p><p>when you have to fix a bug in the code you will often use a tool that may be called a debugger or a monitor that can read a block of memory and display the assembly code that it in that block so that you can understand it more rapidly.&nbsp; in time you will start to see how the two are related</p><p>most of them will show hex values on the left and then the assembly on the right so that you can learn them both.</p><p>but often you may also have a C compiler that has been optimized to generate code for a given cpu that let's you spend say 95 to 99% of the time working in C code.</p><p>C can often be translated by a good compiler to very clean tight machine code.</p><p>what you should do first is get really good at converting between number systems, decimal, octal, hexadecimal and&nbsp;binary as that skill will help you learn to read the memory dumps that have the machine code sections.</p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/Machine-code/12e1822ce74740549e6ea12a00ecc5ad#12e1822ce74740549e6ea12a00ecc5ad</link>
		<pubDate>Mon, 17 Dec 2012 14:22:03 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/Machine-code/12e1822ce74740549e6ea12a00ecc5ad#12e1822ce74740549e6ea12a00ecc5ad</guid>
		<dc:creator>figuerres</dc:creator>
		<slash:comments>13</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/figuerres/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Coffeehouse - Machine code</title>
		<description><![CDATA[<p>You can get a good feel for assembly without the complexity of the x86 instruction set by playing around with a RISC assembler. We did this in college and it was really neat to get down to that level. It makes you appreciate the higher level languages even more.</p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/Machine-code/5e3f9693b4fb44939027a12b002b63f8#5e3f9693b4fb44939027a12b002b63f8</link>
		<pubDate>Tue, 18 Dec 2012 02:37:58 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/Machine-code/5e3f9693b4fb44939027a12b002b63f8#5e3f9693b4fb44939027a12b002b63f8</guid>
		<dc:creator>Scott</dc:creator>
		<slash:comments>13</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/spivonious/Discussions/RSS</wfw:commentRss>
	</item>
</channel>
</rss>