x64汇编问题

ojc520520 2015-05-14 01:24:27

本人小白,对16位32位汇编只是略知一二(刚入门那种),现在突然接触x64的汇编,整个人蒙了;最近用x64的vs2013下不能内嵌汇编了(__asm),我的方法就是用单独的asm文件编译一个.obj和c++链接到一起,但是问题来了,主要不是在单独编译.asmd的设置上,而是在汇编语法上;
问题1:x64汇编的语法是什么样的比如怎么声明定义函数,在win32汇编的开头好像有.386与.model stdcall,flat之类的,那x64汇编了? 求参考的源码和相关的书籍与教程;
问题2:
在vs2013上的.asm文件中编写时代码无颜色,有没有这方面的插件可以供使用;
哪位好心的帮小弟解答下感激不尽;
问题3:
程序代码:
mov r11, 10000h//这句代码在MFC的项目上报错你,而在WDK的项目上正常;
//ASM.asm(24): error A2008: syntax error : in instruction
//1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\BuildCustomizations\masm.targets(50,5): error MSB3721: 命令“ml64.exe /c /nologo /Zi /Fo"x64\Debug\ASM.obj" /W3 /errorReport:prompt /TaASM.asm”已退出,返回代码为 1。
extrn MessageBoxA: proc


.data

text db 'Hello x64!', 0
caption db 'My First x64 Application', 0

.code
Main proc
sub rsp,28h
xor r9d,r9d
mov r11, 1000h//这句会报错错;
lea r8, caption
lea rdx, text
xor rcx,rcx
call MessageBoxA
add rsp,28h
ret
Main ENDP
...全文
490 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
fhw217 2015-05-28
  • 打赏
  • 举报
回复
VS2013的ASM语法高亮插件AsmHighlighter 把邮箱留下我发给你 双击安装 如果安装后没有高亮源代码显示 关闭VS然后从注册表中删除下面的项 HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\12.0\FontAndColors\Cache
赵4老师 2015-05-23
  • 打赏
  • 举报
回复
引用 3 楼 ojc520520 的回复:
[quote=引用 2 楼 zhao4zhong1 的回复:] 楼主可以设置让64位编译器输出C/C++对应的汇编文件,然后参考其内容。
老师能够详细点吗?感觉很不错这方法,但不知道怎么弄![/quote] 虽然我没在Win64上实际用过VS,但下面Win32下设置VS编译时生成C/C++对于你跟汇编文件的过程仅供参考: 项目、属性、配置属性、C/C++、输出文件、汇编程序输出、带源代码的程序集 (/FAs)
  • 打赏
  • 举报
回复
这个是没有问题的,只是你的文件最后缺少end。
ojc520520 2015-05-22
  • 打赏
  • 举报
回复
引用 2 楼 zhao4zhong1 的回复:
楼主可以设置让64位编译器输出C/C++对应的汇编文件,然后参考其内容。
老师能够详细点吗?感觉很不错这方法,但不知道怎么弄!
赵4老师 2015-05-21
  • 打赏
  • 举报
回复
楼主可以设置让64位编译器输出C/C++对应的汇编文件,然后参考其内容。

21,459

社区成员

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

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