08 2012 档案

我对call gate的理解
摘要:call gate(调用门)提供一种机制,允许通过call指令实现向更高级非一致代码段的跳转,同时cpl发生相应跃迁。 所以说call gate是call指令的专用门。猜测call gate之名定取the gate for call是也。 对上面两点作下解释: “允许通过call指令实现向更高级非一致代码段的跳转”,为什么是非一致代码段?我们知道,若目标段是一致代码段,那么无论是普通跳转还是使用调用门跳转,无论跳转方式是call还是jmp,cpl都保留跳转前等级。这是一致代码段的特点。 “call gate是call指令的专用门”,可明明jmp指令后面也可以跟上调用门的描述符呀!确实,但jm. 阅读全文

posted @ 2012-08-31 17:20 weiweishuo 阅读(506) 评论(0) 推荐(0)

[置顶] orange's 推荐博客
摘要:把遇到的好博客贴出来,希望能帮到正在学习orange's的朋友 1,http://blog.chinaunix.net/uid/587665/frmd/115190.html 这个链接并未指向博客首页,而指向文章分类中的x86 & x64 体系。作者是“chinaunix->cpu与编译器 ”的版主。 如果你对80x86体系下实模式保护模式各种概念和细节不慎理解,建议去看看。文章的水平很高,文字浅显准确,不时让人觉得切中痛处。并且作者很喜欢用c代码解释一些机制的原理,跟王爽老师很像。2,http://www.cnblogs.com/Aoysme/ 是一步步学习orange 阅读全文

posted @ 2012-08-31 16:38 weiweishuo 阅读(179) 评论(0) 推荐(0)

linux网购,还是用virtualbox省事儿些(万万别用ose版本的)
摘要:总以为virtualbox不支持usb,原来是ose版本的不支持(似乎也支持,反正比较难调)。我是在官网上下载的闭源版本: virtualbox-4.1_4.1.20-80170~Debian~squeeze_i386.deb 安装的过程中遇到两个问题: 第一个问题 -------------------- Could not load the Host USB Proxy Service (VERR_FILE_NOT_FOUND). The service might be not installed on the host computer. -------------------- 这. 阅读全文

posted @ 2012-08-28 19:52 weiweishuo 阅读(342) 评论(0) 推荐(0)

nasm报错:operator may only be applied to scalar values
摘要:搜到了一篇不错的帖子: (回答的那个人实在是太敬业了)Hey all.I'm a complete beginner in assembly and have chosen NASM to work my way up with. But I have a problem with the pseudo-instruction set. More precisely, I don't understand how the expressions "$ and $$" are used in correlation with times.It's no 阅读全文

posted @ 2012-08-25 23:16 weiweishuo 阅读(505) 评论(0) 推荐(0)

保护模式下寻址
摘要:保护模式下寻址,使用“段选择子+段偏移” 在pmtest1.asm中有句:jmp secletorCode32:0 这就是直接使用“段选择子+段偏移”寻址 还有一种: mov ax,selectorCode32 mov gs,ax mov edi,(80*11+79)*2 ... mov [gs:edi],ax 是把段选择子放在段寄存器中,使用“段寄存器:段偏移”寻址 阅读全文

posted @ 2012-08-25 19:53 weiweishuo 阅读(163) 评论(0) 推荐(0)

先熟悉nasm 【4】 ——SECTION和标签
摘要:1,nasm下,自定义段默认按4byte对齐。 手册上说,“ 通过在段定义行的后面加上'ALIGN'限定符实现的。比如:section .data align=16 它切换到段'.data',并指定它必须对齐到 16 字节边界。” 我也在自定义段里加上align 16,发现编译生成的代码仍按照4byte对齐。很诡异。 2,再说标签。 看下面一段代码(可正常运行),它们被写到mbr,会被加载到0x7c00处----------------------------org 0hs:mov ax,sinc ax.....------------------------- 阅读全文

posted @ 2012-08-25 17:35 weiweishuo 阅读(1023) 评论(0) 推荐(0)

终于把int 8h调通了
摘要:摘要:---------------------------------------------------------------------------------------最近一直在折腾int8h,明明已经把中断处理程序的入口地址注册到0000:0020处,显式调用int8h可以正常转移到中断处理程序,但就是不可以自动中断。后来还是在于渊前辈的书里找到答案,“说起EOI,如果你有过在实模式下的编程经验,那么对它因该不会陌生。当每一次中断处理结束,需要发送一个EOI给8259A,以便继续接受中断”。 于是我在程序中加了两行代码: mov al,20h out 20h,al 编译测试,果然 阅读全文

