偶是个电脑业余爱好者,没有经过正规的学习.所以偶然发现一些小技巧就比较高兴.
以前我只是知道"删除键(BACKSPACE)"有删除字符的作用.
没想到它还能"后退":
即,我们在浏览网页的时候,如果要退回上一页,往往用鼠标去点击工具栏上的"后退"按钮,其实也可以按"删除键(BACKSPACE)"达到这个效果.还有,我们在打开文件夹的时候,往往也点击"向上翻"来退回上一个目录,现在也可以用"删除键(BACKSPACE)"代替的.
有WIN32汇编中,如果要表示的是16进制的数据,则在其后面加H字母;如果要表示的是2进制的数据,则在其后面加B字母;如果要表示的是10进制的数据,则在其后面什么也不加.示例:mov eax,10h ;这里10进制是16mov edx,10 ;这里10进制是10mov ebx,10000b ;这里10进制是10
;用WIN32汇编演示双重循环的用法(也可把内循环做成子程序,用外循环去CALL);从2个红球,3个白球,4个黑球中任意取出5个球,且其中必须有白球,有几种可能的组合情况?;============================================================================ .386 .model flat,stdcall option casemap:none
include windows.incinclude user32.incinclude kernel32.incinc...
经常反汇编的话,在调用子程序开始的地方,都会看到:push ebpmov ebp,espadd esp,FFFFFFF8 ;也可能是其它的值... ...
这种情况的指令形式。编译器采用的是“+”的方法来开辟局部变量的空间的。其实,我们要知道FFFFFFF8真正的值的话,就得采用“补码取反加1”才知道它的“绝对值”,是8。有没有更加方便的方法呢?有!我们知道,正数+负数=0(前提是两者绝对值相等),所以,我们用“0-负数”的方法也可以得到“正数”,即“绝对值”。00000000-FFFFFFF8=800000000-FFFFFFAC=54当然,这种算法涉及到最后一位的借位问题,把这点...
在学习Win32汇编的过程中,发现一个有趣的现象: 在使用wsprintf这个函数的时候,反汇编到调用这个函数的代码处,发现其后总是跟着这样的指令:add,esp,0000000c ,这里的0000000c (会随着参数的个数发生变化)其实就是12个字节,正好是传递给wsprintf函数的3个参数曾经使用的栈空间值.这条指令等于是把wsprintf的参数都扔掉了(主动清除堆栈)。这条指令是谁设的呢?编译器!