AMD64指令集中有没有类似x86指令集中提供的伪指令?

han012 2005-03-31 11:29:38
据说AMD指令机集兼容x86指令集, 可是我把下面最简单的汇编程序拿到AMD PC(64位CPU)下编译,
用 vc++ 8.0 提供的 ml64.exe 编译器(AMD64汇编编译器).

; Hello.asm
.386
.model flat

.CODE
mov eax, 1
END

结果,编译器报告如下错误:
hello.asm(2) error A2008: Syntax error: .
hello.asm(3) error A2008: Syntax error: .

以上程序可以在x86 PC上成功编译!

我把
.386
.model flat
两行删除后, 在AMD PC下成功编译.

从结果分析,至少AMD指令集不支持
.386
.model flat 这样的语句!

我的问题是AMD指令集中有没有类似于
.386 ;选择80x86指令系统
.model flat ;选择存储模式

这样的简化段定义伪指令?
另外哪里可以找到完整的用AMD指令集编写的汇编程序例子?

谢谢!
...全文
137 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
han012 2005-04-04
  • 打赏
  • 举报
回复
我大概明白了, AMD64体系中舍弃了x86中的分段式内存模型(Segmented Memory Module), 而使用统一的flat内存模式.

64-bit mode uses a flat segmentation model of virtual memory. The 64-bit virtual-memory space is treated as a single,flat(unsegmented) address space. Program address access locations that can be anywhere in the linear 64-bit address space.

谢谢各位回答, 一会儿结帖.
longsong 2005-04-01
  • 打赏
  • 举报
回复
直接使用.code 和.data就可以了,无需指定任何模式。


longsong 2005-04-01
  • 打赏
  • 举报
回复

64位只有一个long 模式,所以不需要.model flat伪指令。也无需.386伪指令。


大熊猫侯佩 2005-03-31
  • 打赏
  • 举报
回复
从以下消息来看应该是有的,但没怎么接触~~~

http://www.enet.com.cn/elady/inforcenter/A20040531312876.html
han012 2005-03-31
  • 打赏
  • 举报
回复
masm32,masm611可以正确编译,但产生的目标代码是针对x86体系结构的,也就是32-bit代码。

我希望开发AMD64体系结构代码(AMDx86-64),即 64-bit代码,所以只能用ml64.exe编译。

AMD64 architecture中,通用寄存器(General-purpose registers)增加到了16个,而且都是64位.
RAX,RDX, RBX,RDX,RSI, RDI, RSP,RBP,R9,R10,R11,R12,R13,R14,R15

大熊猫侯佩 2005-03-31
  • 打赏
  • 举报
