Monthly Archives: September 2011

Winedt 6 试用 永不过期

1. 在options菜单下点options…, 2. 在advanced configuration…下Event Handlers…下点Exit,                                                            在End;前添加一行 RegDeleteValue(‘HKEY_CURRENT_USER’, ‘Software\WinEdt 6’, ‘Inst’); … Continue reading

Posted in Uncategorized | Leave a comment

Can not find or open the PDB file

转载   ‘win32.exe’: Loaded ‘C:\Windows\System32\msvcr100d.dll’, Symbols loaded. ‘win32.exe’: Loaded ‘C:\Windows\System32\imm32.dll’, Cannot find or open the PDB file ‘win32.exe’: Loaded ‘C:\Windows\System32\msctf.dll’, Cannot find or open the PDB file ‘win32.exe’: Loaded ‘C:\Windows\System32\uxtheme.dll’, Cannot find or open the PDB file ‘win32.exe’: Loaded ‘C:\Windows\System32\dwmapi.dll’, … Continue reading

Posted in Uncategorized | Leave a comment

Linux shared memory & semaphore

Show all info:                      ipcs delete specific item:           ipcrm [-m|-s]

Posted in Linux | Leave a comment

寄存器

(转载) 首先介绍我们会经常看到的一些寄存器: 4个数据寄存器(EAX、EBX、ECX和EDX) 2个变址和指针寄存器(ESI和EDI) 2个指针寄存器(ESP和EBP) 4个数据寄存器(EAX、EBX、ECX和EDX): 32位CPU有4个32位的通用寄存器EAX、EBX、ECX和EDX。对低16位数据的存取,不会影响高16位的数据。这些低16位寄存器分别命名为:AX、BX、CX和DX,它和先前的CPU中的寄存器相一致。 4个16位寄存器又可分割成8个独立的8位寄存器(AX:AH-AL、BX:BH-BL、CX:CH-CL、DX:DH-DL),每个寄存器都有自己的名称,可独立存取。程序员可利用数据寄存器的这种“可分可合”的特性,灵活地处理字/字节的信息。 那么如何理解eax,ax,al(ah)之间的关系呢? 专业点可以这样解释:Eax是32位寄存器,ax是16位寄存器,al(ah)是八位寄存器。 那么eax存储的数据就是ax的两倍,ax是al(ah)的两倍。 Eax可以存储的数字是DWORD(双字)ax存储的是WORD(字)AL(AH)存储的是BYTE(字节),那么为什么又有AH和AL呢,我们可以这样理解,AX=AH+AL,AH存储的是AX的高8位数据,AL存储的是AX的低八位数据。H这里就是HIGH,L就是LOW. 假设eax是红色区域,那么eax现在就是64636261; 那么ax就是eax的低十六位,也就是6261; Al是61;AH是62。 其他ebx,ecx,edx也有类似的bx,bl,bh等对应的寄存器,原理和上面相同。 在用途方面,他们有各自默认的用途: Eax用来保存所有API函数的返回值。 寄存器AX和AL通常称为累加器(Accumulator),用累加器进行的操作可能需要更少时间。累加器可用于乘、除、输入/输出等操作,它们的使用频率很高; 寄存器BX称为基地址寄存器(Base Register)。它可作为存储器指针来使用; 寄存器CX称为计数寄存器(Count Register)。在循环和字符串操作时,要用它来控制循环次数;在位操作中,当移多位时,要用CL来指明移位的位数; 寄存器DX称为数据寄存器(Data Register)。在进行乘、除运算时,它可作为默认的操作数参与运算,也可用于存放I/O的端口地址。 由于存储的数据大小关系,AX、BX、CX和DX不能作为基址和变址寄存器来存放存储单元的地址, 32位寄存器EAX、EBX、ECX和EDX不仅可传送数据、暂存数据保存算术逻辑运算结果,而且也可作为指针寄存器,所以,这些32位寄存器更具有通用性。(什么是基址,什么是变址以后会说到) 2个变址和指针寄存器(ESI和EDI) 32位CPU有2个32位通用寄存器ESI和EDI。其低16位对应先前CPU中的SI和DI,对低16位数据的存取,不影响高16位的数据。 寄存器ESI、EDI、SI和DI称为变址寄存器(Index Register),它们主要用于存放存储单元在段内的偏移量,用它们可实现多种存储器操作数的寻址方式,为以不同的地址形式访问存储单元提供方便。 变址寄存器不可分割成8位寄存器。作为通用寄存器,也可存储算术逻辑运算的操作数和运算结果。它们可作一般的存储器指针使用。在字符串操作指令的执行过程中,对它们有特定的要求,而且还具有特殊的功能。 2个重要的指针寄存器(ESP和EBP) 这两个指针寄存器都和“栈”这个神秘的东东有关,那么什么是栈呢?这俩指针寄存器又有何作用呢? 从计算机科学的角度看,栈是一种数据结构,是一种先进后出的数据表。栈的最常见操作有两种:Push(入栈)和Pop(出栈)。 我们可以把栈想象成一摞扑克牌: PUSH:为栈增加一个元素的操作是push,相当于在这摞扑克牌最上面再放一张 POP:从栈中取出一个元素的操作叫做POP,相当于从这摞扑克牌取出最上面的一 张。 TOP:标识栈顶位置,并且是动态变化的。每做一次PUSH … Continue reading

Posted in Uncategorized | Leave a comment