关于VC函数中嵌入汇编的疑问!高手请进!

iamsuqi 2009-04-09 12:02:11
有时候需要在VC的某个函数中嵌入一段汇编语句,大家知道汇编语言是经常使用寄存器的,问题来了!
1、在我写这段嵌入的汇编语句时,我怎么知道VC编译器编译其它C++语句后的汇编语句使用了什么寄存器,如果嵌入的汇编语句改了这些寄存器内容不就破坏了其它C++编译后的汇编语句?
2、是否嵌入汇编语句之前都要将“所有寄存器”入栈,嵌入汇编结束之前再将“所有寄存器”出栈?
3、如何保证嵌入汇编语句不会对其它C++语句产生错误影响?
...全文
138 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
psic__ 2009-04-14
  • 打赏
  • 举报
回复
不用考虑这些,编译器会负责的
iamsuqi 2009-04-13
  • 打赏
  • 举报
回复
就是想知道VC嵌入汇编的规则要求!
jxc25 2009-04-09
  • 打赏
  • 举报
回复
ax,cx,dx,sp是可以随便用的
hjjdebug 2009-04-09
  • 打赏
  • 举报
回复
记得linux下用AT&T汇编语法, 它有非常严格的定义指示函数参数怎样与嵌入汇编接口。
局部变量怎样与嵌入汇编接口,汇编输出怎样与C变量接口,
VC下也会有这种需求,不过没有有过。
建议你先研究一下,写出具体例子和想达到的要求,或许有人可以帮你。
cnzdgs 2009-04-09
  • 打赏
  • 举报
回复
对于VC,只要不修改ebp、esp即可,其它寄存器随便改,VC编译时会分析你嵌入的汇编代码,避免冲突。
iamsuqi 2009-04-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 jxc25 的回复:]
ax,cx,dx,sp是可以随便用的
[/Quote]
好像不一定吧?如果别人可以随便用,那你嵌入的汇编语句就不可以随便用了,要发生冲突!

21,500

社区成员

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

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