a.asm

global Start
section .text
inc dword [esi]
push edi
mov edi,[esp+0x14]
λ nasm -f win32 a.asm -l a.lst
     1                                  global Start
2 section .text
3 00000000 FF06 inc dword [esi]
4 00000002 57 push edi
5 00000003 8B7C2414 mov edi,[esp+0x14]

如果你编写的是x64指令:

λ nasm -f win64 a.asm -l a.lst
>nasm --help
Usage: nasm [-@ response_file] [options...] [--] filename
nasm -v (or --v) Options (values in brackets indicate defaults): -h show this text and exit (also --help)
-v (or --v) print the NASM version number and exit
-@ file 响应文件; 每行一个命令行选项 -o outfile 将输出写入输出文件
--keep-all 即使发生错误也不会删除输出文件 -Xformat 指定错误报告格式(gnu或vc)
-s 将错误消息重定向到stdout
-Zfile 将错误消息重定向到文件 -M 在stdout上生成Makefile依赖项
-MG d:o, 假定丢失的文件已生成
-MF file 设置Makefile依赖文件
-MD file assemble and generate dependencies
-MT file 依赖目标名称
-MQ file 依赖关系目标名称(带引号)
-MP 发出虚假目标 -f format 选择输出文件格式
bin 平面原始二进制文件(MS-DOS,嵌入式,...)[默认]
ith Intel Hex编码的平面二进制
srec 摩托罗拉S记录编码的平面二进制
aout Linux a.out
aoutb NetBSD/FreeBSD a.out
coff COFF(i386)(DJGPP,某些Unix变体)
elf32 ELF32 (i386) (Linux,大多数Unix变体)
elf64 ELF64 (x86-64) (Linux,大多数Unix变体)
elfx32 ELFx32 (ELF32 for x86-64) (Linux)
as86 as86(bin86 / dev86工具链)
obj 特尔/微软OMF(MS-DOS,OS / 2,Win16)
win32 Microsoft扩展了Win32的COFF(i386)
win64 Microsoft为Win64(x86-64)扩展了COFF
rdf 可重定位动态对象文件格式v2.0
ieee IEEE-695(LADsoft变体)目标文件格式
macho32 Mach-O i386(Mach,包括MacOS X及其变体)
macho64 Mach-O x86-64(Mach,包括MacOS X及其变体)
dbg 跟踪传递到输出阶段的所有信息
elf “elf32”的旧别名
macho “macho32”的旧别名
win “win32”的旧别名 -g 生成调试信息
-F format 选择调试格式(取决于输出格式)
-gformat 与-g -F格式相同
elf32: dwarf ELF32 (i386) dwarf (newer) [default]
stabs ELF32 (i386) stabs (older)
elf64: dwarf ELF64 (x86-64) dwarf (newer) [default]
stabs ELF64 (x86-64) stabs (older)
elfx32: dwarf ELFx32 (x86-64) dwarf (newer) [default]
stabs ELFx32 (x86-64) stabs (older)
obj: borland Borland Debug Records [default]
win32: cv8 Codeview 8+ [default]
win64: cv8 Codeview 8+ [default]
ieee: ladsoft LADsoft Debug Records [default]
macho32: dwarf Mach-O i386 dwarf for Darwin/MacOS [default]
macho64: dwarf Mach-O x86-64 dwarf for Darwin/MacOS [default]
dbg: debug Trace of all info passed to debug stage [default] -l listfile 将列表写入列表文件
-Lflags... 将可选信息添加到列表文件
-Lb 显示内置宏程序包(标准和%use)
-Ld 显示字节并以十进制而不是十六进制重复计数
-Le 显示预处理的输出
-Lf 忽略.nolist(强制输出)
-Lm 显示带有扩展参数的多行宏调用
-Lp 每过一次输出一个列表文件,以防出错
-Ls 显示所有单行宏定义
-Lw 每行之后刷新输出
-L+ 启用所有列表选项(非常详细!) -Oflags... 优化操作码,立即数和分支偏移
-O0 没有优化
-O1 最小优化
-Ox 多遍优化(默认)
-Ov 显示最后执行的通过次数
-t 以受限的SciTech TASM兼容模式组装 -E (or -e) 仅预处理(默认情况下将输出写入标准输出)
-a 不要预处理(仅assemble)
-Ipath 将路径名添加到包含文件路径
-Pfile 预包含文件(--include)
-Dmacro[=str] 预定义宏
-Umacro 取消定义宏
--pragma str 预执行特定的 %%pragma
--before str 在输入之前添加行(通常是预处理程序语句)
--no-line 忽略输入中的%line指令 --prefix str 将给定的字符串添加到所有extern的名称之前,
通用符号和全局符号(--gprefix)
--suffix str 将给定的字符串附加到所有extern的名称中,
通用符号和全局符号(--gprefix)
--lprefix str 将给定的字符串放在本地符号之前
--lpostfix str 将给定的字符串附加到本地符号 -w+x 启用警告x(-Wx)
-w-x 禁用警告x(-Wno-x)
-w[+-]error 宣传所有错误警告 (-Werror)
-w[+-]error=x 将警告x提升为错误 (-Werror=x)
all 所有可能的警告
bnd 无效的BND前缀[on]
db-empty 没有用于数据声明的操作数[on]
environment 不存在的环境变量[on]
float 所有带有“ float-”前缀的警告
float-denorm 浮点异常[关闭]
float-overflow 浮点溢出[on]
float-toolong 浮点数中的位数过多[on]
float-underflow 浮点下溢[关闭]
hle 无效的HLE前缀[on]
label 所有带有“ label-”前缀的警告
label-orphan 仅在行上加上标签,而不能在末尾加上“:”
label-redef 标签重新定义为相同的值[off]
label-redef-late label(在代码生成过程中重新定义) [error]
lock 可解锁指令上的LOCK前缀 [on]
macro 所有带有前缀的警告 "macro-"
macro-defaults 具有比可选参数更多默认值的宏 [on]
macro-params 所有带有前缀的警告 "macro-params-"
macro-params-legacy 不正确地调用多行宏以获得旧版支持 [on]
macro-params-multi 参数计数错误的多行宏调用 [on]
macro-params-single 参数计数错误的单行宏调用 [on]
negative-rep 常规%rep计数 [on]
number-overflow 数值常数不适合 [on]
obsolete 所有带有前缀的警告 "obsolete-"
obsolete-nop 指令已过时,并且是目标CPU上的noop [on]
obsolete-removed 指令已过时并已在目标CPU上删除 [on]
obsolete-valid 指令已过时,但在目标CPU上有效 [on]
phase 稳定期间的相位误差 [off]
pragma 所有带有前缀的警告 "pragma-"
pragma-bad 格式错误的%pragma [off]
pragma-empty 空%pragma指令 [off]
pragma-na %pragma不适用于此编译 [off]
pragma-unknown 未知的%pragma工具或指令 [off]
ptr 其他汇编程序中使用的非NASM关键字 [on]
regsize 寄存器大小规格被忽略 [on]
unknown-warning -W / -w或警告指令中的未知警告 [off]
user %warning指令 [on]
warn-stack-empty 警告堆栈为空 [on]
zeroing 初始化节中的RESx变为零 [on]
zext-reloc 重定位零扩展以匹配输出格式 [on]
other 上面没有特别提到的任何警告 [on] --limit-X val 设定执行极限X
passes 总通过次数[不限]
stalled-passes 没有前进的通过次数[1000]
macro-levels 宏扩展级别[10000]
macro-tokens tokens processed during single-lime macro expansion [10000000]
mmacros 最后返回之前的多行宏 [100000]
rep %rep count [1000000]
eval expression evaluation descent [8192]
lines 总处理的源代码行 [2000000000]

