發表文章

目前顯示的是有「組合語言」標籤的文章

3/22(三)Symbol & Variables

        今天就來繼續記錄組語心得,現在終於找到另一個好用的 blog,本來想繼續用痞客幫,不過現在後台管理改超爛,所以現在來試試新東西。         要講今天的主題前,先來複習一下在 C 語言中 #define 的用法,範例如下:         /*                     #define [symbol] [與指定之內容]         ex:       #define     PI        3.14                  */         而在編譯的時候(Compile),這種被 define 的部分,會先經過一個過程為 Symbol replacement / Macro extension,只要經過這個過程,就會將被 define 的部分,存入 Symbol table 中,而最後剩下的就僅有其內容,範例如下:                      /*                        include <stdio.h>                        #define PI 3.14               ...

3/14(二)Little Endian Order

  恩好,拖過一天,到底甚麼是 Little Endian Order 呢?就先來說說電腦儲存的方式,從非常簡單的部分來說,人類使用的語言我們稱作自然語言,基本上是有著眾多分類以及複雜的系統所組成,而以目前的架構所組成的電腦或是我們稱之為計算機的東西,看得懂的只有機器碼,也就是 1 與 0 的訊號,若以進制的說法,就是儲存了二進制(Binary)的機器碼,那怎麼轉換成二進制呢?這裡就來簡單說明一下,一般來說有很基本的兩種方式可以把我們所常用的十進制數字轉換成二進制,我稱為以下: (一)長除法   我們假設要轉換的數字為 13,我們所要做的即是將除數設定為 2,做法如下:     13 / 2 = 6 ... 1     6 / 2 = 3 ... 0     3 / 2 = 1 ... 1     1 / 2 = 0 ... 1    以最下方的 1 為 MSB(最大位元),最上方的 1 為 LSB(最小位元),依照順序列出即為: 1101 b(b 表示二進制),而此串數字即為 13 於二進制系統中的表示方法,若是用八個位元來看,即為 0000 1101 b。 (二)二的乘幕   這種方式比較適合對於二的乘幕較熟悉的人來使用,在此我們也用 13 為所求之十進制數字,如先從 2 的乘幕來看(以八個位元為例):   2^7 = 128| 2^6 = 64| 2^5 = 32| 2^4 = 16| 2^3 = 8 | 2^2 = 4| 2^1 = 2| 2^0 = 1      128 64 32 16 8 4 2 1 若用八個位元的二進制來對照:        0 0 0 0 0 0 0 0    聰明如妳(你)這時候一定看得出來,13 可以被拆解成 8 + 4 + 1,若我們在有的數字部分,改為 1,如果用上表來對照,即可得:        0 ...

3/13(一)組語學習心得

  突然發現這樣紀錄生活有點有趣,所以今天的第二篇就獻給最近突然發現樂趣的組合語言( Assembly Language)吧~   過去接觸組合語言的機會,是在考取單晶片實用級證照的時候,當時我大概已經寫過一些 VB、C 還有 Python 的小程式,所以其實在所謂新手接觸較低階語言的問題上,算是比較沒有問題,不過當時考完後還是沒有繼續用,畢竟後來都用 C 來寫。直到這學期選修了電通系黃世勳老師的組語課,我才算是更深入一層了解了吧(因為本來就廢廢德~)。看過黃老師的簡介,基本上是標準的資工人,從大學到博班都是在臺大,所以應該算超純正的資工人吧,學習上來說,跟朝烈老師比較不同的教法,在於講解的速度吧哈哈,朝烈老師的 Linux 課如果回家沒有看熟的話,上課真的很容易苦手啊(汗),不過各有利弊啦,個人是都能習慣,畢竟是個翻轉時代嘛 XD   回到正題,喔手機開始更新 android 7.1 囉,咳,基本上我對組語沒有深入去了解,但是一些概念還是有,比如說它是個相較於 C、Java、Python 等高階語言來說,較為低階的語言,其中還有一些特性,比如說執行效率高、較貼近機器碼但可攜性較低等,所以對於新手來說,可能需要花一些時間去了解其語法,更重要的是,因為是直接對 CPU 下指令,所以對於非傳統電資領域或是計算機概論相當熟的人,會更需要花時間。   不過我大概也沒辦法發表太過專業的文章,所以主要就是學習的心得紀錄,以及我覺得有助於我學習的重要概念。   喔喔手機更新好了,不知道有甚麼新東西,好,今天就來講講 Little Endian Order 這東西,喔餓,先富堅。