SlideShare a Scribd company logo
1 of 80
Download to read offline
Lab2在幹嘛?
Lab2的部分大概10~15分鐘可以看完
Addressing mode那邊是複習計算機組
織,10~15分鐘
目錄
• Lab2在幹嘛---2種程式比較
• Addressing modes在幹嘛(p.59)
• Lab2進階版---”1秒”亮與滅(p.79)
• Lab2超進階版---調燈亮度(p.80)
Lab2在幹嘛--第1種寫法
• 第2種寫法在p.44
Lab2在幹嘛—會學到的指令
• BIS.B = bis.b = bis.B = BIS.b != BIS
• BIC.B = bic.b
• XOR.B = 依此類推
• MOV = mov.w != mov.b
• DEC = dec.w
• JNZ = jnz
• JMP = jmp
• 簡單來說,指令大小寫都沒差,但有沒有.b
或.w有差
Lab2在幹嘛--第1種寫法
有興趣再問,反正之後會教
看
不
懂
這
邊
是
正
常
的
每
次
開
頭
都
差
不
多
Lab2在幹嘛--第1種寫法
這
個
是
本
體
一
行
一
行
解
釋
先
注
意
這
兩
行
Lab2在幹嘛--第1種寫法
• BIS.B #00000001b, P1DIR
BIS:是 sets bits (Bit Set),就是設定 bit
.B :是表示這個指令是用 Byte大小去執行
相對應的是.W,有興趣再問,反正之後會教
#00000001b:是指二進位的1,b代表binary
P1DIR :是Port 1 的 Direction Register,有8個bits
整體來說,這行是設定 Port 1 的 Pin 0方向為輸出
看不懂上面的就繼續下一頁,放下執著
Lab2在幹嘛--第1種寫法
• BIS.B #00000001b, P1DIR
板子上面有寫P1.0
也就是Port 1的 Pin 0
剛好這個地方是LED燈
一旦我們設定P1.0是輸出,那麼之後只要對P1.0輸出1就會
發光
通常板子重新啟動時,P1.0或其他譬如P1.1, P4.0, P4.7都會
是初始化成輸入,這樣子我們如果對P1.0輸出1就會沒有
意義
Lab2在幹嘛--第1種寫法
• BIS.B #00000001b, P1DIR
BIS.B這個指令會將後面指定的數字變成一個一個位元後,
把1的地方設定給後面的P1DIR
譬如P1DIR 原本是 0 0 0 0 0 0 0 0 這樣 8 個 bits
#00000001b表示 0 0 0 0 0 0 0 1 這樣 8 個 bits
經過 BIS.B 設定後
P1DIR就會變成 0 0 0 0 0 0 0 1
Lab2在幹嘛--第1種寫法
• BIS.B #10000000b, P4DIR (這是下一行程式碼~)
所以程式碼下一行換成設定P4.7(LED2)為輸出
P4DIR 原本是 0 0 0 0 0 0 0 0 這樣 8 個 bits
#10000000b表示 1 0 0 0 0 0 0 0 這樣 8 個 bits
經過 BIS.B 設定後
P4DIR就會變成 1 0 0 0 0 0 0 0
Lab2在幹嘛--第1種寫法
• BIS.B #00000011b, P2DIR (這一行只是舉例~)
換一個例子
如果P2DIR本來是 0 0 0 0 0 1 0 1
#00000011b表示 0 0 0 0 0 0 1 1
經過 BIS.B 設定後
P2DIR就會變成 0 0 0 0 0 1 1 1
也就是說,只有中間那個 #00000011b有1的地方,會把後
面相對應的位置設定成1,其他都不會變
Lab2在幹嘛--第1種寫法
• BIS.B #00000011b, P2DIR
這其實相當於 OR 的 Bitwise operation
00000101 (P2DIR原本的值)
OR) 00000011 (你想要設定P2.0, P2.1 的方向是輸出)
--------------------
00000111 (P2現在的P2.0, P2.1, P2.2 方向都是輸出)
Lab2在幹嘛--第1種寫法
講
完
這
邊
了
Lab2在幹嘛--第1種寫法
換
這
邊
Lab2在幹嘛--第1種寫法
• BIS.B #00000001b, P1OUT
BIS:這你應該懂
.B :這你應該懂吧
#00000001b:這你應該懂
P1OUT :是Port 1 的 Output Register,有8個bits
整體來說,這行是設定 Port 1 的 Pin 1 輸出 1
也就是 P1.0 剛剛設定成輸出,現在是給他輸出1,你不可
能輸出2,因為一個bit就只有0或者是1
#00000002b 組譯器不會讓你過,畢竟binary哪來2╮( ̄▽ ̄)╭
Lab2在幹嘛--第1種寫法
• BIS.B #00000001b, P1OUT
所以如果你是一行一行執行
(這四個差別有興趣再問,反正之後會教)
執行前
執行後
你的P1.0(LED1)就會亮亮的
Lab2在幹嘛--第1種寫法
• BIS.B #00000001b, P1OUT
不過也有可能你在執行這行以前P1.0就亮亮的,或是P4.7
亮亮的
因為類似於 C 當中 int i;
有可能P1OUT保存了一些上次留下來的值,或是樂透號碼
P1OUT可能本來是 0 0 0 1 0 0 0 1 (P1.4, P1.0)
因此就算沒有執行這行,LED1也會亮著
保險起見還是設定讓他亮
Lab2在幹嘛--第1種寫法
• BIC.B #10000000b, P4OUT (這是下一行程式碼~)
BIC:是clears bits(Bit Clear)
整體來說,這行是設定 P4.7 的輸出為0,其他不變
BIC感覺很簡單,不過其實概念比較麻煩
他會先 NOT #10000000,之後AND P4OUT
Lab2在幹嘛--第1種寫法
• BIC.B #10000000b, P4OUT (這是下一行程式碼~)
NOT) 10000000 (#10000000b)
----------------
01111111
AND) 10010001 (假設P4OUT的值是這樣)
----------------
00010001 (P4.7變成0,其它不會變)
Lab2在幹嘛--第1種寫法
結
束
了
Lab2在幹嘛--第1種寫法
先
看
這
兩
個
Lab2在幹嘛--第1種寫法
• loop:
…(略過程式碼)
• JMP loop
loop:是標籤的意思,類似於 C 的 goto LABEL
JMP:是 jump,不是漫畫,是跳到那一行執行
所以JMP loop就是執行完這行後,會跳到loop那一行執行
Lab2在幹嘛--第1種寫法
• loop:
…(略過程式碼)
• JMP loop
因為loop那一行沒有東西,所以就會跳到loop後面第一個
出現的程式碼 XOR.B #00000001b, P1OUT
如果改成這樣子
loop: XOR.B …..
兩個結果都是一樣的
Lab2在幹嘛--第1種寫法
看
這
邊
看
這
邊
Lab2在幹嘛--第1種寫法
• XOR.B #00000001b, P1OUT
XOR:是exclusive or,跟BIS差不多,只是變成XOR
整體來說,就是這個指令會讓燈閃爍
下一頁看說明
Lab2在幹嘛--第1種寫法
• XOR.B #00000001b, P1OUT
剛剛我們設定P1.0亮(P1OUT = 00001001)
執行完這行後會變成
00001001 (P1OUT原本的值)
XOR) 00000001 (#00000001b)
--------------------
00001000 (P1.0變成不亮,但是P1.3維持原樣)
Lab2在幹嘛--第1種寫法
• XOR.B #00000001b, P1OUT
當下一次又碰到這行時
執行完這行後會變成
00001000 (P1OUT原本的值)
XOR) 00000001 (#00000001b)
--------------------
00001001 (P1.0變亮,但是P1.3維持原樣)
也就是每次執行到 XOR.B,就會把後面對應的位置從0->1
或是1->0
Lab2在幹嘛--第1種寫法
• XOR.B #10000000b, P4OUT
所以相對的,一開始我們設定P1.0亮,碰到XOR後就會暗
而P4.7一開始是暗,碰到XOR後就會亮
因此兩個燈就會交替亮
Lab2在幹嘛--第1種寫法
最
後
一
段
Lab2在幹嘛--第1種寫法
• MOV #50000, R15
MOV:是一個move回來,把後面的值搬到更後面的那個
地方
組譯器會把它轉換成 MOV.W
#50000:十進位的50000,注意沒有b
R15: general purpose register 15,R4~R15可以自由使用
整體來說,就是把50000這個數值放到R15裡面
Lab2在幹嘛--第1種寫法
• MOV #50000, R15
0x:表示16進位,所以50000的16進位是0x0C350
另外,我們是16 bit的CPU
理論上register只有0x0000到0xFFFF,不過其實這塊版子上
面的register可以用到20 bit的資料,0xFFFFF
執行前
執行後
Lab2在幹嘛--第1種寫法
• DEC R15
DEC:decrement,也就是把後面的R15減掉1
這個指令比較特別,他叫做模擬指令(emulated instruction),
之後會教
事實上DEC這個指令相當於DEC.W,然後會被模擬成類似
SUB.W #1, R15
SUB:subtraction,把最後面的數值減掉前面的數值
也就是R15減掉1
Lab2在幹嘛--第1種寫法
• JNZ delay
JNZ:Jump if not zero,類似jump,不過是有條件的
delay跟loop一樣都是標籤,JNZ是看上一行的結果有沒有
出現0,如果沒有出現0就會跳到delay那一行
DEC R15
所以這行執行後,如果R15 != 0,程式就會跳到delay:,然
後繼續執行
DEC R15
JNZ delay
Lab2在幹嘛--第1種寫法
• JNZ delay
最後當R15 = 1時
DEC R15
R15 = 0
JNZ delay
執行這行後,因為出現了0,所以就不會跳回去delay,便
繼續執行下一行的
JMP loop
Lab2在幹嘛--第1種寫法
• JNZ delay
事實上,JNZ是看SR(Status Register, R3)當中的Zero bit有沒
有設定成1
Lab2在幹嘛--第1種寫法
• JNZ delay
Lab2在幹嘛--第1種寫法
• JNZ delay
Lab2在幹嘛--第1種寫法
• JNZ delay
Lab2在幹嘛--第1種寫法
• JNZ delay
Lab2在幹嘛--第1種寫法
初始化
改變燈亮滅
時間延遲
• 至於為什麼要有時間延遲?
因為我們的CPU是1M hz,每個指令執行速度很快,如果沒
有延遲就開關燈,那個燈閃爍的頻率會是1M hz左右,超
過人眼可以辨識的程度(你會看起來一直亮著)
注意:並不是一行程式碼就是讓CPU跑一次cycle,有些程
式碼會讓CPU跑2~3次cycles,之後會教如何計算clock
cycles
clock cycle:CPU跑一個機器碼指令的單位,1M hz的CPU表
示1秒鐘CPU大概可以跑100萬個機器碼指令
Lab2在幹嘛--第1種寫法
• 至於為什麼要有時間延遲?
所以我們用
MOV #50000, R5
DEC R5
JNZ delay
就會讓CPU跑個大概15萬個機器碼指令(15萬個clock cycles)
也就是大概0.15秒,燈就會每0.15秒閃爍一次
dec -> 1 cycle
jnz -> 2 cycles -> (1 + 2) x 50000 = 150000
Lab2在幹嘛--第1種寫法
• 還有咧?
之後我們會學到PWM(Pulse Width Modulation),他利用的
就是人眼分辨不出來燈閃爍的頻率,來讓燈可以調整亮度
另一個我們會學到的是interrupt,他同樣可以製作delay的
效果,但可以省電和其他功能
假設電池可以供應原本程式跑1小時,改成interrupt後,大
概可以跑1個星期或1個月吧……
Lab2在幹嘛--第1種寫法
Lab2在幹嘛--第2種寫法
• 第2種寫法
• 第2種寫法
• 第2種寫法
• (前面就花了40頁在講第1種寫法QQ)
• (後面比較少了但是我好懶得打QAQ)
Lab2在幹嘛--第2種寫法
這
個
是
本
體
ㄏ
ㄏ
變
好
長
Lab2在幹嘛--第2種寫法
幾乎每行都不一樣喔
Lab2在幹嘛--第2種寫法
• 這四行功能大致一樣,都是在做初始化
• 第一行是一樣的,指令大小寫都可以
但是P1DIR不能寫成p1dir
Lab2在幹嘛--第2種寫法
• 第二行不太一樣,先看後面
#10000000b是2進位
#0x80是16進位
兩個寫法代表的值是一樣的
另外#0x80也可以寫成#80h,h代表hentai hexadecimal
Lab2在幹嘛--第2種寫法
• 第二行不太一樣,看前面
之前介紹過bis, mov兩個指令了,所以基本上應該知道這
兩個動作會不一樣
假設說P4DIR原本是 0 1 0 0 1 0 0 1
bis.b 之後會變成 1 1 0 0 1 0 0 1 (or)
mov.b之後會變成 1 0 0 0 0 0 0 0 (move)
Lab2在幹嘛--第2種寫法
• 第二行要寫哪一種比較好?
因為這是在初始化的部分,我會傾向用右邊的mov.b
這樣可以確保其他的值都在我的掌控中,而不會殘留上次
的痕跡,造成非預期的後果譬如ㄎ_ㄖ
不過通常P4DIR會被初始化成 0 0 0 0 0 0 0 0,所以在這邊沒
差,但如果是P4OUT就有差了
Lab2在幹嘛--第2種寫法
• 第三行
#00000001b是二進位的1
每次都要打很多0很煩
MSP430有給我們簡化的方式,也就是#BIT0 (要有#在前)
#00000001b = #BIT0
#01000000b = #BIT6
#10000010b = #BIT7 + BIT1 (mov.b #BIT7 + BIT1, P4DIR)
這個會交給組譯器自動幫我們轉換~
Lab2在幹嘛--第2種寫法
• 第四行
#10000000b 是2進位的 10000000
#128就是他的10進位數值,也可以寫成#128d (decimal)
複習一下
#1b = #1d = #1h
#10000000b = #128d = #80h
這三個表示方式都代表同一個數值
Lab2在幹嘛--第2種寫法
• 第囧行所以該用哪一個比較好?
#10000000b = #128d = #80h
其實不一定,譬如如果我們要算128+57,就直接用#128就
好
但像是我們要設定某一個pin,譬如P4.7,那麼用
#10000000b 或用 #BIT7 會比較容易理解
Lab2在幹嘛--第2種寫法
下面就自己看吧>//////<
Lab2在幹嘛--第2種寫法
• 後半段的部分
第1種寫法會比第2種來的好,畢竟程式碼比較短,而且感
覺比較厲害兩種寫法跑的時間都一樣
注意:程式碼也會佔走記憶體空間,所以理想上比較短會
比較好,不過我們應該不至於寫到用完記憶體空間的大程
式
Lab2在幹嘛--第2種寫法
• 後半段的部分,有驚嘆號
Lab2在幹嘛--第2種寫法
• 後半段的部分,沒有驚嘆號
Lab2在幹嘛--第2種寫法
• 後半段的部分
剛剛看的兩張圖差別在於有沒有warning
簡單來說 JMP 之類的 jump指令放在程式碼最後面有可能
造成非預期的後果,畢竟硬體有可能壞掉,不會一行一行
執行之類的,基本上就只是提醒你而已可以不用管他
阿覺得很煩可以加個 NOP: no operation,就是甚麼都不
做但是會浪費一個 cycle,就可以有一點保護作用
Addressing modes在幹嘛
• 我懶得打了,有空再補XDDDD
• 基本上跟計算機組織學的有關
• 而 mov.b #BIT0, P1OUT
mov.b #BIT0, &P1OUT
感覺執行起來沒差,不過實際上產生的機
器碼不一樣,而且特殊狀況下會有差
Addressing modes在幹嘛
• Addressing modes 表示一個資料要怎麼取得
或放進去某個地方
Register mode: 資料在 register 裡面
其他 modes: 資料在 memory 裡面,必須先找到位置
不同mode可以混搭
Addressing modes在幹嘛
• 混搭的範例
mov.w #1000, R5
Immediate mode
資料在memory中
然後指令的這位置叫
data source
可以有7種modes
register mode
資料要放到register裡
指令最後面的位置通常是
data destination
只能有4種modes
Addressing modes在幹嘛
• 我們寫的語言是Assembly code
實際上會再由組譯器翻譯成機器碼(machine code)
如果我們今天寫 C code
i = i + 3;
編譯器會將它大概變成
add.w #3, R4
然後組譯器再變成這兩行
0101 0000 0 1 11 0100
000000000000000011
複習計算機組織(可以跳過)
• 這兩行是甚麼意思? add.w #3, R4
0101 0000 0 1 11 0100
000000000000000011
這兩行就是CPU會讀到的程式碼
0101 0000 0 1 11 0100
前面四碼叫做 Op-code:operation code
也就是說,他告訴CPU這行程式碼在幹嘛
0101表示我們要做 add
複習計算機組織(可以跳過)
• 這兩行是甚麼意思? add.w #3, R4
0101 0000 0 1 11 0100
000000000000000011
這兩行就是CPU會讀到的程式碼
0101 0000 0 1 11 0100
這四碼表示 Rsrc: Register source
也就是我們要相加,資料的來源
0000表示我們要相加的來源在 Register 0
而 Register 0 又叫做 PC: Program Counter
複習計算機組織(可以跳過)
• 這兩行是甚麼意思? add.w #3, R4
0101 0000 0 1 11 0100
000000000000000011
這兩行就是CPU會讀到的程式碼
0101 0000 0 1 11 0100
等等!資料來源不是Memory嗎?
Immediate mode: 表示資料在 memory,剛剛說的來源是
Register 0,但因為他是Program Counter,在Immediate
mode的情況下會把Program Counter指到的記憶體裡面放
的資料當成來源
複習計算機組織(可以跳過)
• 這兩行是甚麼意思? add.w #3, R4
0101 0000 0 1 11 0100
000000000000000011
這兩行就是CPU會讀到的程式碼
0101 0000 0 1 11 0100
Program Counter (Register 0)
我們程式都是放在memory裡面跑,而PC這個Register
會儲存的值就是程式碼在memory裡面的位置,也就是他
在掌管程式目前要跑到第幾行
在Immediate mode情況下,PC指到的位置裡面的值會
被當成是數值,而不是要執行的程式碼
複習計算機組織(可以跳過)
• 這兩行是甚麼意思? add.w #3, R4
PC->0xABCD 0101 0000 0 1 11 0100
0xABCF 000000000000000011
這兩行就是CPU會讀到的程式碼
0101 0000 0 1 11 0100
上面表示我們程式碼放在記憶體的 0xABCD位置,這時候
Register 0 儲存的值就是 0xABCD,而0xABCD這個位置裡面
儲存的數值是0101 0000 0 1 11 0100
當執行完這一行時,PC會往下跳一格
複習計算機組織(可以跳過)
• 這兩行是甚麼意思? add.w #3, R4
0xABCD 0101 0000 0 1 11 0100
PC->0xABCF 000000000000000011
這兩行就是CPU會讀到的程式碼
0101 0000 0 1 11 0100
Immediate mode情況下,這時候CPU會把0xABCF裡面儲存
的值當成data source,也就是0000000000000011,#3
直到這行程式碼執行完,add.w #3, R4這一行才算是執行
結束,也就是add.w #3, R4需要讓CPU執行兩次才會執行
結束,clock cycle數是2
複習計算機組織(可以跳過)
• 這兩行是甚麼意思? add.w #3, R4
0101 0000 0 1 11 0100
000000000000000011
這兩行就是CPU會讀到的程式碼
0101 0000 0 1 11 0100
所以回來一下,這四碼表示Rsrc,也就是我們要相加的來
源是Register 0
複習計算機組織(可以跳過)
• 這兩行是甚麼意思? add.w #3, R4
0101 0000 0 1 11 0100
000000000000000011
這兩行就是CPU會讀到的程式碼
0101 0000 0 1 11 0100
這兩碼叫做 As: Addressing mode of source
11表示要用Immediate mode
也就是告訴你,剛剛 Rsrc雖然是 Register 0,可是我們要用
的資料來源不是 Register 0 裡面儲存的值,而是在這行程
式碼結束後,PC指到的那一行程式碼才是我們的資料來源
000000000000000011
複習計算機組織(可以跳過)
• 這兩行是甚麼意思? add.w #3, R4
0101 0000 0 1 11 0100
000000000000000011
這兩行就是CPU會讀到的程式碼
0101 0000 0 1 11 0100
這一碼叫做 Ad: Addressing mode of destination
也就是資料要放的地方,應該用甚麼方式放過去
0表示Register mode,資料就在Register裡面
複習計算機組織(可以跳過)
• 這兩行是甚麼意思? add.w #3, R4
0101 0000 0 1 11 0100
000000000000000011
這兩行就是CPU會讀到的程式碼
0101 0000 0 1 11 0100
這一碼叫做 B/W: Byte or Word
也就是 add.w 後面的 .w
1表示我們資料傳遞的時候是一個word(2 bytes, 16bits)
複習計算機組織(可以跳過)
• 這兩行是甚麼意思? add.w #3, R4
0101 0000 0 1 11 0100
000000000000000011
這兩行就是CPU會讀到的程式碼
0101 0000 0 1 11 0100
最後四碼是Rdst: Register destination
也就是資料要去的地方
0100表示去到第四個register, R4
複習計算機組織(可以跳過)
• 這兩行是甚麼意思? add.w #3, R4
0101 0000 0 1 11 0100
000000000000000011
這兩行就相當於下面那個樣子
延伸問題:Ad只有1個bit, As有2個bits
可是source可以有7種modes,destination 4種
為什麼呢?
Addressing modes在幹嘛
• Addressing modes 表示一個資料要怎麼取得
或放進去某個地方
所以複習完計算機組織,我們可以知道Addressing modes
影響的除了告訴CPU資料在那裡,也會影響到產生的機器
碼多寡,因此影響到程式執行的時間
Addressing modes在幹嘛
• 舉個例子
add.w R4, R5
source和destination都是register mode
會產生
0101 0100 0 1 00 0101
add.w #3, R5
會產生
0101 0000 0 1 11 0101
000000000000000011
Addressing modes在幹嘛
• 進階例子
add.w #1, R5
會產生
0101 0011 0 0 01 0101
add.w #3, R5
會產生
0101 0000 0 1 11 0101
000000000000000011
會不一樣是因為Constant Generator (R2, R3)
反正很神奇就是了, #0, #1, #2, #4, 這些值都很特別
Addressing modes在幹嘛
• mov.b #BIT0, P1OUT
mov.b #BIT0, &P1OUT
所以這兩個的 Destination 的 Addressing mode不一樣,產
生的機器碼也會不一樣
一般情況下,兩個效果是沒差的
但特殊情況下有差
詳細就自己看 MSP430-UserGuide 或是Lab PPT~
Lab2進階版---”1秒”亮與滅
• 試著自己讓燈可以接近1秒鐘亮滅
有很多方法可以做到,要看提示就反白下面
不過通常情況下 register最大只能到 #65535
所以如果打
mov.w #10000000, R15
組譯器不會讓你過~
1.用很多loop來增加延遲
2.用巢狀loop來增加延遲
3.用特殊指令(movx.a)來增加延遲
4.用interrupt
Lab2超進階版---調燈亮度
• 因為只要燈變換頻率過快,人眼就無法辨
識閃爍,但會因為亮跟暗的週期而感覺燈
亮度有變化,這就是PWM的應用之一
• 可能需要用到
• JZ = jz:jump if zero, 是jnz的相反
• 目前學到的指令就可以辦到嚕~
• 範例會讓LED1慢慢亮或滅,LED2指示現在
是亮或暗

More Related Content

What's hot

系統程式 -- 第 4 章 組譯器
系統程式 -- 第 4 章 組譯器系統程式 -- 第 4 章 組譯器
系統程式 -- 第 4 章 組譯器鍾誠 陳鍾誠
 
[若渴計畫]64-bit Linux Return-Oriented Programming
[若渴計畫]64-bit Linux Return-Oriented Programming[若渴計畫]64-bit Linux Return-Oriented Programming
[若渴計畫]64-bit Linux Return-Oriented ProgrammingAj MaChInE
 
系統程式 -- 第 3 章 組合語言
系統程式 -- 第 3 章 組合語言系統程式 -- 第 3 章 組合語言
系統程式 -- 第 3 章 組合語言鍾誠 陳鍾誠
 
第11章 目标代码生成
第11章 目标代码生成第11章 目标代码生成
第11章 目标代码生成tjpucompiler
 
黑客终极语言——Lisp
黑客终极语言——Lisp黑客终极语言——Lisp
黑客终极语言——LispRui Peng
 
Php extension开发
Php extension开发Php extension开发
Php extension开发thinkinlamp
 
程式設計師的自我修養 Chapter 10 記憶體
程式設計師的自我修養 Chapter 10 記憶體程式設計師的自我修養 Chapter 10 記憶體
程式設計師的自我修養 Chapter 10 記憶體Shu-Yu Fu
 
系統程式 -- 第 5 章 連結與載入
系統程式 -- 第 5 章 連結與載入系統程式 -- 第 5 章 連結與載入
系統程式 -- 第 5 章 連結與載入鍾誠 陳鍾誠
 
实验五 读者 写者问题
实验五 读者 写者问题实验五 读者 写者问题
实验五 读者 写者问题jason1114
 

What's hot (12)

系統程式 -- 第 4 章 組譯器
系統程式 -- 第 4 章 組譯器系統程式 -- 第 4 章 組譯器
系統程式 -- 第 4 章 組譯器
 
系統程式 - 附錄
系統程式 - 附錄系統程式 - 附錄
系統程式 - 附錄
 
[若渴計畫]64-bit Linux Return-Oriented Programming
[若渴計畫]64-bit Linux Return-Oriented Programming[若渴計畫]64-bit Linux Return-Oriented Programming
[若渴計畫]64-bit Linux Return-Oriented Programming
 
系統程式 -- 第 3 章 組合語言
系統程式 -- 第 3 章 組合語言系統程式 -- 第 3 章 組合語言
系統程式 -- 第 3 章 組合語言
 
第11章 目标代码生成
第11章 目标代码生成第11章 目标代码生成
第11章 目标代码生成
 
黑客终极语言——Lisp
黑客终极语言——Lisp黑客终极语言——Lisp
黑客终极语言——Lisp
 
Php extension开发
Php extension开发Php extension开发
Php extension开发
 
程式設計師的自我修養 Chapter 10 記憶體
程式設計師的自我修養 Chapter 10 記憶體程式設計師的自我修養 Chapter 10 記憶體
程式設計師的自我修養 Chapter 10 記憶體
 
Nio trick and trap
Nio trick and trapNio trick and trap
Nio trick and trap
 
系統程式 -- 第 5 章 連結與載入
系統程式 -- 第 5 章 連結與載入系統程式 -- 第 5 章 連結與載入
系統程式 -- 第 5 章 連結與載入
 
Execution
ExecutionExecution
Execution
 
实验五 读者 写者问题
实验五 读者 写者问题实验五 读者 写者问题
实验五 读者 写者问题
 

Viewers also liked

8086 instruction set
8086 instruction set8086 instruction set
8086 instruction setjemimajerome
 
Addressing mode of 8051
Addressing mode of 8051Addressing mode of 8051
Addressing mode of 8051Nitin Ahire
 
8051 Microcontroller Notes
8051 Microcontroller Notes8051 Microcontroller Notes
8051 Microcontroller NotesDr.YNM
 

Viewers also liked (6)

8086 instruction set
8086 instruction set8086 instruction set
8086 instruction set
 
Shift rotate
Shift rotateShift rotate
Shift rotate
 
[ASM]Lab7
[ASM]Lab7[ASM]Lab7
[ASM]Lab7
 
Addressing mode of 8051
Addressing mode of 8051Addressing mode of 8051
Addressing mode of 8051
 
8051 addressing
8051 addressing8051 addressing
8051 addressing
 
8051 Microcontroller Notes
8051 Microcontroller Notes8051 Microcontroller Notes
8051 Microcontroller Notes
 

Similar to Lab2在幹嘛

Ihome inaction 篇外篇之fp介绍
Ihome inaction 篇外篇之fp介绍Ihome inaction 篇外篇之fp介绍
Ihome inaction 篇外篇之fp介绍dennis zhuang
 
Excel vba實務應用 第3天
Excel vba實務應用 第3天Excel vba實務應用 第3天
Excel vba實務應用 第3天明和 蔡
 
Serverless Event Streaming with Pulsar Functions-xiaolong
Serverless Event Streaming with Pulsar Functions-xiaolongServerless Event Streaming with Pulsar Functions-xiaolong
Serverless Event Streaming with Pulsar Functions-xiaolongStreamNative
 
Bash入门基础篇
Bash入门基础篇Bash入门基础篇
Bash入门基础篇Zhiyao Pan
 
Android C Library: Bionic 成長計畫
Android C Library: Bionic 成長計畫Android C Library: Bionic 成長計畫
Android C Library: Bionic 成長計畫Kito Cheng
 
Erlang jiacheng
Erlang jiachengErlang jiacheng
Erlang jiachengAir-Smile
 
COSCUP 2016 - LLVM 由淺入淺
COSCUP 2016 - LLVM 由淺入淺COSCUP 2016 - LLVM 由淺入淺
COSCUP 2016 - LLVM 由淺入淺宗凡 楊
 
COSCUP2016 - LLVM框架、由淺入淺
COSCUP2016 - LLVM框架、由淺入淺COSCUP2016 - LLVM框架、由淺入淺
COSCUP2016 - LLVM框架、由淺入淺hydai
 
Java线上应用问题排查方法和工具(空望)
Java线上应用问题排查方法和工具(空望)Java线上应用问题排查方法和工具(空望)
Java线上应用问题排查方法和工具(空望)ykdsg
 
Learning python in the motion picture industry by will zhou
Learning python in the motion picture industry   by will zhouLearning python in the motion picture industry   by will zhou
Learning python in the motion picture industry by will zhouWill Zhou
 
数字电路复习
数字电路复习数字电路复习
数字电路复习zhaowmm
 
6, awk
6, awk6, awk
6, awkted-xu
 
文本序列标注模型:从Crf到rnn
文本序列标注模型:从Crf到rnn文本序列标注模型:从Crf到rnn
文本序列标注模型:从Crf到rnnYunchao He
 

Similar to Lab2在幹嘛 (18)

89S51電路板
89S51電路板89S51電路板
89S51電路板
 
系統程式 -- 附錄
系統程式 -- 附錄系統程式 -- 附錄
系統程式 -- 附錄
 
9789572239940 試閱章節
9789572239940 試閱章節9789572239940 試閱章節
9789572239940 試閱章節
 
Ihome inaction 篇外篇之fp介绍
Ihome inaction 篇外篇之fp介绍Ihome inaction 篇外篇之fp介绍
Ihome inaction 篇外篇之fp介绍
 
Excel vba實務應用 第3天
Excel vba實務應用 第3天Excel vba實務應用 第3天
Excel vba實務應用 第3天
 
Godson x86
Godson x86Godson x86
Godson x86
 
Serverless Event Streaming with Pulsar Functions-xiaolong
Serverless Event Streaming with Pulsar Functions-xiaolongServerless Event Streaming with Pulsar Functions-xiaolong
Serverless Event Streaming with Pulsar Functions-xiaolong
 
Bash入门基础篇
Bash入门基础篇Bash入门基础篇
Bash入门基础篇
 
Android C Library: Bionic 成長計畫
Android C Library: Bionic 成長計畫Android C Library: Bionic 成長計畫
Android C Library: Bionic 成長計畫
 
Erlang jiacheng
Erlang jiachengErlang jiacheng
Erlang jiacheng
 
Intro to svn
Intro to svnIntro to svn
Intro to svn
 
COSCUP 2016 - LLVM 由淺入淺
COSCUP 2016 - LLVM 由淺入淺COSCUP 2016 - LLVM 由淺入淺
COSCUP 2016 - LLVM 由淺入淺
 
COSCUP2016 - LLVM框架、由淺入淺
COSCUP2016 - LLVM框架、由淺入淺COSCUP2016 - LLVM框架、由淺入淺
COSCUP2016 - LLVM框架、由淺入淺
 
Java线上应用问题排查方法和工具(空望)
Java线上应用问题排查方法和工具(空望)Java线上应用问题排查方法和工具(空望)
Java线上应用问题排查方法和工具(空望)
 
Learning python in the motion picture industry by will zhou
Learning python in the motion picture industry   by will zhouLearning python in the motion picture industry   by will zhou
Learning python in the motion picture industry by will zhou
 
数字电路复习
数字电路复习数字电路复习
数字电路复习
 
6, awk
6, awk6, awk
6, awk
 
文本序列标注模型:从Crf到rnn
文本序列标注模型:从Crf到rnn文本序列标注模型:从Crf到rnn
文本序列标注模型:从Crf到rnn
 

Lab2在幹嘛