初識匯編語言
這是我第一次接觸匯編語言這一門課程。第一堂課我了解到它是一門非常古董級別的語言。雖然可能在當代java、python等語言盛行的年代它顯得有些笨拙和不實用(win10已經完全摒棄了匯編),但是通過第一章課程的學習,我還是感受到了它獨有的語言魅力。
匯編語言是一門面向機器的程序設計語言。相比現在的語言而言,匯編更易於讀寫、調試和修改。它能夠直接訪問與硬件相關的存儲器或I/O端口,能夠不受編譯器的限制,對生成的二進制代碼進行完全的控制。它的執行速度相當快,但是在一些復雜程序的編寫上,匯編就會有一些局限性,很容易產生一些BUG,也不容易維護。不能夠像現在的語言一樣輕松的解決問題。
回首第一章的內容,我大致了解了以下三個知識點。
(一) 指令和數據
指令和數據在內存或磁盤上是沒有任何區別的,都是二進制信息。Cpu在工作的時候把有的信息看做指令,有的信息看做數據,為同樣的信息賦予了不同的意義。
(二) cpu通過總線對存儲器的讀寫過程
cpu要從內存中讀取數據,首先要指定存儲單元的地址。也就是說他要先確定它要讀取哪一個存儲單元中的數據。然後它還要指明,他要對哪一個器件進行操作,進行哪一種操作。可見,cpu想要進行數據的讀寫,就必須要與外部器件進行三類信息的交互。分別為存儲單元的地址(地址信息)、器件的選擇,讀或寫的命令(控制信息)和讀或寫的數據(數據信息)。同時通過地址總線、控制總線、數據總線來將地址、數據、控制信息傳送到存儲器芯片中
(三) 內存地址空間
內存地址空間是一個相對較新、較難理解的內容。首先它需要我們了解兩個基本內容——主板和接口卡。主板則是承載一些核心器件和主要器件的東西,例如cpu、存儲器、外圍芯片組等。接口卡則是直接控制顯示器、音箱等等外部設部的設備。但這些存儲器都是與cpu的總線相連的,都要接收cpu對他們進行讀或寫的時候所發出的內存讀寫命令。也就是說,cpu在對他們進行操控時,都是當做內存來對待的,把它們總的看做一個由若幹存儲單元組成的邏輯存儲器。而這個邏輯存儲器就是我們所說的內存地址空間。
第一節課的內容可能還比較淺層,但同時也讓我了解到了一門語言它在其內部cpu、存儲器等部分是怎麽進行控制運行的。希望能夠通過接下來的學習更為透徹的了解這門語言,有一些自己更為深刻更為獨到的見解。
初識匯編語言