iT邦幫忙

組合語言相關文章
共有 16 則文章

技術 C 語言,關於 GCC, GDB, x86 組語和呼叫慣例 (1)

Outline Source Code to Executable File What is ELF X86 Assembly and Calling Con...

鐵人賽 自我挑戰組 DAY 20
C 語言筆記 系列 第 20

技術 [C 語言筆記--Day20] Condition Code 幫忙做出 C 語言的 if 語法 II

接續昨天的話題,繼續來探討 condition code 昨天說到了指令的運算結果會有改變 condition code 而今天就來說其中兩個會影響 condi...

技術 來嘗試打破x86的習俗

先看一下以下的程式碼,以及用他來編譯出來的組合語言 // add.c #include <stdio.h> long add(long a, lo...

技術 在linux中看gcc產生出來的組合語言

環境:linux使用者直接用終端機即可,windows使用者可用WSL或是建一個linux的虛擬機 先開啟一個c語言檔 $ vim test.c 在檔案內輸入...

技術 [Day12] 使用 AND、OR 進行字母大小寫轉換

AND 指令 進行 AND 運算會有下列四種結果,只有當兩數都為真時,結果才為真。 運算式 結果 ---------|-------- 1 AND...

鐵人賽 Software Development DAY 10

技術 [Day11] 程式分段和字母反轉 + 斷賽感言

斷賽感言 第 11 篇的時候斷賽了,我自己寫文章的速度比較慢,一定要提前準備夠多的篇數,一天一篇對小弟來說很困難,這次準備不足所以決定斷賽,有想過是不是不要按照...

鐵人賽 Software Development DAY 10

技術 [Day10] 循環指令 - loop

loop 今天要介紹組合語言的循環指令 loop,結構如下: p: ;循環內容 loop p loop 會搭配 cx 暫存器 一起使用,執行到 loo...

鐵人賽 Software Development DAY 9

技術 [Day09] 回頭再看 Hello World

今天要回頭看第一篇的 Hello World 程式,經過這麼多篇不知道大家有沒有覺得 Hello World 親切許多,回去看 Hello World 絕對不是...

鐵人賽 Software Development DAY 8

技術 [Day08] 棧段暫存器

棧 學過資料結構的朋友應該都知道 棧 stack 的概念,棧就像一個開口向上的容器,可以將數據放入和取出,由於開口只有一邊,所以有 後進先出 LIFO 的特性,...

鐵人賽 Software Development DAY 7

技術 [Day07] 字型數據的儲存和數據段暫存器

字在記憶體中的儲存 接下來開始進入記憶體的部分,一個記憶體單元可以儲存一個 字節 (byte) 的資訊。 0 | 01H 1 | 02H 2 | 03H 4 |...

鐵人賽 Software Development DAY 6

技術 [Day06] Debug 工具的使用

今天要介紹 Debug 工具,在第一篇的時候已經有將環境安裝好,所以就直接開始吧,Debug 可以用來單步執行程式、查看暫存器和記憶體內容,除了基本的偵錯功能外...

鐵人賽 Software Development DAY 5

技術 [Day05] 物理地址和段暫存器

物理地址 前面提到可以將所有存儲器看成一個單一的邏輯空間,物理地址就是這邏輯空間上的真實地址,CPU 透過物理地址才能定位其上的單元空間。 如何計算物理地址 8...

鐵人賽 Software Development DAY 4

技術 [Day04] 通用暫存器

暫存器 接下來要介紹最令我頭痛的暫存器,8086 的 CPU 有 14 個暫存器,分別是: AX、BX、CX、DX、SI、DI、SP、BP、IP、CS、SS、D...

鐵人賽 Software Development DAY 3

技術 [Day03] 記憶體地址空間和第一次反組譯

上一篇結尾講到尋址能力,尋址就是定位記憶體的地址空間,相信很多人知道 XP 作業系統有記憶體 4G 的限制,因為 XP 是 32 位元的作業系統,所以最多只能尋...

鐵人賽 Software Development DAY 2

技術 [Day02] CPU 如何和外部溝通 - 存儲器和總線

機器語言 電腦只看得懂 0 和 1,現在所有的程式語言 ASM、C++、C#、Python,等等...最終都會經過編譯或直譯轉換成機器碼 CPU 才能執行,現在...

鐵人賽 Software Development DAY 1

達標好文 技術 [Day01] 第一個 Hello World 程式

組合語言是最接近底層的語言,雖然現在用到的地方越來越少,連韌體都可以用 C 語言來寫,但我認為學習底層語言對寫程式還是有幫助的,可以藉由學習組合語言更了解電腦核...