能力值:
( LV9,RANK:1250 )
|
-
-
2 楼
这个问题估计与编译器有关。
|
能力值:
( LV4,RANK:50 )
|
-
-
3 楼
随便找个api进去看一看
上手
push ebx
push esi
push edi
最后
pop edi
pop esi
pop ebx
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
最初由 堀北真希 发布 随便找个api进去看一看 上手 push ebx push esi push edi ........
我知道他是用push和pop来保护的,我的意思是如何让编译器保护用户指定的某个寄存器或者是干脆不动用某个寄存器
|
能力值:
( LV4,RANK:50 )
|
-
-
5 楼
编译器还无法做到如此底层的控制.
一般就用PUSH/POP的方法保护就行了,速度影响是很小的.
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
刚才把自己用BCB6和VC6写的程序反汇编仔细看了看,
BCB编译器是尽量避开使用esi,edi和ebx三个寄存器,迫不得已使用的话会保护起来,VC虽然不是尽量避开使用,但也会将他们保护起来,难道保护这三个寄存器是windows平台下编译器的约定?而不仅仅是windows API才这么做
|
能力值:
(RANK:410 )
|
-
-
7 楼
不错。
|
能力值:
( LV5,RANK:60 )
|
-
-
8 楼
减少麻烦的无耐之举
|
能力值:
( LV4,RANK:50 )
|
-
-
9 楼
保护esi,edi和ebx是为存储器寻址不受影响
在早期bx寄存器又称基地址寄存器,在ax,bx,cx,dx中唯一可作为存储器指针使用的。
edi,esi是变址寄存器。
====================
至于楼主的想法恐怕无法实现吧
|
能力值:
( LV4,RANK:50 )
|
-
-
10 楼
楼主的想法可以实现的啊
好像VC的裸函数就是为了实现这个吧
|
能力值:
( LV4,RANK:50 )
|
-
-
11 楼
最初由 17521 发布 楼主的想法可以实现的啊 好像VC的裸函数就是为了实现这个吧
但naked函数很难加入C代码.
|
|
|