上一页 1 2 3 4 5 6 7 ··· 11 下一页

2013年5月15日

equ定义的是符号

摘要: 编译这段程序:global babybaby equ 0x30400[section .text]mov eax,babynasm -f elf -o t.o t.asmreadelf -s t.oSymbol table '.symtab' contains 4 entries: Num: Value Size Type Bind Vis Ndx Name 0: 00000000 0 NOTYPE LOCAL DEFAULT UND 1: 00000000 0 FILE LOCAL DEFAULT ABS t.... 阅读全文

posted @ 2013-05-15 13:52 weiweishuo 阅读(298) 评论(0) 推荐(0) 编辑

2013年5月14日

汇编

摘要: 1,nasm的伪指令db,dw,dd除了定义立即数,还能定义符号,例如:[section .data]sect_data:dd 0 ; 定义立即数 dd sect_data ;链接后,这里的4个byte裝的就是sec_data标识的地址2,用loop循环前,如果mov ecx,1 ,那循环一次没错,但mov ecx,0呢,会循环(0-1)次,小心小心。 阅读全文

posted @ 2013-05-14 12:43 weiweishuo 阅读(123) 评论(0) 推荐(0) 编辑

2013年5月12日

vim

摘要: 1,我常用的快捷键:'. 跳到最近改动过的位置% 跳到匹配的括号2,在括号处(例如{,},[,])按zf%,会把匹配括号之间的内容折叠。前提是:set fdm=marker,否则折叠范围不准,总是多折叠几行。3,`` 命令可以在两个位置上跳来跳去。而 CTRL-O 命令则跳到一个 "较老" 的地方 (提示: O 表示 older)。CTRL-I 则跳到一个 "较新" 的地方4,vim生成的文件,会在末尾自动添加一个换行符,也就是ascii=10的'\n'。5,搜了很几次才找到中意的:http://hi.baidu.com/osca 阅读全文

posted @ 2013-05-12 09:38 weiweishuo 阅读(212) 评论(0) 推荐(0) 编辑

2013年4月6日

解决omnicppcomplete显示"pattern not found"

摘要: 其实是tags文件有问题,确切说是生成tags文件时,使用的命令行参数有问题。 我最开始这样:ctags -R -f ~/.vim/tags/c 。很好笑吧,我就为它折腾了半个下午。 是在google上看了一篇帖子,改成:ctags -R -f ~/.vim/tags/c --C-kinds=+p --fields=+aS --extra=+q就好了。 原帖答案贴过来(是他自问自答):I found the problem. My tags file is NOT Ok as I thought.Incorrect version generated with:ctags -R --C-ki. 阅读全文

posted @ 2013-04-06 19:06 weiweishuo 阅读(2643) 评论(0) 推荐(0) 编辑

2013年4月3日

坐标系空间转换问题

