<?xml version="1.0" encoding="ISO-8859-2"?>
<!DOCTYPE feed SYSTEM "atom.dtd">
<!--<?xml-stylesheet href="atom.xsl" type="text/xsl" media="screen"?>-->

<feed xmlns="http://www.w3.org/2005/Atom">

<!--<feed>-->

  <title>x86asm.net</title>
  <link href="http://x86asm.net"/>
  <updated>2009-08-19T00:00:00Z</updated>
  <author>
    <name>x86asm.net</name>
    <uri>http://x86asm.net/</uri>
    <email>admin@x86asm.net</email>
  </author>
  <category term="x86"/>
  <category term="assembler"/>
  <category term="machine code"/>
  <id>x86asm.net</id>
  <link rel="self" type="application/atom+xml" href="http://x86asm.net/atom.xml"/>
  <icon>favicon.ico</icon>
  <logo></logo> <!-- n/a yet -->
  <rights type="html">x86asm.net</rights>
  <subtitle></subtitle> <!-- n/a yet -->

  <entry>
    <title>X86 Opcode and Instruction Reference</title>
    <author>
      <name>MazeGen</name>
    </author>
    <link href="http://ref.x86asm.net"/>
    <id>ref.x86asm.net</id>
    <category term="project"/>
    <category term="general"/>
    <published>2007-06-04T00:00:00Z</published>
    <updated>2010-01-20T00:00:00Z</updated>
    <summary>Mostly a bugfix release.</summary>
    <!-- <rights type="html"></rights> n/a yet -->
  </entry>

  <entry>
    <title>X86 Opcode and Instruction Reference</title>
    <author>
      <name>MazeGen</name>
    </author>
    <link href="http://ref.x86asm.net"/>
    <id>ref.x86asm.net</id>
    <category term="project"/>
    <category term="general"/>
    <published>2007-06-04T00:00:00Z</published>
    <updated>2009-08-19T00:00:00Z</updated>
    <summary>All SSE4, VMX and SMX instructions added, along with few
    new general and system instructions. This makes the reference
    up-to-date with current Intel processors.</summary>
    <!-- <rights type="html"></rights> n/a yet -->
  </entry>

  <entry>
    <title>X86 Opcode and Instruction Reference</title>
    <author>
      <name>MazeGen</name>
    </author>
    <link href="http://ref.x86asm.net"/>
    <id>ref.x86asm.net</id>
    <category term="project"/>
    <category term="general"/>
    <published>2007-06-04T00:00:00Z</published>
    <updated>2009-06-30T00:00:00Z</updated>
    <summary>Banzai! This is the first revision considered stable
    (after more than two years of development). The overall structure
    and many bugs have been fixed, no new instructions.</summary>
    <!-- <rights type="html"></rights> n/a yet -->
  </entry>

  <entry>
    <title>UEFI Programming - First Steps</title>
    <author>
      <name>vid</name>
    </author>
    <link href="http://x86asm.net/articles/uefi-programming-first-steps"/>
    <id>x86asm.net/articles/uefi-programming-first-steps</id>
    <category term="article"/>
    <category term="others"/>
    <published>2009-03-31T00:00:00Z</published>
    <updated>2009-03-31T00:00:00Z</updated>
    <summary>In this article, I will describe steps needed to start on with development of real UEFI 
