vs2010 c++中内嵌汇编代码问题

getinposition 2013-05-06 10:13:54
试着在vc中写汇编,不过例子有点调不过去,问问哪里出错
就是简单的printf,对着网上找的和vs中汇编窗口的内容。我感觉在汇编窗口中看到的和我写的应该是相同的,为什么调式的时候会出程序停止工作这种错误呢?编译是没问题的


#include <stdio.h>

char szformat[] = "%s %s\n";
char szHello[] = "Hello";
char szWorld[] = "world";

int main()
{
printf(szformat, szHello, szWorld);
__asm
{
push offset szWorld
push offset szHello
push offset szformat
call printf
add esp,0Ch
}

return 0;
}
...全文
313 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
shao1505 2015-06-16
  • 打赏
  • 举报
回复
vs2010 x64 内嵌汇编不能用,怎么弄啊??谢谢
getinposition 2013-05-06
  • 打赏
  • 举报
回复
引用 7 楼 majia2011 的回复:
mov eax,ptintf call eax
解决了!!!!请教为什么要mov eax一次才正确呢?什么原理?
nature19862001 2013-05-06
  • 打赏
  • 举报
回复
引用 7 楼 majia2011 的回复:
mov eax,ptintf call eax
学习了
majia2011 2013-05-06
  • 打赏
  • 举报
回复
mov eax,ptintf call eax
getinposition 2013-05-06
  • 打赏
  • 举报
回复
出错提示这个,不知道有没有原因。 Unhandled exception at 0x00e682d4 in ConsoleTest.exe:0xC0000005:Access violation.
getinposition 2013-05-06
  • 打赏
  • 举报
回复
试了_printf编译就过不去啊。但是这样在vs2010中会出错,把汇编注释掉就正常了,而编译又不报错,到底是哪的问题呢,撤底晕了...
www_adintr_com 2013-05-06
  • 打赏
  • 举报
回复
和纯汇编代码编译的程序一起链接才需要 _printf, 内联的不必. 程序正确, 没什么问题.
nirvana_newbie 2013-05-06
  • 打赏
  • 举报
回复
VC6.0编译运行输出两行hello world,并没有出错啊?
Mr_Right 2013-05-06
  • 打赏
  • 举报
回复
照楼上的试试吧,汇编里面调用函数不是你这样用的!
图灵狗 2013-05-06
  • 打赏
  • 举报
回复
在汇编里面printf符号应该于C中不一样的,你换call _printf试试看。

64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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