回复
你不用 ml64.exe 编译~~~改用 masm32 或 masm611 试试是否
还有相同错误~~~
原作者网站http://www.xuyibo.org ,感谢徐艺波辛苦整理写出的该技术手册,为我等FASM学习者提供了良好的参考资料。目前FASM学习资料实在是无比匮乏,网上也鲜见。这个技术手册无疑是雪送炭,再洗感谢原作者。 1. 简介 1.1 编译器概述 1.1.1 系统需求 1.1.2 编译器使用 1.1.3 编译器选项 1.1.4 在命令行下执行编译器 1.1.5 命令行编译器消息 1.1.6 输出格式 1.2 汇编语法 1.2.1 指令语法 1.2.2 数据定义 1.2.3 常数和标号 1.2.4 数值表达式 1.2.5 跳转和调用 1.2.6 操作数尺寸设置 2. 指令集 2.1 x86 体系指令 2.1.1 数据传送指令 2.1.2 类型转换指令 2.1.3 二进制算术指令 2.1.4 十进制算术指令 2.1.5 逻辑指令 2.1.6 控制转移指令 2.1.7 I/O 指令 2.1.8 字符串操作指令 2.1.9 标志控制指令 2.1.10 条件操作指令 2.1.11 其他指令 2.1.12 系统指令 2.1.13 FPU 指令 2.1.14 MMX 指令 2.1.15 SSE 指令 2.1.16 SSE2 指令 2.1.17 SSE3 指令 2.1.18 AMD 3DNOW!指令 2.1.19 x86-64长模式指令 2.2 控制伪指令 2.2.1 数值常量 2.2.2 条件汇编 2.2.3 重复块指令 2.2.4 地址空间 2.2.5 其他伪指令 2.2.6 多遍扫描 2.3 预处理伪指令 2.3.1 包含源文件 2.3.2 符号常量 2.3.3 宏指令 2.3.4 结构 2.3.5 重复宏指令 2.3.6 条件宏指令 2.3.7 处理顺序 2.4 格式伪指令 2.4.1 MZ 格式 2.4.2 PE 格式 2.4.3 COFF 格式 2.4.4 ELF 格式 3. Windows 编程 3.1 基本头文件 3.1.1 结构 3.1.2 导入表 3.1.3 过程 3.1.4 导出表 3.1.5 COM(组件) 3.1.6 资源 3.1.7 字符编码 3.2 扩展头文件 3.2.1 过程参数 3.2.2 结构化源码
软件类型:编程工具-调试反汇编 软件性质:商业软件,全功能版 操作系统:Windows 应用平台:Windows ,Linux ,WinCE ,MacOS X 网站链接:http://www.hex-rays.com 软件用途:反汇编,源代码恢复,调试 注:仅供学习目的交流使用,如用于商业目的请购买正版软件。 软件介绍: DataRescue IDA Pro Disassembler and Debugger 是目前最棒的一个静态反编译软件,为众多0day世界的成员和ShellCode安全分析人士不可缺少的利器!IDA Pro Disassembler and Debugger是一款交互式的,可编程的,可扩展的,多处理器的,交叉Windows或Linux WinCE MacOS平台主机来分析程序, 被公认为最好的花钱可以买到的逆向工程利器。IDA Pro已经成为事实上的分析敌意代码的标准并让其自身迅速成为攻击研究领域的重要工具。它支持数十种CPU指令集包括Intel x86,x64,MIPS,PowerPC,ARM,Z80,68000k,c8051等等。它的优点是可以更好的反汇编和更有深层分析。可以快速到达指定的代码位置;可以看到跳到指定的位置的jmp的命令位置;可以看参考字符串;可以保存静态汇编等。 从第5版起,IDA pro更名为 IDA Pro Disassembler and Debugger ,其集成了市面上7大主流调试工具的模拟器,可以在内存对程序进行调试。 Hex-Rays Decompiler 是IDA Pro 最新研究成果,它使用IDA pro SDK编制以插件的形式出现,通过IDA反汇编逆向成为可能C语言伪代码,使反编译工作量急剧下降,将程序结构和算法的核心以C语言的形式呈现。这是世界逆向工程史上的里程碑,跨平台,跨处理器的逆向C代码,总之这个工具将给你人无比震惊的结果! 许可证售价: IDA pro Advanced 5.5 基础许可证 1139 EUR (1589 USD) Hex-Rays Decompiler 1.1 基础许可证 1599 EUR (2238 USD) 支持续费 IDA pro Advanced 379 EUR/每版本 (529 USD) 支持续费 Hex-Rays Decompiler 529 EUR/每版本 (739 USD) SDK购买及支持基础费用 09年价格 10000 USD ----------有限维护商业软件利益的义务宣传广告(和谐社会,鼓励购买正版)--------------- 这个地址将带你去了解如何购买IDA pro 点我查看 This Link take you kown how to purchase IDA pro 5.5 Click me 单机证书购买申请表(Computer Licenses Apply Form) 欧元版(EUR) 美元版(USD) 名字证书购买申请表( Named Licenses Apply Form ) 欧元版(EUR) 美元版(USD) --------------------------------------------------------------------------------------------------------------------- [其他资料] 支持CPU详细列表 IDA Pro Advanced & IDA Pro 64 bits supports all the standard processors listed above plus the more complex ones listed below. IDA Pro 64 bits is included in the IDA Pro Advanced package. x64 architecture (Intel x64 and AMD64) DEC Alpha DSP563xx, DSP566xx, DSP561XX (comes with source code) TI TMS320C2X, TMS320C5X, TMS320C6X, TMS 320C54xx, TMS320C55xx, TMS320C3 (comes with source code) Hewlett-Packard HP-PA (comes with source code) Hitachi SH1, SH2, SH3, Hitachi SH4 - Dreamcast IBM - Motorola PowerPC, with or without embedded controller instruction set, Motorola MPC860 Infineon Tricore architecture (new in 5.1) Intel IA-64 Architecture - Itanium. Motorola DSP 56K, Motorola MC6816 MIPS Mark I (R2000), MIPS Mark II (R3000), MIPS Mark III: (R4000, R4200, R4300, R4400, and R4600), MIPS Mark IV: R8000, R10000, R5900 (Playstation 2), MIPS16 encoding. Mitsubishi M32R(comes with source code) Mitsubishi M7700 (comes with source code) Mitsubishi M7900 (comes with source code) Nec 78K0 and Nec 78K0S (comes with source code) STMicroelectronics ST9+, ST-10 (comes with source code) SPARCII, ULTRASPARC Siemens C166 Fujitsu F2MC-16L Fujitsu F2MC-LC (comes with source code) ---------------------------------------------------------------------------------------------------------------------- [安全检测]NOD32 4.0 病毒库 2009.12.23 通过 安装顺序如下: 1.解压Ida pro 5.5.zip 并安装程序 2.打文补丁 3.应用程序补丁 4.安装Python 2.5 注意:hex-rays Decompiler 1.1 插件不支持文,需要运行补丁才能正常运行。 [感谢声明]: 感谢为我们带来这么犀利东东的各大社区以及它们强大的组员们,和他们默默的奉献一样,冀希望于工具的传播能带给我国对信息安全的飞跃发展。 如“看雪安全论坛”,unpack等. [免责声明] ★本帖介绍的文本内容转自网络,如有出入则以官方站点公布之信息为准,凡摘自网络相关图文介绍内容的本帖不另行标注出处,原创作者如有异议可提出以便删除。 ★关于软件破解及注册机可能被杀毒软件报病毒或间谍木马(若已检测到的则将在帖特别标注),请自行甄别和取舍,不另行加以解释。 ★资源下载后请对文件做必要的安全检测,该下载内容仅限于个人测试学习之用,不得用于商业用途,并且请在下载后24小时内删除。 ★各计算机系统环境各不相同,因此不保证该软件完全兼容于你的计算机系统,最终解决软件安装运行问题请联络官方站点寻求相关技术支持。 ★凡标注为下载链接转自其他站点的,无法保证资源的供源以及资源本身等情况的完整性和可用性(不可控)。 ★资源版权归作者及其公司所有,如果你喜欢,请购买正版。 请继续搜索下载part2

21,458

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