看板 Programming 關於我們 聯絡資訊
※ 引述《brianhsu (墳墓)》之銘言: : 有的嘛,遵照古老的傳統,一開始就寫一個 Hello World 給你,然後再告訴 : 你不要管那些 include 的黑魔法,反正程式可以跑就好--等一下,我學組 : 語就是為了要了解最底層的運作,結果你叫我不要管他? : ====================================================================== : .section .data : .section .text : .global _start : _start: : movl $1, %eax # This is the linux kernel system call for exit : movl $0, %ebx # This is the status number return to OS : int $0x80 # This wake up the kernel to run exit system call : ====================================================================== 顯然, 這組語是在 linux 的 user mode 下跑的, 拿 system call 當 I/O 裝置來用. 但如果是 I/O device interface 的 I/O port 與 interrupt 處理 能在組語程式裡直接控制嗎? 譬如最常舉的例: 蜂鳴器小喇巴 與 Timer. : ====================================================================== : 同樣的,這隻程式也是利用離開狀態做輸出--所以你用到的,都是你學過的 : 東西,沒有黑魔法,每一行每一行都可以解釋到底是在做什麼,讓你驗證你是 : 不是真的了解他。 : 另外,他用的是 GNU as 的語法,這對我而言有以下幾個好處: : - 這是 Linux Kernel 裡面用的東西,我不用再去熟悉其他語法 : - 我只要有一台 Linux Box 就可以試著跑書裡的程式 : - 這意謂著你可以用 GCC 把 C 語言編譯到組合語言,然後和這本書裡面 : 的範例做比對,例如講到 Function 的時候,你就可以寫幾個 C 語言 : 的函數來驗證書裡講的東西。 : 所以我一定要大推這一本書的啊~~這本書真的是自學組語的必備良方,只要 : 會一點程式設計,一定可以看得懂的好東西! 這個書的範例, 若在Linux user mode 下的實例 能調用 BIOS call 嗎? 希望大大們能釋疑. 謝謝 ! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.115.4.12
twotwoone:您老人家就已經是大大中的大大了 124.8.132.104 02/08 01:41
brianhsu:這本書只專注在 User Mode 而已。 114.32.42.74 02/08 07:41
final01:學組語一開始就學IO控制有意義嗎?140.118.122.154 02/08 10:05
yoco315:他老人家不扯東扯西就不是他老人家了.....203.160.254.105 02/08 18:30