pc解讀2:程式流程式控制制

在我們明白了我們用電腦的唯一目的是資料處理之後,我們開始給資料鋪路。我們設計了匯流排,將將各個裝置串連到匯流排上,再設計類似“紅綠燈”的規則,控制同一時刻,資料流動不產生混亂,同時我們開始對匯流排上的資料存放區空間進行編址,這樣cpu裝置就可以和這些地址空間交換資料。更強大的做法是,我們設計了指令來控制cpu與其他裝置進行資料互動,以及cpu內部的算數運算和邏輯運算。這樣通過電腦指令的組合基本上就能完成所有的功能了。但是,這些電腦指令的集合如何讓cpu自己去順序執行呢?他們巧妙的設計了指令指標寄

pc解讀5:初識裝置控制器

前面我們瞭解到,cpu通過讀寫io地址來讀取磁碟扇區裡的資料,我們又瞭解到cpu與磁碟之間可能隔著前端匯流排,北橋晶片,南北橋之間的pci串連,以及南橋上磁碟控制卡,最後才能到達磁碟機控制磁頭讀寫磁碟資料。現在我們將這幾個情境串連起來,看看更具體一點的互動過程。首先,我們開啟windows系統裡的裝置管理員,找到磁碟控制卡和磁碟機兩個裝置。這兩個裝置的名字容易引起混淆。我們看這兩個裝置的屬性,我們看到磁碟控制卡屬性裡赫然寫著pci地址,如位置:PCI匯流排0,裝置31,功能號2。也就是說我們的磁

pc解讀3:cpu指令如何讀寫硬碟

在《cpu解讀一》中,我們提到cpu的主要作用之一就是控制裝置之間的資料互動。這其中自然也包括了硬碟。系統的所有資料基本都在硬碟中,所以知道怎麼讀寫硬碟,對程式來說非常重要,所以我們先來探索下傳說中的pio模式。cpu要想直接存取裝置裡的資料,必須對裝置儲存空間進行編址。而硬碟資料資料太大,直接編址資料線成本太高,於是設計上在這類裝置和匯流排之間加了一個控制器。這個控制器裡有少量寄存器可以被cpu訪問,而這個控制器又能控制硬碟讀寫資料,所以,cpu通過對硬碟控制器裡的少量io寄存器的讀寫來控制對

pc解讀6:初識體繫結構

通過前面的解讀,我們對電腦的體繫結構有了一定的瞭解,特別是通過對硬碟讀寫的跟蹤,我們知道了電腦裡除了cpu外,還有一些裝置控制器,和一系列裝置,其中cpu指令控制裝置控制器,裝置控制器再控制裝置完成具體的工作。cpu定址原理現在,我們可以再往細裡推進。我們現在更加認識到,cpu的核心功能是控制軟體的自動執行以及完成計算指令,電腦指令中除了計算指令外,最重要的即使定址指令了,也就是控制對儲存空間的讀寫。cpu能夠直接通過指令讀寫的儲存空間是主存空間和控制器裡的寄存器空間,如果在統一記憶體編址模式下

[記憶體泄露]Purify工具介紹

C/C++記憶體問題檢查利器——Purify一、引言我們都知道軟體的測試(在以產品為主的軟體公司中叫做QA—Quality Assessment)佔了整個軟體工程的30%

關於剪下板操作編程

//下面的代碼將"Hello World"字串複製到剪下板中,代碼執行完後可在其它地址進行粘貼操作,看到"Hello World"#include <Windows.h>void CopyStringClipboard(HWND hwnd,char * str) //儲存字串至剪貼簿:{HGLOBAL hClip; //定義一個HGLOBAL控制代碼變數用來指向分配的記憶體塊if (OpenClipboard(hwnd)){EmptyClipboard();            

cpu解讀8:DMA控制器的引入

