汇编工具nasm

  • q2_507574
    了解作者
  • 646.1KB
    文件大小
  • zip
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-04-07 03:55
    上传日期
windows下汇编工具nasm 可以集成到VC中 自动编译*.asm文件
nasm-0[1].98.39.zip
  • nasm-0.98.39
  • doc
  • info
  • nasm.info
    16.3KB
  • nasm.info-1
    300.4KB
  • nasm.info-3
    114.9KB
  • nasm.info-2
    300.2KB
  • html
  • nasmdoca.html
    10.2KB
  • nasmdoc4.html
    71.8KB
  • nasmdoci.html
    118.8KB
  • nasmdoc1.html
    10KB
  • nasmdoc6.html
    48KB
  • nasmdoc8.html
    24.9KB
  • nasmdoc0.html
    71.5KB
  • nasmdoc3.html
    35.8KB
  • nasmdocb.html
    336.6KB
  • nasmdo10.html
    10.2KB
  • nasmdoc5.html
    15.7KB
  • nasmdoc2.html
    32.8KB
  • nasmdoc7.html
    42.5KB
  • nasmdoc9.html
    9.2KB
  • Makefile
    1.8KB
  • copying
    24.4KB
  • nasm.exe
    441.9KB
  • ndisasm.exe
    242.6KB