asm 查看字节码的更多相关文章

  1. AutoRegister ASM AOP 字节码 案例 原理 MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  2. python查看字节码

    查看字节码可以帮助我们更好的理解python的执行流程 查看字节码列表 import opcode for op in range(len(opcode.opname)): print('0x%.2X ...

  3. 001-Eclipse、idea集成javap查看字节码、javap说明

    一.概述 分析java语言特性的一个好帮手是使用javap工具查看java编译后的字节码,如何在eclipse中配置javap工具快速查看java字节码. 二.Eclipse集成javap查看字节码 ...

  4. 【synchronized锁】通过synchronized锁 反编译查看字节码指令分析synchronized关键字修饰方法与代码块的区别

    前提: 首先要铺垫几个前置的知识: Java中的锁如sychronize锁是对象锁,Java对象头中具有标识位,当对象锁升级为重量级锁时,重量级锁的标识位会指向监视器monitor, 而每个Java对 ...

  5. Intellij IDEA中查看字节码

    首先安装插件,这俩都勾上 Intellij IDEA 直接集成了一个工具菜单,可以直接查看字节码,打开 ByteCode 插件窗口方法如下:

  6. idea 查看字节码 bytecode插件 (jclasslib Bytecode Viewer、ASM Bytecode Viewer )

    文章目录 jclasslib Bytecode Viewer ASM Bytecode Viewer jclasslib Bytecode Viewer 然后重启idea===>重新编译(构建项 ...

  7. Eclipse集成javap查看字节码

    分析java语言特性的一个好帮手是使用javap工具查看java编译后的字节码,楼主今天在学习java泛型中的桥方法时遇到一些不解,想到javap这个好工具可以帮助解答一些疑惑,索性就捣鼓如何在ecl ...

  8. eclipse中查看字节码

    1:在线安装ByteCode插件 打开Eclipse Go to"Help -> Install new Software... -> Work with:"中选择By ...

  9. IDEA 查看字节码

    参考:https://www.jianshu.com/p/18953ec8c0b7 打开工具栏 输入参数: 参数: $JDKPath$\bin\javap.exe -c $FileClass$ $Ou ...

随机推荐

  1. LOJ10015扩散

    10015. 「一本通 1.2 练习 2」扩散   题目描述 一个点每过一个单位时间就会向 4 个方向扩散一个距离,如图所示:两个点 a .b 连通,记作e(a,b) ,当且仅当 a.b 的扩散区域有 ...

  2. Flutter环境搭建遇坑小结(一)

    对flutter的了解与开发也有一段时间了,总的来说,搭建开发环境遇到的各种坑也是很多,尤其对于初次接触Android开发的人员来说 一.flutter运行提示Running Gradle task ...

  3. linux shell 判断空字符串的几种方法!

    在书写linux shell 脚本我们经常会遇到,对一个字符串是否为空进行判断,下面我对几种常用的方法进行了一个总结: 1.-z判断 -z string True if the length of s ...

  4. cassandra权威指南读书笔记--Cassandra架构(2)

    环和令牌cassandra的数据管理是用一个环来表示.为环中的每个节点分配一or多个数据范围,用token描述.token由64位整数ID表示,范围-2^(63)~2^(63)-1.使用对分区键进行一 ...

  5. 手把手教你在容器服务 TKE 中使用动态准入控制器

    在 TKE 中使用动态准入控制器 原理概述 动态准入控制器 Webhook 在访问鉴权过程中可以更改请求对象或完全拒绝该请求,其调用 Webhook 服务的方式使其独立于集群组件,具有非常大的灵活性, ...

  6. 使用 with as 优化SQL

    当我们书写一些结构相对复杂的SQL语句时,可能某个子查询在多个层级多个地方存在重复使用的情况,这个时候我们可以使用 with as 语句将其独立出来,极大提高SQL可读性,简化SQL~ with as ...

  7. 2019 ccpc秦皇岛

    1006 (dfs) #include <bits/stdc++.h> using namespace std; const int inf = 0x3f3f3f3f; const dou ...

  8. AtCoder Beginner Contest 183

    第二次ak,纪念一下. 比赛链接:https://atcoder.jp/contests/abc183/tasks A - ReLU 题解 模拟. 代码 #include <bits/stdc+ ...

  9. 2020 ICPC Universidad Nacional de Colombia Programming Contest

    2020 ICPC Universidad Nacional de Colombia Programming Contest A. Approach 三分 显然答案可以三分,注意\(eps\)还有两条 ...

  10. AtCoder - agc043_a 和 POJ - 2336 dp

    题意: 给你一个n行m列由'#'和'.'构成的矩阵,你需要从(1,1)点走到(n,m)点,你每次只能向右或者向下走,且只能走'.'的位置. 你可以执行操作改变矩阵: 你可以选取两个点,r0,c0;r1 ...