話說cpu的主要工作是讀取程式指令流來執行,指令主要包括兩部分,一部分是運算,自己搞定,一部分是控制資料在裝置之間的傳輸,這是通過與裝置的裝置管理員或者裝置配接器互動來搞定的。無非也就是讀寫裝置控制器的寄存器。甚至於這種讀寫裝置控制器的寄存器,也沒有親曆親為,只是把地址或者加上資料傳到匯流排上,中間經過了一些列路由才到了裝置控制器那裡。這進一步減輕了cpu的複雜度。這樣看來,cpu的工作並不繁瑣啊,他的負擔看起來已經夠輕的了,還需要進一步減輕嗎,或者還有減輕的可能嗎?答案是肯定的。還是回到我們在

8088 彙編速查手冊(轉集)

參考:http://www2.zzu.edu.cn/qwfw/hbyycai/courses/index.asp參考:http://blog.csdn.net/jiaguoxinzhi/archive/2008/09/13/2924898.aspx參考:http://blog.csdn.net/jiaguoxinzhi/archive/2008/09/13/2924869.aspx一、資料轉送指令───────────────────────────────────────   

控制寄存器和系統地址寄存器

[-]一控制寄存器保護控制位副處理器控制位CR2和CR3二系統地址寄存器通用描述元表寄存器GDTR局部描述符表寄存器LDTR中斷描述符表寄存器IDTR任務狀態段寄存器TR     80386控制寄存器和系統地址寄存器如下表所示。它們用於控制工作方式,控制分段管理機制及 分頁管理機制的實施。控  制寄存器CRxBIT31BIT30—BIT12BIT11—BIT5BIT4BIT3BIT2BIT1BIT0CR0PG0000000000000000ETTSEMMPPECR1保留CR2頁故障線性地址CR3

pc解讀9:中斷機制的引入

在前面的文章中,我們理解到為了讓靈活的軟體來控制電腦,我們有了很多精巧的設計。cpu可以解析執行一些列指令,指令的組合組成程式。程式裝入記憶體中,由cpu

windbg調試命令7(!runaway、~)

windbg調試命令7(!runaway、~)1.!runaway!runaway命令顯示每個線程消費的時間Bit 0 (0x1) 讓調試器顯示每個線程消耗的使用者模式時間(user time),預設不加就是0x1Bit 1 (0x2) 顯示每個線程消耗的核心程式的時間(kernel time)。Bit 2 (0x4) 顯示每個線程從建立開始經曆了多少時間。就是三者的組合:1 2 3 4 5 6 70:002> !runaway User Mode Time  Thread      

windbg調試命令8(bp、bu、bm、bl、bc、ba、be、bd)

windbg調試命令8(bp、bu、bm、bl、bc、ba、be、bd)以下以skinhgy為例,windbg附加運行1.bp 命令是在某個地址下斷點, 可以 bp 0x7783FEB 也可以 bp MyApp!SomeFunction 。對於後者,WinDBG 會自動找到MyApp!SomeFunction 對應的地址並設定斷點。 但是使用bp的問題在於:1)當代碼修改之後,函數地址改變,該斷點仍然保持在相同位置,不一定繼續有效; 2)WinDBG 不會把bp斷點儲存工作空間中bp 

windbg調試命令9(dt、d)

dt命令顯示局部變數、全域變數或資料類型的資訊。它也可以僅顯示資料類型。即結構和聯合(union)的資訊。 0: kd> dt _PEB  nt!_PEB     +0x000 InheritedAddressSpace : UChar     +0x001 ReadImageFileExecOptions : UChar     +0x002 BeingDebugged    : UChar     +0x003 SpareBool        : UChar     +0x004 M

VS對話方塊資源中編輯控制的TAB鍵序

TAB鍵序在使用者輸入多個資料的時候是很方便的功能,但是若是順序不合理反而會成為累贅。       VC中的TAB鍵序很容易設定,我在控制項屬性裡找了半天,只找到了TABSTOP屬性。發現對話方塊編輯器提供了一個功能:按Ctrl+D就會進入TAB鍵序編輯狀態,所有的控制項左上方都有一個藍底白字的數字,只要按順序依次點擊,序號就會在點擊的控制項上依次遞增,也就是說,點擊的順序就是控制項TAB鍵序的順序。     