applications on x86 PC, and share some practical experiences with problems doing so.
I will focus on 64-bit version of UEFI, because the 32-bit version isn't much used 
in this area (most likely due to Microsoft decision not to support UEFI in 32-bit Vista).
So, to follow some of my steps here, you'll need a 64-bit CPU (but not 64-bit OS, you
can use any 32-bit OS as well). We will finish this article with EFI Hello World application.</summary>
    <!-- <rights type="html"></rights> n/a yet -->
  </entry>

  <entry>
    <title>X86 Opcode and Instruction Reference</title>
    <author>
      <name>MazeGen</name>
    </author>
    <link href="http://ref.x86asm.net"/>
    <id>ref.x86asm.net</id>
    <category term="project"/>
    <category term="general"/>
    <published>2007-06-04T00:00:00Z</published>
    <updated>2008-12-17T00:00:00Z</updated>
    <summary>Mostly a bugfix release</summary>
    <!-- <rights type="html"></rights> n/a yet -->
  </entry>

  <entry>
    <title>Introduction to UEFI</title>
    <author>
      <name>vid</name>
    </author>
    <link href="http://x86asm.net/articles/introduction-to-uefi"/>
    <id>x86asm.net/articles/introduction-to-uefi</id>
    <category term="article"/>
    <category term="others"/>
    <published>2008-07-31T00:00:00Z</published>
    <updated>2008-10-24T00:00:00Z</updated>
    <summary>New revision: Added Mark Larson's reaction; few minor fixes</summary>
    <!-- <rights type="html"></rights> n/a yet -->
  </entry>

  <entry>
    <title>X86 Opcode and Instruction Reference</title>
    <author>
      <name>MazeGen</name>
    </author>
    <link href="http://ref.x86asm.net"/>
    <id>ref.x86asm.net</id>
    <category term="project"/>
    <category term="general"/>
    <published>2007-06-04T00:00:00Z</published>
    <updated>2008-10-19T00:00:00Z</updated>
    <summary>New revision, massive update to the reference: All SSE, SSE2, SSE3, and SSSE3 instructions
    added; alphabetically sorted editions; the store improved, prices
    discounted</summary>
    <!-- <rights type="html"></rights> n/a yet -->
  </entry>

  <entry>
    <title>UEFI Hypervisors - Winning the Race to Bare Metal</title>
    <author>
      <name>Don Bailey</name>
    </author>
    <link href="http://x86asm.net/articles/uefi-hypervisors-winning-the-race-to-bare-metal"/>
    <id>x86asm.net/articles/uefi-hypervisors-winning-the-race-to-bare-metal</id>
    <category term="article"/>
    <category term="others"/>
    <published>2008-09-24T00:00:00Z</published>
    <updated>2008-09-24T00:00:00Z</updated>
    <summary>Improvements in Operating Systems security have created a race to
"bare metal" between malware and protection software authors.  Bare
metal capabilities are defined as software or firmware applications
that run outside the context of the OS and are therefore very powerful
and difficult to detect.  Hypervisors and SMM based rootkits are
examples of bare metal capabilities.  Because the digital battle
ground is contracting, advantage goes to the one who can establish
a presence there first.</summary>
    <!-- <rights type="html"></rights> n/a yet -->
  </entry>

  <entry>
    <title>Introduction to UEFI</title>
    <author>
      <name>vid</name>
    </author>
    <link href="http://x86asm.net/articles/introduction-to-uefi"/>
    <id>x86asm.net/articles/introduction-to-uefi</id>
    <category term="article"/>
    <category term="others"/>
    <published>2008-07-31T00:00:00Z</published>
    <updated>2008-07-31T00:00:00Z</updated>
    <summary>In the beginning, there was BIOS (I assume reader knows what BIOS is). Back in those times, processors were
running in 16-bit mode, and RAM was architecturally limited to 1 megabyte. As the evolution went forth,
came 32-bit, and later 64-bit x86 CPUs, amount of RAM was increasing, and new ways of accessing it were being
developed. But BIOS remained same. This situation was was far from ideal, since BIOS code was very limited,
and operating system loader had to load kernel just with using the most basic BIOS services, from 20 years ago.
Creating new standard seemed impossible on such diverse market. But it was done anyway. </summary>
    <!-- <rights type="html"></rights> n/a yet -->
  </entry>

  <entry>
    <title>X86 Opcode and Instruction Reference</title>
    <author>
      <name>MazeGen</name>
    </author>
    <link href="http://ref.x86asm.net"/>
    <id>ref.x86asm.net</id>
    <category term="project"/>
    <category term="general"/>
    <published>2007-06-04T00:00:00Z</published>
    <updated>2008-05-15T00:00:00Z</updated>
    <summary>New Revision: All MMX instructions added; benefits for contributors</summary>
    <!-- <rights type="html"></rights> n/a yet -->
  </entry>

  <entry>
    <title>Portable x86 Flat Syntax</title>
    <author>
      <name>MazeGen</name>
    </author>
    <link href="http://x86asm.net/articles/portable-x86-flat-syntax"/>
    <id>x86asm.net/articles/portable-x86-flat-syntax</id>
    <category term="article"/>
    <category term="X86 Architecture"/>
    <published>2008-04-18T00:00:00Z</published>
    <updated>2008-04-18T00:00:00Z</updated>
    <summary>From time to time, speculations about portable
