2013年5月15日 星期三

Data Segment

rodata

變數被定義為const或者是固定字串

text

程式指令的部分

data

有初始值的global variable

bss

沒有初始值的global variable

heap

dynamic memory,透過malloc等function取得的。

stack

local variables

2013年5月13日 星期一

面試必備 -- BIT MASK

Set Specific Bit

value = value | (1 << bit)

#define SET_BIT(x, y) ((x) = (x) | ((1)<<(y)))

Clear Specific Bit

value = value & ~(1 <<bit)

#define CLEAR_BIT(x, y) ((x) = (x) & ~((1)<<(y)))

Inverse Specific Bit

value = value ^ (1 << bit)

#define INVERSE_BIT(x, y) ((x) = (x) ^ ((1)<<(y)))

Get Specific Bit

ret = (value >> bit) & 1

#define GET_BIT(x, y) ((x)>>(y) & 1)

Bit Count

code:
int counter = 0;
while ( input ) {
    counter++;
    input &= (input - 1);
}

2013年5月2日 星期四

棒球英文用語

棒球英文用語

職棒聯盟:

  • CPBL - Chinese Professional Baseball League
  • MLB - Major League Baseball
  • NPB - Nippon Professional League

野手名稱

  • Pitcher - 投手
  • Catcher - 捕手
  • Infielder - 內野手
    • First Baseman - 一壘手
    • Second Baseman - 二壘手
    • Third Baseman - 三壘手
    • Shortstop - 游擊手
  • Outfielder - 外野手
    • Left Fielder - 左外野手
    • Right Fielder - 右外野手
    • Center Fielder - 中外野手
專業術語
  • 安打
    • one-base hit - 一壘安打
    • two-base hit - -二壘安打
    • three-base hit - 三壘安打
    • home run - 全壘打
  • 投球
    • strikeout - 三振
    • walks / base on balls - 四壞

2013年5月1日 星期三

面試必備 -- 數值swap

數值swap

程式碼:

int swap(int a, int b) {
    a = a^b;
    b = a^b;
    a = a ^b;
}

面試必備 -- 計算幾個bit為1

計算幾個bit為1

常見基本面試考題
  • 基本bit mask概念
  • 數學概念
程式碼:

while (input) {
    counter++;
    input &= (input -1);
}      

2013年4月29日 星期一

英文文法 -- 名詞

可數名詞

英文稱為: Countable Noun
字典標 : [C]

  • 單數
    • 一般狀況
      • a dog
    • 一般遇到母音開頭,使用 an
      • an apple
  • 複數
    • 一般狀況
      • dogs
    • 單字字尾是  X, S, CH, SH
      • box > boxes
      • bus > buses
      • watch > watches
      • dish > dishes
    • 單字字尾是 O
      • 可能是 s or es
      • hero > heroes
      • zoo > zoos
    • 單字字尾是 F/FE
      • 可能是直接加 S
        • roof > roofs
      • 可能去掉F 然後加 VSE
        • leaf > leaves
        • wife > wives

不可數名詞

英文稱為: Uncountable Noun
字典標 : [U]
  • a piece of paper.
  • two pieces of paper
  • one cup of coffee
  • two cups of coffee

2013年4月24日 星期三

Assembly格式

Assembly 格式

在assembly寫法上面主要有兩種格式
  • AT&T
  • Intel
主要有下列幾種差異

Source & Destination

從 register A(eax) --> register B(ebx)
  • AT&T :  mov  %eax, %ebx
  • Intel    :   mov ebx, eax

暫存器命名:

  • AT&T: 暫存器名稱前要加 % 符號
  • Intel: 不用加

立即值

  • AT&T:  立即值前面要加 $ 符號
    • mov  $1, %ebx
  • Intel: 不用加
    • mov ebx, 1

間接定址

  • AT&T: 用小括號 "("  ")"
  • Intel: 用中括號 "[" "}"

GCC使用的是AT&T的語法