摘要: 最近在学3D管线,从view到screen变换的时候,涉及到顶点坐标空间的转换,是极简单的问题,看下图:黑色屏幕上存在坐标系0(红色)和坐标系1(黄色),坐标系1空间有一点P(x1,y1),问这个屏幕像素点P在坐标系0下的坐标?肉眼就可以看出来答案:是(m+x1,n-y1)。难的是严谨的数学推理,一步“因为”一步“所以”的推导出结论。我大概是退化了,花了两个小时才想出来一种思路。---------------------------------------已知在坐标系1下,P点坐标(x1,y1),即:P点相对O1点向上偏移y1,向右偏移x1(记做条件1);已知在坐标系0下,O1点坐标(m,n. 阅读全文

posted @ 2013-04-03 20:02 weiweishuo 阅读(249) 评论(0) 推荐(0) 编辑

2013年3月12日

圆的角度DDA算法初试

摘要: 听老师讲到dx=-r*sini*di;dy=r*cosi*di(i表示角度),就关掉视频干别的了。早起猜了猜后续算法,核心思想应该是:不同半径的圆周长不同,为保证长为C的圆周描绘连续,保证有C个像素点,这样di=2PI/C=r,即圆心角每增加di,圆周长增加1像素.从公式看出,r越大,圆心角细分的越厉害,i的累加误差越小。我测了下r=10情形下,累加误差达到0.3,但r=100时,累加误差就只0.03了。 按照如下坐标系: 只需算出区域1的像素点,再对称出2区域,其余区域就可以由区域1,2做x/y对称得到。 流程图画的很丑:下面是代码:void drawCircle_dda(int x0,i. 阅读全文

posted @ 2013-03-12 16:20 weiweishuo 阅读(1120) 评论(0) 推荐(0) 编辑

2013年3月11日

bresenham直线算法

摘要: 思路很明了的一个算法,没有中点划线法那么绕(我需要小心的判断_2Fm>0意味着什么)。 基本原理从某处摘得:设直线方程为yi+1=yi+k(xi+1-xi)+k。假设列坐标象素已经确定为xi,其行坐标为yi。那么下一个象素的列坐标为xi+1,而行坐标要么为yi,要么递增1为yi+1。是否增1取决于误差项d的值。误差项d的初值d0=0,x坐标每增加1,d的值相应递增直线的斜率值k,即d=d+k。一旦 d≥1,就把它减去1,这样保证d在0、1之间。当d≥0.5时,直线与垂线x=xi+1交点最接近于当前象素(xi,yi)的右上方象素(xi+1,yi+1);而当d<0.5时,更接近于右方象 阅读全文

posted @ 2013-03-11 18:24 weiweishuo 阅读(1887) 评论(0) 推荐(0) 编辑

2013年3月10日

cpu流水线什么意思【百度知道】

摘要: 对于CPU来说,它的工作可分为获取指令、解码、运算、结果几个步骤。其中前两步由指令控制器完成,后两步则由运算器完成。按照传统的方式,所有指令按顺序执行,先由指令控制器工作,完成一条指令的前两步,然后运算器工作,完成后两步,依此类推……很明显,当指令控制器工作时运算器基本上处于闲置状态,当运算器在工作时指令控制器又在休息,这样就造成了相当大的资源浪费。于是CPU借鉴了工业生产中被广泛应用的流水线设计,当指令控制器完成了第一条指令的前两步后,直接开始第二条指令的操作,运算器单元也是,这样就形成了流水线。流水线设计可最大限度地利用了 CPU资源,使每个部件在每个时钟周期都在工作,从而提高了CPU的. 阅读全文

posted @ 2013-03-10 22:23 weiweishuo 阅读(2214) 评论(0) 推荐(0) 编辑

中点划线法

摘要: 原理是这样的,看下图:【注意:一个方格是一个像素,像素坐标按中心计算,看见两个大绿点儿没?】 由给定的(x0,y0),(x1,y1)算出直线L的一般描述式_F(x,y)=ax+by+c=0。直线的取向并不止上图一种,不同取向的处理略有不同(正负加减的区别而已),下面内容都按上图情况,代码里也集中注释这一块儿。 (x0,y0)既定,先考察(x0+1,Ym),即(x0+1,y0-0.5)点相对直线L的上下位置关系,确切说是相对(x0+1,Yline)的上下位置关系,用的是高中解析几何:_Fm=F(x0+1,y-0.5)=a(x0+1)+b(y0-0.5)+c,通过_Fm正负做推论:(_Fm> 阅读全文

posted @ 2013-03-10 20:35 weiweishuo 阅读(752) 评论(0) 推荐(0) 编辑

2013年3月9日

直线的dda算法

摘要: 就是最普通的dda算法,没有任何拓展:View Code 1 void drawLine_dda_float(int x0,int y0,int x1,int y1){ 2 //1000*100次,66ms 3 int x0_x1=x1-x0; 4 int y0_y1=y1-y0; 5 if((x0_x1>0?x0_x1:-x0_x1)>(y0_y1>0?y0_y1:-y0_y1)){ 6 //直线趋于水平,故沿x轴逐点描画 7 //保证x0_x1指向x轴正方向 8 if(x0_x1<0){ 9 ... 阅读全文

posted @ 2013-03-09 12:01 weiweishuo 阅读(672) 评论(0) 推荐(0) 编辑

上一页 1 2 3 4 5 6 7 ··· 11 下一页

导航