assembler (what is a contradiction itself) araise. As an assembly
programmer, I couldn't avoid these weird speculations. The
similarity between x86-32 and x64 simply can't be overlooked and
itself leads to finding some conjunctive syntax, here called Portable
x86 Flat Syntax (PFS).</summary>
    <!-- <rights type="html"></rights> n/a yet -->
  </entry>

  <entry>
    <title>X86 Opcode and Instruction Reference</title>
    <author>
      <name>MazeGen</name>
    </author>
    <link href="http://ref.x86asm.net"/>
    <id>ref.x86asm.net</id>
    <category term="project"/>
    <category term="general"/>
    <published>2007-06-04T00:00:00Z</published>
    <updated>2008-03-11T00:00:00Z</updated>
    <summary>New Revision: All x87 FPU instructions added, including
    new ones; The l column was renamed to x and now holds more
    information; In HTML a PDF editions, the prefix values were moved
    to pf column; On-line store opened; The project was renamed to X86 Opcode and Instruction Reference</summary>
    <!-- <rights type="html"></rights> n/a yet -->
  </entry>

  <entry>
    <title>OOP From Low-level Perspective</title>
    <author>
      <name>vid</name>
    </author>
    <link href="http://x86asm.net/articles/oop-from-low-level-perspective"/>
    <id>x86asm.net/articles/oop-from-low-level-perspective</id>
    <category term="article"/>
    <category term="others"/>
    <published>2008-02-06T00:00:00Z</published>
    <updated>2008-02-06T00:00:00Z</updated>
    <summary>For many lowlevel programmers, object oriented programming (OOP) tends to be
confusing and filled with abstractions. In this article I build up and explain
some aspects of OOP from C or Assembly programmer's point of view.</summary>
    <!-- <rights type="html"></rights> n/a yet -->
  </entry>

  <entry>
    <title>Fixed Point Arithmetic and Tricks</title>
    <author>
      <name>Gabriel Ivancescu</name>
    </author>
    <link href="http://x86asm.net/articles/fixed-point-arithmetic-and-tricks"/>
    <id>x86asm.net/articles/assemblers/fixed-point-arithmetic-and-tricks</id>
    <category term="article"/>
    <category term="X86 Architecture"/>
    <published>2007-12-21T00:00:00Z</published>
    <updated>2007-12-21T00:00:00Z</updated>
    <summary>I see many people get confused at fixed point and believe
    it's some kind of "hack" because they think floating point are
    "real" numbers. Real numbers are abstract mathematical
    representation - computers are not abstract, they do not employ
    normal mathematics (for example, infinite numbers). It only tries
    to "emulate" the abstract math (bits being volts, holes, magnetic
    charges, etc). People who use floating point to represent
    fractional parts definitely don't know what float is.</summary>
    <!-- <rights type="html"></rights> n/a yet -->
  </entry>

  <entry>
    <title>FASMLIB 0.8.0</title>
    <author>
      <name>vid</name>
    </author>
    <link href="http://fasmlib.x86asm.net/download.html"/>
    <id>http://fasmlib.x86asm.net/download.html</id>
    <category term="project"/>
    <published>2007-03-04T00:00:00Z</published>
    <updated>2007-12-06T00:00:00Z</updated>
    <summary>What's new: qword conversion added, HTML documentation
    added, several changes / fixes / improvements