pc解讀10: 中斷控制器的引入

現在我們已經認識到,在pc的設計中,cpu並不是完全按照程式指令一條一條執行,有時候人為或者隨機的觸發裝置中斷,可以讓cpu去執行相應的中斷處理常式,以打造一個更加智能的軟硬體系統。那麼頂級的電腦設計師們又設計了怎樣的中斷處理系統了來實現這種需求呢,我們試著去解讀這一切。中斷控制器的串連首先我們來看看需求。對於裝置來說,最簡單的設計就是我對外提供一個引腳,如果是高電平就說明我申請中斷,如果低電平就說明沒有插斷要求。關鍵是這個引腳訊號如何主動的傳給cpu呢?因為以前都是有cpu指令集去讀io空間擷

pc解讀4:初識南北橋

前段時間找了一些cpu介面方面的書,以為程式員只要瞭解了cpu的介面,甚至瞭解了cpu的指令集就可以寫好程式甚至成為系統分析員了,後來覺得還是不夠,看了下電腦各組件的串連拓撲圖,才知道南北橋也是相當相當相當重要的啊。電腦技術發展速度驚人,無論是軟體結構還是硬體結構,都一直在變化發展中,使得我們的電腦效能一直在高速增長。同時也產生了一個問題,就是我們去瞭解硬體的時候,因為其處在不斷的變化而不好全面掌握。但是不管怎麼樣,我們先從抽取一個靜態面,再看其衍生出的情況,也許就比較清楚了。上面這個圖畫的是一

pc解讀11: 指令解碼與控制解讀

隨著我們的解讀,電腦的結構已經越來越清晰,我們知道將電腦指令組合在一起成為程式來控制硬體工作,這樣巧妙的通過編寫不同的軟體來控制相同的硬體以完成不同的任務,以增強系統靈活性。我們也知道電腦指令無非也就是傳傳資料,作作運算。但是我們仍不知道對於每一條指令的執行,電腦是如何控制的。cpu內部控制和pc體系機構一樣,cpu內部也是一個有機整體,分成很多組件來一起完成cpu的功能。與外部匯流排相連的有地址緩衝器MAR,資料緩衝器MAR。內部功能組件有運算器ALU,與運算器相關的是累加器

pc解讀7:pc體繫結構的由來

1. 從 IBM PC XT 架構開始…一開始PC的設計中,CPU/RAM/IO都是被一條匯流排(BUS)串連起來,所有的組件都必須在同步的模式下面工作,由CPU來決定的其他裝置工作在什麼頻率(Frequency)上。這樣就帶來一個”互鎖” (locked to each other )效應,即大家都被限定在一個被所有裝置所能承受的通用時鐘頻率(Clock Frequency)上面,系統的整體效能不高。2.

pc解讀12:時序控制與晶振以及指令周期的關係

cpu指令的解析就是按一定的時序發出控制訊號,事實上所有匯流排上的電子裝置都是在設計好的時序下進行工作,這就要求電腦中有穩定的高精度的時鐘訊號源。早在IBM-PC機中,就用晶振來提供穩定的時鐘脈衝,時間脈衝又提供給RTC元件來計算時間,即使在pc機斷電的情況下也可以用紐扣電池來驅動供電,以使得系統時間得以儲存。倍頻技術與主頻後來隨著cpu的速度越來越高,超過了晶振的最高頻率,於是又發明了倍頻技術,將晶振頻率通過一些手段進行放大,將放大之後的頻率提供給cpu,以支援cpu的快速時序要求。系統可以使

Specifying Device Types

Specifying Device TypesEach device object has a device type, which is stored in the DeviceType member of its DEVICE_OBJECT structure. The device type represents the type of underlying hardware for the driver.Every kernel-mode driver that creates a

總頁數: 61357 1 .... 16091 16092 16093 16094 16095 .... 61357 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.