
汇编
syflyhua
这个作者很懒,什么都没留下…
展开
-
汇编中参数的传递和堆栈修正
在Win32汇编中,我们经常要和Api 打交道,另外也会常常使用自己编制的类似于Api 的带参数的子程序,本文要讲述的是在子程序调用的过程中进行参数传递的概念和分析。一般在程序中,参数的传递是通过堆栈进行的,也就是说,调用者把要传递给子程序(或者被调用者)的参数压入堆栈,子程序在堆栈取出相应的值再使用,比如说,如果你要调用 SubRouting(Var1,Var2,Var3),编译后的最终代码可能转载 2013-03-16 15:35:02 · 614 阅读 · 0 评论 -
-128 和-0的区别
-128 和-0的区别,其实根本就没有联系。但是容易迷惑。因为我们说 -128的时候,其实是在说补码,他本身是补码。而我们说-0的时候,是说的原码。对于char型变量cv,表示的范围是-128~127。cv = -127我们知道对于-127的表示是1111,1111,他的补码是1000,0001,在内存是是补码表示方式。cv = cv -1后,-128,的内存表示1000,原创 2013-04-17 15:15:25 · 2354 阅读 · 0 评论 -
SI和DI寄存器的用途
SI是源变址寄存器,DI是目的变址寄存器。可以用来存放数据、地址,功能类似、用法类似、一般使用哪个都可以。但需要注意的是:在串处理指令中,SI用作隐含的源串地址,默认在DS中;DI用做隐含的目的串地址,默认在ES中;此时不能混用。BP: 是和堆栈指针SP联合使用的,作为SP校准使用的,只有在寻找堆栈里的数据和使用个别的寻址方式时候才能用到比如说,堆栈中压入了很多数据或者地址,你肯定想通转载 2013-06-14 16:35:08 · 27958 阅读 · 0 评论 -
补码
http://course.cug.edu.cn/21cn/%E5%BE%AE%E6%9C%BA%E5%8E%9F%E7%90%86%E4%B8%8E%E5%BA%94%E7%94%A8/01301.htm从上面可以看出 求补码只要把模减去相应的数值部分就可以了。但是通用的的方法是负数的补码等于其原码的符号位不变,数值部分的各位取反,然后整个数加1。虽然这个更有效率,但是我原创 2013-04-17 11:11:50 · 574 阅读 · 0 评论 -
fs
在进程进入内核态后,fs寄存器默认指向进程的数据段。而ds, es寄存器则指向内核数据段。 在用户运行时,这些寄存器都执行用户数据段。原创 2013-09-28 11:02:47 · 619 阅读 · 0 评论