一起來學 英日韓法國語言 吧~
適合初學者學習各國語言,都是基礎的字詞. 對各種語言有興趣的朋友,可以看圖聽發音學習.
英語直通車
日語自由行(香港日本文化協會)
基礎實用的日語搭配語音學習
韓語教室
CRI on Iien
有課程可以選擇, 可以反過來學習法文吧
le monde de victor
可愛的小朋友網站, 可以學法文喔~
裡面提的東西也較多,唯所撰內容過於繁雜,於此盡量「化繁為簡」。
以下之說明基於以下前提假設:
(1) sizeof(int) = 4 。
(2) 系統為二補數表示法。
(3) sizeof(pointer) = 4,意即指標大小為 4 bytes。
一般指令 | |
---|---|
Symbol | Description |
MOV x,y | assign y 的值給 x |
ADD x,y | 將 x, y 的值相加,並將結果存至 x |
SUB x,y | 將 x, y 的值相減,並將結果存至 x |
CMP x,y | 比較 x, y 的值,其運算與 SUB 類似,但其運算後的值不儲存,只會影響 flags 的值 |
DEC x | 將 x 的值減 1 |
INC x | 將 x 的值加 1 |
NEG x | 將 x 的值做 2's complement |
LEA x,y | 將 y 的地址給 x |
JMP x | 無條件、無範圍限制地跳到 x( destination label ) 的地方 |
JCXZ x | 若 CX 的值為 0,則跳到 x( destination label ) 的地方 |
LOOP x | 用 CX 計數(指能用CX)的 for loop,每次遇到此指令,CX 的值都將自動被減 1,若 CX 不等於 0,則會跳到 x( destination label ) 的地方 |
x EQU y | 在程式中,遇到 x 出現的地方都替換為 y,如:LF EQU 0Dh,就是將 LF 替換為 0Dh |
XCHG x,y | 交換 x 與 y 的值 |
回頂端 | |
Signed Jumps | ||
---|---|---|
Symbol | Description | Condition for Jumps |
JG / JNLE | jump if greater than, jump if not less than or equal to | ZF = 0 and SF = OF |
JGE / JNL | jump if greater than or equal to, jump if not less than or equal to | SF = OF |
JL / JNGE | jump if less than, jump if not greater than or equal | SF <> OF |
JLE / JNG | jump if less than or equal, jump if not greater than | ZF = 1 or SF <> OF |
Unsigned Signed Jumps | ||
Symbol | Description | Condition for Jumps |
JA / JNBE | jump if above, jump if not below or equal | ZF = 0 and CF = 0 |
JAE / JNB | jump if above or equal, jump if not below | CF = 0 |
JB / JNAE | jump if below, jump if not above or equal | CF = 1 |
JBE / JNA | jump if equal, jump if not above | CF = 1 or ZF = 1 |
Single-Flag Jumps | ||
Symbol | Description | Condition for Jumps |
JE / JZ | jump if equal, jump if equal to zero | ZF = 1 |
JNE / JNZ | jump if not equal, jump if not zero | ZF = 0 |
JC | jump if carry | CF = 1 |
JNC | jump if no carry | CF = 0 |
JO | jump if overflow | OF = 1 |
JNO | jump if no overflow | OF = 0 |
JS | jump if sign negative | SF = 1 |
JNS | jump if nonnegative sign | SF = 0 |
JP / JPE | jump if parity even | PF = 1 |
JNP / JPO | jump if parity odd | PF = 0 |
回頂端 | ||
Logic, Shift, and Rotate Instructions | |
---|---|
Symbol | Description |
NOT x | 對 x 做 1's complement(原本的 0 會變成 1,1 會變成 0) |
AND x,y | 讓 x 與 y 做 AND 邏輯運算,並把結果存在 x |
OR x,y | 讓 x 與 y 做 OR 邏輯運算,並把結果存在 x |
XOR x,y | 讓 x 與 y 做 OR 邏輯運算,並把結果存在 x |
SHL x,y | 將 x 往左 shift y bits(x 被推到最左邊超出範圍的位數放入 CF,不足的右邊位數補 0) |
SAL x,y | 功能與 SHL 完全相同,但此指令通常被用在 數學運算 的情況下(如: x * 2y) |
SHR x,y | 將 x 往右 shift y bits(x 被推到最右邊超出範圍的位數放入 CF,不足的左邊位數補 0) |
SAR x,y | 功能與 SHR 相似(x 被推到最右邊超出範圍的位數放入 CF,不足的左邊位數補入原本 msb 的 bit 值),此指令通常被用在 數學運算 的情況下(如: x / 2y) |
ROL x,y | 將 x 往左 shift y bits(x 被推到最左邊超出範圍的位數放入 CF、以及放入 x 的 lsb) |
ROR x,y | 將 x 往右 shift y bits(x 被推到最右邊超出範圍的位數放入 CF、以及放入 x 的 msb) |
RCL x,y | 將 x 往左 shift y bits(x 被推到最左邊超出範圍的位數放入 CF,CF 的值放入 x 的 lsb) |
RCR x,y | 將 x 往右 shift y bits(x 被推到最右邊超出範圍的位數放入 CF、CF 的值放入 x 的 msb) |
P.S. 關於 shift 與 rotate 的指令,若是欲將 y 設為變數,則只能使用 CL,不可使用其他變數或是 register | |
回頂端 | |
Stack & procdure instructions | |
---|---|
Symbol | Description |
PUSH x | 將 x ( x 必須為 word ) push 進 stack 中(SP 會先加 1,再將 x 加入 stack 中) |
PUSHF | 將 FLAGS push 進 stack 中 |
POP x | 從 stack 中 pop 出一個 word 放入 x(SP 會先 pop,再減 1) |
PUSHF | 從 stack 中 pop 出一個 word 放入 FLAGS 中 |
CALL | 呼叫 procedure |
RET x | 從 procedure 中跳出,若有給 參數 x,則在 RET 之後,會將 SP 往下加 x bytes |
回頂端 | |
Multiplication and Division Instructions | |
---|---|
Symbol | Description |
MUL x | 若 x 的資料型態是 byte,將 x 與 AL 相乘,將結果儲存於 AX |
本來認為不會這麼快用到ipv6的功能,但在windows 7的homegroup及ipv6使用心得,以及建立方法這篇文章中,發現可以透過ipv6解決windows 7 的電腦之間,ipv4不同網段的資料共用問題,然後有網友問到可否同樣在windows xp與windows 7中,利用ipv6來解決ipv4不同網段的檔案分享問題。在windows 7很簡單,啟用ipv6就可以分享檔案了,完全不必多做設定,但在windows xp與windows 7之間,經過我努力的查找資料,相關的資料實在很貧乏,很可惜沒有找到建立共用檔案的方法,目前只好暫時先放棄。
不過雖然失敗,卻也吸收了不少ipv6的相關知識,在此記錄下來,ipv4的ip快耗盡了,以後總是會用到ipv6,先整理一些ipv6的基本知識。