asm汇编
文章平均质量分 62
hbyh
这个作者很懒,什么都没留下…
展开
-
调用C函数
#include int power2( int num, int power );void main(){ printf( "power( 4, 6 ) = %d", power2(4, 6) );}int power2( int num, int power ){ __asm { mov eax, num; mov ecx, power; shl eax, cl }}原创 2007-10-09 11:10:00 · 409 阅读 · 0 评论 -
ASM 调用函数
#include "stdio.h"#include "windows.h"char szApiTest[] = "API Test";void main(){ char szHello[] = "Hello, world!"; __asm { push MB_OK; push offset szApiTest; 全局变量用 offset; lea eax, szHello;原创 2007-10-09 11:01:00 · 964 阅读 · 0 评论 -
C语言函数调用约定
在C语言中,假设我们有这样的一个函数:int function(int a,int b)调用时只要用result = function(1,2)这样的方式就可以使用这个函数。但是,当高级语言被编译成计算机可以识别的机器码时,有一个问题就凸现出来:在CPU中,计算机没有办法知道一个函数调用需要多少个、什么样的参数,也没有硬件可以保存这些参数。也就是说,计算机不知道怎么给这个函数传原创 2007-10-13 09:57:00 · 522 阅读 · 0 评论 -
C结构体中数据的内存对齐问题
1.先看下面的例子:struct A{ char c1; int i; short s; int j;}a;struct B{ int i; int j; short s; char c1;}b;结构A没有遵守字节对齐原则(为了区分,我将它叫做对齐声明原则),结构B遵守了。我们来看看在x86上会出现什么结果。先打印出a和b的各个成员的地址。会看到a中,各个成员间原创 2008-01-23 15:38:00 · 4381 阅读 · 5 评论 -
Windows消息目录
Windows消息目录 Windows消息目录1. WM_NULL=$0000:2. WM_CREATE=$0001: 应用程序创建一个窗口3. WM_DESTROY=$0002: 一个窗口被销毁4. WM_MOVE=$0003: 移动一个窗口5. WM_SIZE=$0005:改变一个窗口的大小6. W原创 2007-12-18 15:12:00 · 455 阅读 · 0 评论 -
汇编浮点指令速查
对下面的指令先做一些说明: st(i):代表浮点寄存器,所说的出栈、入栈操作都是对st(i)的影响 src,dst,dest,op等都是指指令的操作数,src表示源操作数,dst/dest表示目的操作数 mem8,mem16,mem32,mem64,mem80等表示是内存操作数,后面的数值表示该操作数的内存位数(8位为一字节) x 1. 数据传递和对常量的操作指令指令格式 指令含义 执行的操原创 2007-12-18 15:13:00 · 807 阅读 · 0 评论 -
让繁体程序不再显示乱码
一般常用的并且容易造成混淆的Locale有3种:System Locale, User Locale, Thread Locale1. System Locale:系统区域设置。决定了非Unicode程序所使用的代码页,如下:System Locale对应的Code Page可以用GetACP和GetOEMCP来获得。System Locale无法被API修改 ,但是可以用GetS原创 2008-01-02 20:44:00 · 1472 阅读 · 0 评论