posted @ 2012-08-19 12:18 weiweishuo 阅读(1351) 评论(0) 推荐(0)

org是做什么的
摘要:于渊前辈有这么一句注释:------------------------------------------------------org07c00h;告诉编译器加载到7c00h处------------------------------------------------------到了第三章,编译com文件时,要把07c00h改成0100h。如果按照之前的逻辑,就应该这样注释:-----------------------------------------------------org0100h;告诉编译器,这个com文件将来肯定被加载到0100h处------------------ 阅读全文

posted @ 2012-08-19 12:16 weiweishuo 阅读(698) 评论(0) 推荐(0)

com文件与bin文件是很相似的
摘要:我觉得com文件只比bin文件多了个标签:org 0100h,告诉你此文件dos专用。 两者都是可执行程序的内存映象文件:所谓映像,就是说把硬盘上的bin文件或com文件加载回内存中,再设置cs:ip指向文件的第一条指令,cpu就可以顺利的跑起来。 它们仅具备程序基本的要素:指令和数据。 dos执行com文件时,会先创建一个256byte的psp内存空间(用于和com程序通信),4个段寄存器都指向psp,接着将com文件加载到cs:100h处。dos将cs:100h作为程序的入口。 bin文件我只在系统的启动引导时用到,它似乎更为底层。有篇相关的文章,文字很准确:http://blog.si. 阅读全文

posted @ 2012-08-19 12:08 weiweishuo 阅读(331) 评论(0) 推荐(0)

DOS下COM文件和EXE文件的比较
摘要:【来源】http://www.cnsharenet.com/DOS/f/dft/dexecom.htmCOM文件是一种可执行程序的内存映象文件,它与只有16位地址线的8位机上的CP/M操作系统下的可执行程序结构相似。在COM程序执行过程中,除了调用DOS功能和 ROM BIOS功能,以及用户特意安排外,段寄存器一般不发生变化。四个段寄存器具有同样的内容,都指向PSP,因此程序的大小仍限于64k以内。COM文件的入口必须是100H,而EXE文件可以有多个段。其中CS和SS以及IP和SP在程序装入时由DOS根据文件头中的信息初始化,ES和DS则指向PSP。EXE文件除了程序本身外,还要包括文件头( 阅读全文

posted @ 2012-08-19 12:01 weiweishuo 阅读(564) 评论(0) 推荐(0)

关于tink的碰撞检测类【2】
摘要:分析算法的思路:Step1:假设stage(黑色)上有4个显示对象red_mc,green_mc,blue_mc,yellow_mc,层级关系是stage>root>red_mc,stage>root>yellow_mc>blue_mc>green_mc。要检测碰撞的对象是red_mc和green_mc。如图图1补充约定:为方便表述,这里约定显示对象的“初始状态”为相对父级容器坐标系未进行旋转,缩放,即对象的transform.matrix对象是[a=1,b=0,c=0,d=1]。Step2:一开始,图1中的4个mc都处于初始状态。但这样的碰撞检测不考验算法 阅读全文

posted @ 2012-08-19 11:50 weiweishuo 阅读(467) 评论(0) 推荐(0)

先熟悉nasm 【3】
摘要:nasm下,向内存写数据可以这样: mov byte [0200h],64h 上面代码是可以通过编译的,反汇编得到:mov byte ptr ds:0x200, 0x64 我记得在masm下,偏移寻址是必须要用寄存器。 我试着写“mov byte [0x0000:0x0200],64h”,nasm就报错了,看来段寄存器还是少不了的。不过可以用立即数寻址,已经很满足了! 2012,8,19 吉首 阅读全文

posted @ 2012-08-19 01:35 weiweishuo 阅读(215) 评论(0) 推荐(0)

去读代码
摘要:看完文章很有感慨,我也决定尝试阅读一些源码了转自:http://www.cppblog.com/xguru/archive/2010/06/04/code_reading.html为何我喜爱读他人的代码,而你也应该去喜爱它原作者 : Alan Skorkin翻 译:Xguru 这让我想到很多程序员讨厌去阅读代码,来接受它吧。人人都喜欢编写代码--写代码是很有乐趣的事。但阅读代码却是一种困难的工作。它不仅仅繁重,而且很无聊,让我们面对这个事实,任何不是自己写的代码都是差劲的(嘿嘿,虽然我们没有这样说过,但是其实我们都是这样想的)。甚至当你写完代码后的仅仅几个小时之后,你的那些代码就开始变得越来越 阅读全文