内容介绍
<html><head><title>NASM Manual</title></head> <body><h1 align=center>The Netwide Assembler: NASM</h1> <p align=center><a href="nasmdoca.html" rel='nofollow' onclick='return false;'>Previous Chapter</a> | <a href="nasmdoc0.html" rel='nofollow' onclick='return false;'>Contents</a> | <a href="nasmdoci.html" rel='nofollow' onclick='return false;'>Index</a> <h2><a name="appendix-B" rel='nofollow' onclick='return false;'>Appendix B: x86 Instruction Reference</a></h2> <p>This appendix provides a complete list of the machine instructions which NASM will assemble, and a short description of the function of each one. <p>It is not intended to be exhaustive documentation on the fine details of the instructions' function, such as which exceptions they can trigger: for such documentation, you should go to Intel's Web site, <a href="http://developer.intel.com/design/Pentium4/manuals/" rel='nofollow' onclick='return false;'><code><nobr>http://developer.intel.com/design/Pentium4/manuals/</nobr></code></a>. <p>Instead, this appendix is intended primarily to provide documentation on the way the instructions may be used within NASM. For example, looking up <code><nobr>LOOP</nobr></code> will tell you that NASM allows <code><nobr>CX</nobr></code> or <code><nobr>ECX</nobr></code> to be specified as an optional second argument to the <code><nobr>LOOP</nobr></code> instruction, to enforce which of the two possible counter registers should be used if the default is not the one desired. <p>The instructions are not quite listed in alphabetical order, since groups of instructions with similar functions are lumped together in the same entry. Most of them don't move very far from their alphabetic position because of this. <h3><a name="section-B.1" rel='nofollow' onclick='return false;'>B.1 Key to Operand Specifications</a></h3> <p>The instruction descriptions in this appendix specify their operands using the following notation: <ul> <li>Registers: <code><nobr>reg8</nobr></code> denotes an 8-bit general purpose register, <code><nobr>reg16</nobr></code> denotes a 16-bit general purpose register, and <code><nobr>reg32</nobr></code> a 32-bit one. <code><nobr>fpureg</nobr></code> denotes one of the eight FPU stack registers, <code><nobr>mmxreg</nobr></code> denotes one of the eight 64-bit MMX registers, and <code><nobr>segreg</nobr></code> denotes a segment register. In addition, some registers (such as <code><nobr>AL</nobr></code>, <code><nobr>DX</nobr></code> or <code><nobr>ECX</nobr></code>) may be specified explicitly. <li>Immediate operands: <code><nobr>imm</nobr></code> denotes a generic immediate operand. <code><nobr>imm8</nobr></code>, <code><nobr>imm16</nobr></code> and <code><nobr>imm32</nobr></code> are used when the operand is intended to be a specific size. For some of these instructions, NASM needs an explicit specifier: for example, <code><nobr>ADD ESP,16</nobr></code> could be interpreted as either <code><nobr>ADD r/m32,imm32</nobr></code> or <code><nobr>ADD r/m32,imm8</nobr></code>. NASM chooses the former by default, and so you must specify <code><nobr>ADD ESP,BYTE 16</nobr></code> for the latter. <li>Memory references: <code><nobr>mem</nobr></code> denotes a generic memory reference; <code><nobr>mem8</nobr></code>, <code><nobr>mem16</nobr></code>, <code><nobr>mem32</nobr></code>, <code><nobr>mem64</nobr></code> and <code><nobr>mem80</nobr></code> are used when the operand needs to be a specific size. Again, a specifier is needed in some cases: <code><nobr>DEC [address]</nobr></code> is ambiguous and will be rejected by NASM. You must specify <code><nobr>DEC BYTE [address]</nobr></code>, <code><nobr>DEC WORD [address]</nobr></code> or <code><nobr>DEC DWORD [address]</nobr></code> instead. <li>Restricted memory references: one form of the <code><nobr>MOV</nobr></code> instruction allows a memory address to be specified <em>without</em> allowing the normal range of register combinations and effective address processing. This is denoted by <code><nobr>memoffs8</nobr></code>, <code><nobr>memoffs16</nobr></code> and <code><nobr>memoffs32</nobr></code>. <li>Register or memory choices: many instructions can accept either a register <em>or</em> a memory reference as an operand. <code><nobr>r/m8</nobr></code> is a shorthand for <code><nobr>reg8/mem8</nobr></code>; similarly <code><nobr>r/m16</nobr></code> and <code><nobr>r/m32</nobr></code>. <code><nobr>r/m64</nobr></code> is MMX-related, and is a shorthand for <code><nobr>mmxreg/mem64</nobr></code>. </ul> <h3><a name="section-B.2" rel='nofollow' onclick='return false;'>B.2 Key to Opcode Descriptions</a></h3> <p>This appendix also provides the opcodes which NASM will generate for each form of each instruction. The opcodes are listed in the following way: <ul> <li>A hex number, such as <code><nobr>3F</nobr></code>, indicates a fixed byte containing that number. <li>A hex number followed by <code><nobr>+r</nobr></code>, such as <code><nobr>C8+r</nobr></code>, indicates that one of the operands to the instruction is a register, and the `register value' of that register should be added to the hex number to produce the generated byte. For example, EDX has register value 2, so the code <code><nobr>C8+r</nobr></code>, when the register operand is EDX, generates the hex byte <code><nobr>CA</nobr></code>. Register values for specific registers are given in <a href="#section-B.2.1" rel='nofollow' onclick='return false;'>section B.2.1</a>. <li>A hex number followed by <code><nobr>+cc</nobr></code>, such as <code><nobr>40+cc</nobr></code>, indicates that the instruction name has a condition code suffix, and the numeric representation of the condition code should be added to the hex number to produce the generated byte. For example, the code <code><nobr>40+cc</nobr></code>, when the instruction contains the <code><nobr>NE</nobr></code> condition, generates the hex byte <code><nobr>45</nobr></code>. Condition codes and their numeric representations are given in <a href="#section-B.2.2" rel='nofollow' onclick='return false;'>section B.2.2</a>. <li>A slash followed by a digit, such as <code><nobr>/2</nobr></code>, indicates that one of the operands to the instruction is a memory address or register (denoted <code><nobr>mem</nobr></code> or <code><nobr>r/m</nobr></code>, with an optional size). This is to be encoded as an effective address, with a ModR/M byte, an optional SIB byte, and an optional displacement, and the spare (register) field of the ModR/M byte should be the digit given (which will be from 0 to 7, so it fits in three bits). The encoding of effective addresses is given in <a href="#section-B.2.5" rel='nofollow' onclick='return false;'>section B.2.5</a>. <li>The code <code><nobr>/r</nobr></code> combines the above two: it indicates that one of the operands is a memory address or <code><nobr>r/m</nobr></code>, and another is a register, and that an effective address should be generated with the spare (register) field in the ModR/M byte being equal to the `register value' of the register operand. The encoding of effective addresses is given in <a href="#section-B.2.5" rel='nofollow' onclick='return false;'>section B.2.5</a>; register values are given in <a href="#section-B.2.1" rel='nofollow' onclick='return false;'>section B.2.1</a>. <li>The codes <code><nobr>ib</nobr></code>, <code><nobr>iw</nobr></code> and <code><nobr>id</nobr></code> indicate that one of the operands to the instruction is an immediate value, and that this is to be encoded as a byte, little-endian word or little-endian doubleword respectively. <li>The codes <code><nobr>rb</nobr></code>, <code><nobr>rw</nobr></code> and <code><nobr>rd</nobr></code> indicate that one of the operands to the instruction is an immediate value, and that the <em>difference</em> between this value and the address of the end of the instruction is to be encoded as a byte, word or doubleword respectively. Where the form <code><nobr>rw/rd</nobr></code> appears, it indicates that either <code><nobr>rw</nobr></code> or <code><nobr>rd</nobr></code> should be used according to whether assembly is being performed in <code><nobr>BITS 16</nobr></code> or <code><nobr>BITS 32</nobr></code> state respectively. <li>The codes <code><nobr>ow</nobr></code> and <code><nobr>od</nobr></code> indicate that one of the operands to the instru
评论
    相关推荐
    • Windows 基础
      Windows API 基础 Windows API 基础 Windows API 基础 Windows API 基础 Windows API 基础
    • windows diff pic windows windows
      windows diff pic windows windows windows windows
    • windows记事本
      windows简单记事本使用c++实现,可以实现一个简单记事本功能
    • windows 窗体
      加载子窗体的源码,windows 窗体。
    • windows API CHM
      windows API CHM,1000个API函数的介绍 windows API CHM,1000个API函数的介绍 windows API CHM,1000个API函数的介绍 windows API CHM,1000个API函数的介绍 windows API CHM,1000个API函数的介绍
    • windows系统解析
      1.windows XP系统内核文件分析(全) 2.Windows2000XP系统文件夹详解 3.Windows下的EXE文件解析 4.WINDOWS常见文件夹完全解析 5.Windows文件解析——CWINDOWSsystem32driversetchosts 6.Windows系统文件解析 7.对...
    • Windows清除工具
      微软公司发布的Windows Installer Cleanup Utility(Windows Installer 清除工具)。有了Windows Installer CleanUp Utility,您可以轻而易举地删除某个程序的Windows Installer配置信息。如果您在安装程序的时候遇到...
    • windows开发
      很好的windows开发入门文档。对于初学者很有帮助,推荐下载。
    • Windows API 大全
      Windows API 大全,WIndows API参考大全,Windows 7 系统下hlp文件打不开 根据系统类型安装 Windows6.1-KB917607-x64.msu 或 Windows6.1-KB917607-x86.msu 即可
    • Windows Install Clean Up
      利用 Windows Installer 清理实用工具,可以删除程序的 Windows Installer 配置信息。如果您遇到安装(安装程序)问题,可能需要删除程序的 Windows Installer 配置信息。例如,第一次安装程序时没有包括其中的某个...