摘要: 0x00e:30f480000000 | irmovl $128,%esp 实现所有Y86指令所需要的计算分为6个基本阶段:取值、译码、执行、访存、写回和更新PC。1、取指 A、取指阶段从存储器读取指令字节,地址为程序计数器(PC)的值。从指令中抽取出指令指示符字节的两个四位部分,称为icode(指令代码)和ifun(指令功能)。 例1:rrmovl rA,rB指令,它的字节编码是2 0 rA rB,那么icode:ifun就是2:0。 B、它可能取出一个寄存器指示符字符,指明一个或两个寄存器操作数指示符rA和rB,这里的rA和rB与上面例子中的rA、rB位置相同。 例... 阅读全文
posted @ 2013-11-30 15:24 LOSER Z 阅读(2559) 评论(0) 推荐(0) 编辑
摘要: 最近在学习计算机操作系统,其中有一部分是讲程序的机器级表示,也就是汇编语言。关于汇编语言,虽然现在我们在写程序的时候已经几乎不使用它了,但是在遇到它的时候能够理解它,还是有必要的。下面是我对汇编语言的一些学习总结。一、数据传送指令 第一个参数是源操作数,第二个参数是目的操作数。二、算术和逻辑操作指令逻辑右移,左边统一添0算数右移,左边添加的数和符号有关三、条件码 最常用的条件码有:CF:进位标志,可用来检查无符号操作数的溢出 ZF:零标志 SF:符号标志,得到的是一个负数 OF:溢出标志 测试的目的是为了判断两者是否相等... 阅读全文
posted @ 2013-11-23 17:26 LOSER Z 阅读(1368) 评论(0) 推荐(0) 编辑
摘要: 一、什么是虚函数、纯虚函数、抽象基类 虚函数:在某基类中声明为 virtual 并在一个或多个派生类中被重新定 义的成员函数。 纯虚函数:是一种特殊的虚函数,使用virtual关键字,并且在其后面加上=0。 抽象基类:在基类中加入至少一个纯虚函数,使基类成为抽象类。二、为什么要使用虚函数 在理解这个问题前,就必须要理解什么是晚捆绑。 晚捆绑是相对于早捆绑而言的,那么什么又是捆绑呢?把函数体与函数调用相联系称为捆绑,当捆绑在程序运行之前完成时,这称为早捆绑。那么当捆绑根据对象的类型,发生在运行时,就称为晚捆绑。 而使用晚捆绑,无需检查对象的类型,只需要检查对象是否支持特性和方法即可。... 阅读全文
posted @ 2013-11-17 08:34 LOSER Z 阅读(5240) 评论(0) 推荐(2) 编辑
摘要: 虽然在Unity3D中能够通过PlayerPrefs类来保存和读取数据,但是一旦数据量增大,仅仅通过代码的方式存取数据,这样的工作量是非常大的。那么如何通过使用Sql Server数据库来存取数据呢?其实过程也非常简单,过程如下:1、找到System.Data.dll文件,默认的地址是在C:\Program Files\Unity\Editor\Data\Mono\lib\mono\unity,这个根据你所安装的路径有关。2、将该文件复制到你的工作空间下的Asset文件夹内3、在你的编辑器中添加引用,我用的是VS4、在命名空间内增加程序集using System;using System... 阅读全文
posted @ 2013-11-16 19:25 LOSER Z 阅读(5910) 评论(0) 推荐(0) 编辑
摘要: 1、什么叫拷贝构造函数 拷贝构造函数是一种特殊的构造函数,它唯一的参数是源对象的引用,是const类型,经常被称为X(X&),它叫做类X的外在表现 例:class A{ public: A(){} A(const A&){ cout<<"A(A&)"<<endl; } }; 2、为什么要使用拷贝构造函数 由于拷贝构造函数是通过传值方法传递和返回,位拷贝是通过传地址方法传递,使用拷贝构造函数能够防止编译器进行位拷贝。关于位拷贝和值拷贝的区别,这篇文章讲的很清楚:http://blog.csdn.net/liam1122/a... 阅读全文
posted @ 2013-11-16 13:51 LOSER Z 阅读(777) 评论(0) 推荐(1) 编辑
摘要: 在学习C++的过程中,经常被什么时候使用const、为什么使用const以及怎么使用const关键字这样的问题所困扰,以下是我对const的使用总结。1、值替代 使用#define的确单缺点,第一:没有类型信息,这就会隐藏一些很难发现的错误; 第二:如果只是想取某个class的专属常量地址,#define无法创建一个class的专属常量 第三:#define或许不被视为语言的一部分,这样会导致PI可能不会被编译器看见,以至于在运用此常量时会产生错误信息; 第四:#define不能提供任何封装性 ... 阅读全文
posted @ 2013-11-09 13:49 LOSER Z 阅读(1127) 评论(0) 推荐(1) 编辑
摘要: 一、什么叫双缓冲 后备缓冲通过创建一个或多个主缓冲来实现平滑的动画显示,之后用户在不可见的后备缓冲里绘图(具备相同的尺寸和色彩深度的缓冲),只使用一个后备缓冲叫做双缓冲。二、用双缓冲技术执行动画流程三、创建后备缓冲 创建后备缓冲的目的是用DirectDraw的方式来实现对双缓冲功能的仿真。 为了创建一个关联有后备缓冲的主表面,必须创建DirectDraw所谓的复杂表面,步骤如下: 1、要将DDSD_BACKBUFFERCOUNT加到dwFlags标志字段,向DirectDraw表明DDSURFACEDESC2结构的dwBackBufferCount字段有效,其中含有后备缓冲的数目 ... 阅读全文
posted @ 2013-11-06 14:56 LOSER Z 阅读(2303) 评论(0) 推荐(0) 编辑
摘要: 首先看一下的在8位、16位、24位、32位下颜色的编码格式吧,如下图:在256颜色模式中,每像素都是颜色查找表中的一个索引这是两种16位RGB编码模式,对于第一种模式,即5.6.5,共有32*64*32=65536种色彩,而第二种模式X5.5.5,共有32*32*32=32768种色彩对于这两种编码格式,建立它们的算法如下:#define _RGB16BIT555(r,g,b) ((b&31)+((g&31)<<5)+(r&31)<<10)#define _RGB16BIT565(r,g,b) ((b&31)+((g&63)< 阅读全文
posted @ 2013-11-05 14:13 LOSER Z 阅读(981) 评论(0) 推荐(1) 编辑
摘要: 一、DirectDraw接口 DirectDraw接口图如下: 1、IUnknown:所有COM对象都必须从这个基本接口派生 2、IDirectDraw:这是开始使用DirectDraw时必须创建的主接口对象 3、IDirectDrawSurface:这表示你用DirectDraw创建、控制和显示的实际显示表面。分两种:主显示表面(Primary Surface)和从显示表面(Secondary Surface) 4、IDirectDrawPalette:使用256或更少的颜色在视频模式下处理调色板,用于创建、加载和控制调色板,以及将调色板关联到显示表面 5、IDirectDraw... 阅读全文
posted @ 2013-11-04 13:59 LOSER Z 阅读(1860) 评论(0) 推荐(0) 编辑
摘要: 一、COM1、什么是COM对象 一个COM对象事实上是一个或一套实现了大量接口的C++类2、COM的优点 不用重新编译你的程序就能升级COM模块3、COM概貌 4、COM对象的接口QueryInterface()是COM的关键,它用于申请一个指向你所希望的接口函数的指针所有从IUknown派生的接口最少也必须实现QueryInterface()、AddRef()和Release()这三个方法IUnkonwn的类定义如下:struct IUnknown{ virtual HRESULT _stdcall QueryInterface(const IID &iid,(void**)ip)= 阅读全文
posted @ 2013-11-03 13:21 LOSER Z 阅读(1456) 评论(0) 推荐(1) 编辑
摘要: 一、颜色、画笔和画刷 1、使用画笔 创建画笔函数CreatePen() HPEN CreatePen(int fnPenStyle, //笔的样式,如PS_SOLID(实线),PS_DASH(虚线),PS_DOT(点),PS_DASHDOT(点划线),PS_DASHDOTDOT int nWidth, //笔的像素宽度 COLORREF crColor //颜色,通过RGB定义 ); 例子:红色笔 HPEN red _pen=CreatePen(PS_SOLID,1,RGB(2... 阅读全文
posted @ 2013-11-02 18:02 LOSER Z 阅读(419) 评论(0) 推荐(0) 编辑
摘要: 一:创建菜单 在Windows中使用菜单都是以关键字POPUP开头,POPUP指出了一个菜单可以使用如下的ASCII名称和菜单项来定义。弹出式菜单定义必须放在{}或BEGIN、END块中。例如:MainMenu MENU DISCARDABLE { POPUP "FIle" { MENUITEM "Open",MENU_FILE_ID_OPEN MENUITEM "Close",MENU_FILE_ID_CLOSE MENUITEM "Save",MENU_FILE_ID_SAVE MENUITEM "E 阅读全文
posted @ 2013-11-02 16:36 LOSER Z 阅读(296) 评论(0) 推荐(0) 编辑
摘要: 一、步骤: 1、创建三个Cube,并将这三个Cube的Cube的Tag设为Enemy 2、导入第一人称视角的资源 3、创建名为Targeting的C#脚本 4、编写Targeting脚本,并将它附到第一人称的对象上 二、Targeting脚本 using UnityEngine;using System.Collections;using System.Collection.Generic;public class Targetting:MonoBehaviour{ public List targets; public Transform select... 阅读全文
posted @ 2013-11-02 13:41 LOSER Z 阅读(417) 评论(0) 推荐(0) 编辑
摘要: 在C++中,编译及连接时的资源数据流程如下图所示:一、使用图标资源设置图标资源是在创建Window类的时候,WNDCLASSEX winclass;winclass.hIcon=LoadIcon(NULL,IDI_APPLICATION); //这表示加载默认的应用图标程序winclass.hIconSm=LoadIcon(NULL,IDI_APPLICATION);设置自己的图标资源,方法如下: 1、在编译器窗口左边的资源文件这一文件夹,右击添加现有项,选择图标; 2、新建资源文件,然后在.RC脚本文件中定义ICON资源,这里有两种方法 方法一:使用字符串名 icon_... 阅读全文
posted @ 2013-11-01 17:58 LOSER Z 阅读(537) 评论(0) 推荐(0) 编辑
摘要: 以下是包含的头文件 #define WIN32_LEAN_AND_MEAN // 指示编译器不要包含我们并不需要的MFC内容 #include // 包含所有的Windows头文件 #include // 含有许多重要的宏和常量的头文件 #include #include #define WINDOW_CLASS_NAME "WINCLASS1" Windows的事件循环处理消息的机制如下图: 现在我们来编写事件处理程序,因为在编写主程序时会调用这个函数LRESULT CALLBACK WindowProc(HWND hwnd, U... 阅读全文
posted @ 2013-11-01 17:14 LOSER Z 阅读(585) 评论(0) 推荐(0) 编辑
摘要: Windows环境下安装GLUT的步骤:1、将下载的压缩包解开,将得到5个文件2、在“我的电脑”中搜索“gl.h”,并找到其所在文件夹(如果是VS,则应该是其安装目录下面的“VC\PlatformSDK\include\gl文件夹”)。把解压得到的glut.h放到这个文件夹。3、把解压得到的glut.lib和glut32.lib放到静态函数库所在文件夹(如果是VS,则应该是其安装目录下面的“VC\lib”文件夹)。4、把解压得到的glut.dll和glut32.dll放到操作系统目录下面的system32文件夹内。(典型的位置为:C:\Windows\System32)进入VS,随便新建或打开 阅读全文
posted @ 2013-09-20 13:53 LOSER Z 阅读(567) 评论(0) 推荐(0) 编辑
摘要: 制作小地图首先需要两个贴图:第一个贴图是小地图的背景贴图,它应当是从y轴向下俯视截取的贴图;第二个贴图是主角位置贴图,它应当是在背景贴图之上的小型矩形。 1 using UnityEngine; 2 using System.Collections; 3 4 public class smallMap : MonoBehaviour { 5 // Use this for initialization 6 GameObject plane; //大地图地形对象 7 GameObject cube; //大地图主角对象 8 float mapWidth... 阅读全文
posted @ 2013-08-12 10:03 LOSER Z 阅读(2409) 评论(3) 推荐(0) 编辑
摘要: 之前跟着老师后面边学边做了一个屠龙战机项目,在这个项目中,主要用到的技术,在这里总结一下(本次项目的脚本语言用的是JS):1、 如果想在场景中导入一个声音文件,则需要在脚本中添加一个变量,如在脚本顶部添加:var menusound:AudioClip;在JS中,默认的变量是public,所以将脚本文件添加到对象后,会有sound这个选项,然后将所需要的文件拖到这里。2、创建一个按钮,先定义一个变量,用于说明按钮的位置 private var newGanePosition:Rect=new Rect(10,10,10); 同样添加一个变量,用于接收按钮的皮肤:var myskin:G... 阅读全文
posted @ 2013-07-26 13:49 LOSER Z 阅读(1375) 评论(2) 推荐(1) 编辑
摘要: 模拟校园自助银行做的一个简单的用户管理系统 阅读全文
posted @ 2013-06-09 12:04 LOSER Z 阅读(1221) 评论(4) 推荐(3) 编辑