posted @ 2012-08-16 16:00 weiweishuo 阅读(152) 评论(0) 推荐(0)

AS3中 Event 类的target和currentTarget属性
摘要:原文地址:AS3中Event类的target和currentTarget属性作者:笨鱼小宇在事件处理过程中,会自动生成事件类的实例,并传给侦听器函数。通过这个参数就可以使用事件类的属性和方法。其中target与currentTarget属性是两个很相似的属性。 对于简单的事件处理过程,分清target与currentTarget并没有必要。因为它们一般指向同一个对象。例如,舞台中有一个实例名为mc的影片剪辑实例,通过下面的代码为这个实例注册单击事件。mc.addEventListener(MouseEvent.CLICK,this.test);function test(e:MouseEven 阅读全文

posted @ 2012-08-16 16:00 weiweishuo 阅读(194) 评论(0) 推荐(0)

关于tink的碰撞检测类【3】
摘要:个人认为这个类存在错误,这些错误又集中出现在最后一个方法getDrawMatrix()里,因此把源码copy下来直接注释:protected static functiongetDrawMatrix( target:DisplayObject, hitRectangle:Rectangle,accurracy:Number ):Matrix{var localToGlobal:Point;;var matrix:Matrix;var rootConcatenatedMatrix:Matrix =target.root.transform.concatenatedMatrix;//虽然下面这句隐 阅读全文

posted @ 2012-08-16 16:00 weiweishuo 阅读(144) 评论(0) 推荐(0)

byteArray的深复制会造成类型丢失
摘要:byteArray可通过writeObject和readObject实现数组深复制,但写进去的数组元素再读出来,某些元素就丢失类型,目前发现Point是这样 privatefunction test():void { var pt:Point= new Point(1, 1); vararr:Array = [[0, 0], pt]; varbyteArr:ByteArray = new ByteArray();byteArr.writeObject(arr);byteArr.position = 0; vararr1:Array = byteArr.readObject() as Array 阅读全文

posted @ 2012-08-16 16:00 weiweishuo 阅读(117) 评论(0) 推荐(0)

debian安装nvidia驱动后命令行界面分辨率降低的问题
摘要:debian安装nvdia官方驱动后,命令行界面十分粗糙,是因为官方驱动并不支持linux内核的kms,而开源的nouveau则集成了对kms的支持。更详细参见这篇文章:http://www.linux-ren.org/home.php?mod=space&uid=32107&do=blog&id=790。 没找到解决的方法,只有一些途径来尽量提高分辨率,但达不到kms下命令行的细腻字体。 这里讲debian6的相关配置:debian6已经用grub2了,原先grub1中的/boot/grub/menu.list被替换成下面三个模块:/boot/grub/grub.cf 阅读全文

posted @ 2012-08-16 16:00 weiweishuo 阅读(1117) 评论(0) 推荐(0)

debian下安装NVIDIA驱动
摘要:本本装上debian,风扇基本没停过,网上搜了许久,没找到靠谱的答案。只能死马活医,把每个帖子的方法都试一遍。先装显卡驱动,我的联想G450的GEFORCEG210M,官网上下载的Nvidia-Linux-x86-295.59.run。 输入: sh Nvidia-Linux-x86-295.59.run进入安装界面,提示错误:检测到Xwindow仍在运行。安装程序退出,提示你看日志文件去找出错误信息。我的xwindow确实在运行,输入: sudo /etc/init.d/gdm3 stop再试着ctrl+alt+F7切换到xwindow模式,切换失败,证明已经关掉了xwindow。再次安装, 阅读全文

posted @ 2012-08-16 16:00 weiweishuo 阅读(2847) 评论(0) 推荐(0)

debian下装jre
摘要:刚装了debian,到nvidia网站给本本下驱动,GEFORCE系列可以自动检测GPU,真好。点击“开始检测GPU”,却让我装jre。主要分两步:1,为debian安装jre环境。2,为firefox的plugins目录添加软连接下面是官方文档(看sun在线文档的地址栏以orcale开头了,很是悲凉)的第一部分Follow these instructions:Change the permission of the file you downloaded to beexecutable. Type:chmod a+xjre-7u<version>-linux-i586.tar. 阅读全文

posted @ 2012-08-16 16:00 weiweishuo 阅读(801) 评论(0) 推荐(0)

FlashDevelop开发手记(一)
摘要:转载自:http://blog.163.com/liu_huan820/blog/static/1334974062009102801553834/1.自定义swf的大小和帧频,声明的位置必须在包内,类定义之前[SWF(width = 800,height = 216,backgroundcolor =0xffffff,framerate = 30)]2.在类中直接引用外部图片,影片,字体等资源时,格式为图片声明:[Embed(source = 'woshi.png')]public var pic:Class;引用:private var bm:Bitmap;bm =Bitm 阅读全文

posted @ 2012-08-16 16:00 weiweishuo 阅读(160) 评论(0) 推荐(0)

在纯AS项目中嵌入swf资源
摘要:转载自http://blog.meathill.net/tag/embed来想要告别FlashPro编译,因为从效率上和资源占用上来说,FlashDevelop功能齐全又快速方便。不过有些图形资源还是只有用FlashPro做起来最简单,而且我的早期项目大多是在Flash Pro里做的,所以我需要将他们嵌入到代码当中。经过尝试,最符合我要求的操作是这样:[Embed(source = '/assets/bannerProducer.swf',symbol ="toolbar")][Bindable]public static var TOOL_BAR:Clas 阅读全文

posted @ 2012-08-16 16:00 weiweishuo 阅读(128) 评论(0) 推荐(0)

vimrc文件是让vim执行的
摘要:有关vim设置。2012-6-4 16:54提问者: 水阁公子 | 浏览次数:58次本人vim新手,只是想启用一下vim的设置而已,望知道的大哥指点。 运行bash-3.2# source ./vimrc_example.vi结果失败, 不知道是怎么了。 bash-3.2# cd /usr/share/vim/vim71/ bash-3.2# source ./vimrc_example.vim bash: An example for a vimrc file. : command not found bash: Maintainer: Bram Moolenaar <Br... 阅读全文

posted @ 2012-08-16 16:00 weiweishuo 阅读(1646) 评论(0) 推荐(0)

linux采用gcc编译c, 如何知道库所对应的名称?
摘要:如 #include <math.h>那么 gcc -lm,网上搜到那么如果是 #include <string.h>呢? 直接-lstring好像不行或是比如其他的呢?不知道可以从哪分document中可以查到 库 在gcc编译中所对应的名称---一般就是math和pthread需要其它标准库都在glibc里实现了,gcc默认就会去链接---glibc 是libc的gnu实现。string应该算C标准吧,默认连接的libc.so好像就包含了所有的C标准函数来自:http://bbs.chinaunix.net/thread-1677645-1-1.html 阅读全文

posted @ 2012-08-16 16:00 weiweishuo 阅读(267) 评论(0) 推荐(0)

IT版奋斗
摘要:原文:http://book.douban.com/review/2603996/ 一年多前,我到一位朋友家作客,他从学校已经毕业半年有余,没找工作,一直呆在家游手好闲。当时电视正在播电视剧《奋斗》,看了半集我问我朋友,这片子有什么好看么?而我朋友则一面严肃的表情说“你不懂,这片子特励志,不是你这种90后理解得来的”,并表示,等看完这部电视剧以后,自己马上也要开始奋斗;我没想到这种流行电视剧居然有如此“功效”,实在令我有点将信将疑。 一年后,我再次拜访这位朋友,他依旧是无业流民,每天过着:上网-看电视-睡觉,三点一线的生活,还时不时跟我抱怨说,为什么别人刚毕业就有奥迪A6开,老爸一给... 阅读全文

posted @ 2012-08-16 16:00 weiweishuo 阅读(142) 评论(0) 推荐(0)

关于tink的碰撞检测类【1】
摘要:tink博客上的一个碰撞检测类,思路是:用flash自带的hitTestObject预判断,再基于像素重叠检测碰撞。原文链接:http://www.tink.ws/blog/as-30-hittest代码如下:package ws.tink.display{importflash.display.BitmapData;import flash.display.BlendMode;import flash.display.DisplayObject;import flash.display.Sprite;import flash.geom.ColorTransform;import flash. 阅读全文

posted @ 2012-08-16 16:00 weiweishuo 阅读(205) 评论(0) 推荐(0)

as3.0 时间轴类与文档类
摘要:原文地址:as3.0时间轴类与文档类(转载)作者:随风转载自:http://space.flash8.net/space/?84320/viewspace-325525.htmlas3中的根即顶级容器是stage,stage是Stage类的唯一实例,当你创建一个文档时,就创建了stage实例。上节提到的root就是stage下的一个可视实例。由于stage和root都是容器,所以当在时间轴写代码时,可以有2个选择,即可在stage下添加对象,也可在root下添加对象。我们先在时间轴写代码:trace(stage.numChildren)//1trace(stage.getChildAt(0)) 阅读全文

posted @ 2012-08-16 16:00 weiweishuo 阅读(398) 评论(0) 推荐(0)

as3学习第二课 显示对象和显示列表
摘要:关于显示对象原文地址:as3学习第二课显示对象和显示列表作者:冰剑蓝影一、显示对象显示对象就是可以在舞台上显示的对象。包括直接看到的对象,如图形、文字、图片、视频、还有看不到但又真实存在的容器。所有的显示对象都继承于flash.dispaly包中的DisplayObject类。而DisplayObject类又继承自EventDispatcher类,这就意味着所有的显示对象都可以发送事件。根据显示对象能否接收互动事件(即:是否继承于interactiveObject类),我们把显示对象分为可互动和非互动显示对象。所谓接收互动事件,是指能够接收鼠标单击、键盘敲击等人机交互事件。按钮能够接收鼠标事件 阅读全文

posted @ 2012-08-16 16:00 weiweishuo 阅读(349) 评论(0) 推荐(0)

先熟悉nasm 【1】
摘要:注:应该是新浪博客的一个bug:“define”前面加%是显示乱码的,只能把%用100代替,因此下文看到100define时不要被吓到。-----------------------------------------------------------------------------------------------------------------------------------------已经看到第3章“保护模式”,反复读那段“吸引眼球”的pmtest1.asm,总还是雾蒙蒙的感觉。对其中的SECTION,BITS等关键字不甚了解,于是知道要专门熟悉一下nasm汇编了。“可能 阅读全文

posted @ 2012-08-16 16:00 weiweishuo 阅读(527) 评论(0) 推荐(0)

先熟悉nasm 【2】
摘要:在网上溜达时看到一个不错的问答,问题难度不大,但回答的很精准:-----------懂nasm的进,请问nasm程序的入口是什么 我怎么输入程序呢???------解决方案--------------------------------------------------------NASM和MASM有很大的不同。在MASM中,要先定义段和程序入口点。过程调用还要显式的定义过程。NASM支持两种编译方式,一种是传统的方法,这种方法显然是为了和其它公司的链接器配套工作。在这种方式下,可以使用SEGMENT或者SECTION来定义段。另一种编译方式是纯二进制文件格式。原则上程序不分段。但也可分段, 阅读全文

posted @ 2012-08-16 16:00 weiweishuo 阅读(219) 评论(0) 推荐(0)

8253定时/计数器的几篇好文章
摘要:这两篇讲的浅而易懂:时钟中断时钟概述(特别这篇,作者文字准确有力,很佩服)这两篇是参考手册级别的:定时计数器8253资料8253A定时计数器 阅读全文

posted @ 2012-08-16 16:00 weiweishuo 阅读(103) 评论(0) 推荐(0)

有关int 8h和in1ch(一段很精辟的说明)
摘要:在系统加电初始化期间,把系统定时器初为每隔约55毫秒发出一次中断请求,CPU在响应定时器中断请求后转入8H号中断处理程序,BIOS提供的8H号中断处理程序中有一条中断指令INT1CH,所以每秒要调用到约18.2次1CH号中断处理程序,而BIOS的1CH号中断处理程序实际上并没有做任何工作,只有一条中断返回指令.原帖:http://topic.csdn.net/u/20090529/09/eb41c0fa-41f4-4a76-bdf1-ca2a44c8f758.html 阅读全文

posted @ 2012-08-16 16:00 weiweishuo 阅读(515) 评论(0) 推荐(0)

自学小总结.
摘要:1,photoshop的功能:把照片的背景色设为透明,保存为gif格式,就可以用于flash元件。2,trace不能在flash发布的swf动画里表达,记住。3,_root._my_mc与_root.my_mc相比,后者较常见,但是两者都在脚本的语法检查中合法。 4,元件或者位图需要分散(B)后,才能进行处理。即柔化边缘什么的。。 5,当深度值为负值,无法删除,系统认为此对象是保护对象。6,通过左下角坐标值设定,使各帧的画面一致,不产生跳跃感。 7,当flash响应缓慢时候,很可能进入for语句的死循环,可以检查这个格式是否正确(i=0;i<10;i++),假如第二个和第三个条件弄反了的 阅读全文

posted @ 2012-08-16 16:00 weiweishuo 阅读(145) 评论(0) 推荐(0)

导航