<!--
      <ul xmlns="http://www.w3.org/1999/xhtml">
        <li>support for qword conversions</li>
        <li>support for conversions from signed decimal/hex format</li>
        <li>documentation in HTML format (single file) added</li>
        <li>added FASMLIB structures to include files</li>
        <li>restructured "Usage" part of documentation</li>
        <li>fixed DLL, added import library and MASM example for it</li>
        <li>fixed bug in stdstream.uninit in case of error</li>
        <li>"stream.peek" behavior slightly changed, to allow faster processing</li>
      </ul>
-->
    </summary>
    <!-- <rights type="html"></rights> n/a yet -->
  </entry>

  <entry>
    <title>x86 Instruction Reference</title>
    <author>
      <name>MazeGen</name>
    </author>
    <link href="http://ref.x86asm.net"/>
    <id>ref.x86asm.net</id>
    <category term="project"/>
    <category term="general"/>
    <published>2007-06-04T00:00:00Z</published>
    <updated>2007-11-29T00:00:00Z</updated>
    <summary>New Revision: The HTML table is split into two parts: one-byte and
	    two-byte opcode part. This should make browsers to render
	    it faster and more easily. I hope this also helps Firefox
	    to render the table at first (without refresh);
	    Instructions, which doesn't really test all flags but
	    push them on the stack (PUSHF, INT and few others) are
	    corrected (suggested by Wolfgang Kern);
	    PDF edition for each HTML edition</summary>
    <!-- <rights type="html"></rights> n/a yet -->
  </entry>

  <entry>
    <title>Calling BIOS from Driver in Windows XP x64</title>
    <author>
      <name>vid</name>
    </author>
    <link href="http://x86asm.net/articles/calling-bios-from-driver-in-windows-xp-x64"/>
    <id>x86asm.net/articles/assemblers/calling-bios-from-driver-in-windows-xp-x64</id>
    <category term="article"/>
    <category term="unfiled"/>
    <published>2007-11-26T00:00:00Z</published>
    <updated>2007-11-26T00:00:00Z</updated>
    <summary>As we all know, we shouldn't call BIOS from Windows
    drivers, and Windows officially doesn't support this. But
    recently, I was in situation where I had to do it, so I looked for
    some way how.</summary>
    <!-- <rights type="html"></rights> n/a yet -->
  </entry>

  <entry>
    <title>Using SSE Registers for General Purpose. SIMD with General-purpose Registers</title>
    <author>
      <name>Madis Kalme</name>
    </author>
    <link href="http://x86asm.net/articles/using-xmm-for-general-purpose-simd-with-gpr"/>
    <id>x86asm.net/articles/assemblers/using-xmm-for-general-purpose-simd-with-gpr</id>
    <category term="article"/>
    <category term="basic architecture"/>
    <published>2007-11-26T00:00:00Z</published>
    <updated>2007-11-26T00:00:00Z</updated>
    <summary>Nowadays the goal of a new CPU is not to give you the
    highest clock rates, not even the highest performance (while it's
    still a big part of it), but to give you the best
    performance-per-watt number. While specific instructions are
    introduced, the course is to perform best in every possible
    application. May it be for office work, scientific, educational or
    gaming.</summary>
    <!-- <rights type="html"></rights> n/a yet -->
  </entry>

  <entry>
    <title>Working with Big Numbers Using x86 Instructions</title>
    <author>
      <name>vid</name>
    </author>
    <link href="http://x86asm.net/articles/working-with-big-numbers-using-x86-instructions"/>
    <id>x86asm.net/articles/assemblers/working-with-big-numbers-using-x86-instructions</id>
    <category term="article"/>
    <category term="unfiled"/>
    <published>2007-11-20T00:00:00Z</published>
    <updated>2007-11-20T00:00:00Z</updated>
    <summary>New revision: Partial rewrite and additions</summary>
    <!-- <rights type="html"></rights> n/a yet -->
  </entry>

  <entry>
    <title>FDBG 001A final</title>
    <author>
      <name>Feryno</name>
    </author>
    <link href="http://fdbg.x86asm.net/download.html"/>
    <id>fdbg.x86asm.net/download.html</id>
    <category term="project"/>
    <published>2007-03-20T00:00:00Z</published>
    <updated>2007-11-12T00:00:00Z</updated>
    <summary>finished fdbg version 001A for win64</summary>
    <!-- <rights type="html"></rights> n/a yet -->
  </entry>

  <entry>
    <title>x86 Instruction Reference</title>
    <author>
      <name>MazeGen</name>
    </author>
    <link href="http://ref.x86asm.net"/>
    <id>ref.x86asm.net</id>
    <category term="project"/>
    <category term="general"/>
    <published>2007-06-04T00:00:00Z</published>
    <updated>2007-11-06T00:00:00Z</updated>
    <summary>New revision: Added coder, coder32, coder64, geek32, and
    geek64 editions. All main project's files modified. Project's
    documentation completed.</summary>
    <!-- <rights type="html"></rights> n/a yet -->
  </entry>

  <entry>
    <title>Working with Big Numbers Using x86 Instructions</title>
    <author>
      <name>vid</name>
    </author>
    <link href="http://x86asm.net/articles/working-with-big-numbers-using-x86-instructions"/>
    <id>x86asm.net/articles/assemblers/working-with-big-numbers-using-x86-instructions</id>
    <category term="article"/>
    <category term="unfiled"/>
    <published>2007-11-06T00:00:00Z</published>
    <updated>2007-11-06T00:00:00Z</updated>
    <summary>"Big number" arithmetics requires special care on x86
    architecture. You need to use some properties of arithmetic
    instructions, which are not immediately apparent.</summary>
    <!-- <rights type="html"></rights> n/a yet -->
  </entry>

  <entry>
    <title>Backdoor Support for Control-Transfer Breakpoint Features in Windows x64</title>
    <author>
      <name>Feryno</name>
    </author>
    <link href="http://x86asm.net/articles/backdoor-support-for-control-transfer-breakpoint-features"/>
    <id>x86asm.net/articles/backdoor-support-for-control-transfer-breakpoint-features</id>
    <category term="article"/>
    <category term="debugging"/>
    <published>2007-09-31T00:00:00Z</published>
    <updated>2007-09-31T00:00:00Z</updated>
    <summary>It is well known that both AMD64 and Intel EM64T CPUs
    support Control-Transfer Breakpoint Features. When I was trying to
    implement this feature in FDBG, a hidden backdoor was discovered,
    which makes the implementation very easy.</summary>
    <!-- <rights type="html"></rights> n/a yet -->
  </entry>

  <entry>
    <title>FDBG 001A beta</title>
    <author>
      <name>Feryno</name>
    </author>
    <link href="http://fdbg.x86asm.net/download.html"/>
    <id>fdbg.x86asm.net/download.html</id>
    <category term="project"/>
    <published>2007-03-20T00:00:00Z</published>
    <updated>2007-10-30T00:00:00Z</updated>
    <summary>n/a</summary>
    <!-- <rights type="html"></rights> n/a yet -->
  </entry>

  <entry>
    <title>FASMLIB 0.7.0</title>
    <author>
      <name>vid</name>
    </author>
    <link href="http://fasmlib.x86asm.net/download.html"/>
    <id>fasmlib.x86asm.net/download.html</id>
    <category term="project"/>
    <published>2007-03-04T00:00:00Z</published>
    <updated>2007-10-23T00:00:00Z</updated>
    <summary>This is after long time first "stable" release version.</summary>
    <!-- <rights type="html"></rights> n/a yet -->
  </entry>

  <entry>
    <title>x86-64 Tour of Intel Manuals</title>
    <author>
      <name>MazeGen</name>
    </author>
    <link href="http://x86asm.net/articles/x86-64-tour-of-intel-manuals"/>
    <id>x86asm.net/articles/x86-64-tour-of-intel-manuals</id>
    <category term="article"/>
    <category term="unfiled"/>
    <published>2007-10-04T00:00:00Z</published>
    <updated>2007-10-04T00:00:00Z</updated>
    <summary>I'm always surprised by how few asmers use probably the
    best source of information available - official processor
    manuals, either Intel's or AMD's. That's why this article was
    written. It should guide you step by step through complexity of
    Intel manuals, describing x86-64 architecture in the
    process.</summary>
    <!-- <rights type="html"></rights> n/a yet -->
  </entry>

  <entry>
    <title>Debugging in AMD64 64-bit Mode in Theory</title>
    <author>
      <name>Feryno</name>
    </author>
    <link href="http://x86asm.net/articles/debugging-in-amd64-64-bit-mode-in-theory"/>
    <id>x86asm.net/articles/debugging-in-amd64-64-bit-mode-in-theory</id>
    <category term="article"/>
    <category term="debugging"/>
    <published>2007-09-29T00:00:00Z</published>
    <updated>2007-09-29T00:00:00Z</updated>
    <summary>A debugger is kind of blackbox for a regular user. The
    interactions between debugger and OS are kept under the
    cover. Let's uncover them and see how it all works.</summary>
    <!-- <rights type="html"></rights> n/a yet -->
  </entry>

  <entry>
    <title>What I Dislike About GAS</title>
    <author>
      <name>vid</name>
    </author>
    <link href="http://x86asm.net/articles/what-i-dislike-about-gas"/>
    <id>x86asm.net/articles/assemblers/what-i-dislike-about-gas</id>
    <category term="article"/>
    <category term="assemblers"/>
    <published>2007-09-28T00:00:00Z</published>
    <updated>2007-09-28T00:00:00Z</updated>
    <summary>I often get to argument with various linux guys about
    AT&amp;T versus Intel syntax. There are many things I dislike on AT&amp;T
    syntax, so I decided to write them all down in this
    article.</summary>
    <!-- <rights type="html"></rights> n/a yet -->
  </entry>

  <entry>
    <title>Memory Allocation in Linux</title>
    <author>
      <name>vid</name>
    </author>
    <link href="http://x86asm.net/articles/memory-allocation-in-linux"/>
    <id>x86asm.net/articles/memory-allocation-in-linux</id>
    <category term="article"/>
    <category term="unfiled"/>
    <published>2007-09-24T00:00:00Z</published>
    <updated>2007-09-24T00:00:00Z</updated>
    <summary>Many assembly programmers make linux applications using
    only syscalls, without glibc. Altough this way is usually
    considered bad practice, it is a fact.</summary>
    <!-- <rights type="html"></rights> n/a yet -->
  </entry>

  <entry>
    <title>External Dependencies in Assemblers</title>
    <author>
      <name>vid</name>
    </author>
    <link href="http://x86asm.net/articles/external-dependencies-in-assemblers"/>
    <id>x86asm.net/articles/assemblers/external-dependencies-in-assemblers</id>
    <category term="article"/>
    <category term="assemblers"/>
    <published>2007-08-15T00:00:00Z</published>
    <updated>2007-08-15T00:00:00Z</updated>
    <summary>Each assembler handles external dependencies on its
    own. I have investigated various assemblers and made interesting
    discussion.</summary>
    <!-- <rights type="html"></rights> n/a yet -->
  </entry>

  <entry>
    <title>x86 Instruction Reference</title>
    <author>
      <name>MazeGen</name>
    </author>
    <link href="http://ref.x86asm.net"/>
    <id>ref.x86asm.net</id>
    <category term="project"/>
    <category term="general"/>
    <published>2007-06-04T00:00:00Z</published>
    <updated>2007-06-04T00:00:00Z</updated>
    <summary>This reference should be precise instruction set
    reference (including x86-64). Its principal aim is exact
    definition of instruction parameters and attributes.</summary>
    <!-- <rights type="html"></rights> n/a yet -->
  </entry>

</feed>

<!-- Keep this comment at the end of the file
Local variables:
mode: xml
sgml-omittag:nil
sgml-shorttag:nil
sgml-namecase-general:nil
sgml-general-insert-case:lower
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:2
sgml-indent-data:nil
sgml-parent-document:nil
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->
