社区
汇编语言
帖子详情
关于VC函数中嵌入汇编的疑问!高手请进!
iamsuqi
2009-04-09 12:02:11
有时候需要在VC的某个函数中嵌入一段汇编语句,大家知道汇编语言是经常使用寄存器的,问题来了!
1、在我写这段嵌入的汇编语句时,我怎么知道VC编译器编译其它C++语句后的汇编语句使用了什么寄存器,如果嵌入的汇编语句改了这些寄存器内容不就破坏了其它C++编译后的汇编语句?
2、是否嵌入汇编语句之前都要将“所有寄存器”入栈,嵌入汇编结束之前再将“所有寄存器”出栈?
3、如何保证嵌入汇编语句不会对其它C++语句产生错误影响?
...全文
138
6
打赏
收藏
关于VC函数中嵌入汇编的疑问!高手请进!
有时候需要在VC的某个函数中嵌入一段汇编语句,大家知道汇编语言是经常使用寄存器的,问题来了! 1、在我写这段嵌入的汇编语句时,我怎么知道VC编译器编译其它C++语句后的汇编语句使用了什么寄存器,如果嵌入的汇编语句改了这些寄存器内容不就破坏了其它C++编译后的汇编语句? 2、是否嵌入汇编语句之前都要将“所有寄存器”入栈,嵌入汇编结束之前再将“所有寄存器”出栈? 3、如何保证嵌入汇编语句不会对其它C++语句产生错误影响?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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]
好像不一定吧?如果别人可以随便用,那你嵌入的汇编语句就不可以随便用了,要发生冲突!
AT&T
汇编
和GCC
嵌入
汇编
、x86
汇编
和
vc
嵌入
汇编
关于AT&T
汇编
和intel
汇编
之间的区别: 1、AT&T有更加复杂的对立即数、变量($)和寄存器(%)的写法。而intel直接使用。 2、AT&T源操作数、目的操作数与intel相反。 3、寻址方式AT&T采用段地址:(偏移,基址,因子)而inel直接是段地址:[基址*因子+偏移] 4、代码端标识AT&T为.text而intel是.coder gcc
嵌入
汇编
和
VC
嵌入
汇编
的区
VC
中
嵌入
汇编
代码
VC
中
可以
嵌入
汇编
代码:
VC
和VB
嵌入
汇编
的方法
VC
的
嵌入
ASM的方法#define CallBaseAddr 0x962AC4#define SkillAttackAddr 0x457680void maindlg::SkillAttack(long SkillID){ __asm { pushad mov eax,DWORD ptr ds:[CallBaseAddr]
VC
程序
中
嵌入
汇编
的方法
内嵌
汇编
的使用方法是: __asm { 语句 } 你可以把它插入程序
中
的任何位置,非常灵活。 让我们看一个可以将两个正整数相加的程序: #include using namespace std; void main( ) { unsigned int a,b; cin >> a; cin >> b; __asm //下面是内嵌
汇编
...
旧文备份:
VC
中
嵌入
NASM编写的
汇编
函数
在公司开发的RT下没法使用C库,并且替代库
函数
没有几个,需要用到setjmp和longjmp
函数
,没办法,只能自己想办法了,上sourceforge淘换到一个小日本的工程,提供这两个
函数
的替代源码,名字叫libcont,下载下来发现实在Linux下编译的,查看Makefile文件,使用了GCC和NASM,郁闷了,但是实在找不到windows下的代码了,看看能不能移植到
VC
下吧! 千辛万...
汇编语言
21,500
社区成员
41,617
社区内容
发帖
与我相关
我的任务
汇编语言
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
复制链接
扫一扫
分享
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章