原创 MIPS單週期CPU的設計——I型指令的設計

一、一些概念 1.單週期CPU        指令週期:CPU從內存取出一條指令並執行這條指令的時間總和。        CPU週期:又稱機器週期,CPU訪問一次內存所花的時間較長,因此用從內存讀取一條指令字的最短時間來定義。  

原创 Win32彙編筆記——窗口創建API函數

1.模塊的概念 一個模塊代表的是一個運行中的exe文件或dll文件,用來代表這個文件中所有的代碼和資源,用來代表這個文件中所有的代碼和資源,磁盤上的文件不是模塊,裝入內存後運行時就叫做模塊。一個應用程序調用其他DLL中的API時

原创 KMP模式匹配算法筆記

       一直打算寫KMP算法的筆記,但是對這個算法的推導過程着實有點恐懼,但是又不能停到這裏不往下去學,我也不想跳過,所以決定硬着頭皮認真寫下去,總有一天會寫完的。        KMP算法的作用用是儘可能簡單的方法比較兩個

原创 STM32學習筆記——GPIO基本結構和工作方式介紹

  STM32F103RCT6一共有4組IO口,一共有16*3+3=51個IO口    GPIOA0~A15   GPIOB0~B15   GPIOC0~C15   GPIOD0~D2 一、GPIO 功能描述   每個GPI/O端

原创 C++筆記——基本數據類型的表現形式

此筆記參考《C++反彙編與逆向技術揭祕》 1.1 整數 C++提供的整數數據類型有三種:int、long、short。在Microsoft Visual C++6.0中,int和long佔4字節,short佔2字節。由於二進制數不

原创 步進電機基本概念

一、步進電機相關概念        步進電機是將電脈衝信號轉變爲角位移或線位移的開環控制元件。在非超載的情況下,電機的轉速、停止的位置只取決於脈衝信號的頻率和脈衝數。        角位移:角位移就是步進電機的轉軸轉動行駛的位移

原创 MIPS單週期CPU設計——lw和sw指令的設計

1.lw,sw指令格式及功能 指令 [31:26] [25:21] [20:16] [15:0] 意義 lw 100011 rs rt offset 從數存(數據存儲器)中取數據寫進寄存器 sw 101011 r

原创 計算機組成原理筆記——運算方法和運算器(1)

1.純小數和純整數數軸        純小數的原碼反碼補碼數軸:        純整數的原碼反碼補碼數軸: 2.機器浮點數的表示        一個機器浮點數由階碼和位數及其符號位組成(尾數:用定點小數表示,給出有效數字的位數

原创 使用函數求餘弦函數的近似值

本題要求實現一個函數,用下列公式求cos(x)的近似值,精確到最後一項的絕對值小於e:cos(x) = x^0 / 0! - x^2 / 2! + x^4 / 4! - x^6 / 6! + … double funcos( do

原创 串口通信(USART)

一、串口通信協議簡介        物理層:規定通訊系統中具有機械、電子功能部分的特性,確保原始數據在物理媒體的傳輸。其實就是硬件部分。        協議層:協議層主要規定通訊邏輯,統一收發雙方的數據打包、解包標準。其實就是軟件

原创 分頁機制小記

       其實分頁機制不難,但是不做記錄的話又感覺會忘,所以還是做點記錄。        分頁的主要目的在於實現虛擬存儲器。線性地址中任意一個頁都能映射到物理地址中的任何一個頁,這使得內存管理變得相當靈活。 看圖:      

原创 一個操作系統的實現筆記:加載Loader進入內存

       一個操作系統從開機到開始運行,大致經歷“引導→加載內核入內存→跳入保護模式→開始執行內核”這樣一個過程。也就是說,在內核開始執行之前不但要加載內核,而且還有準備保護模式等一系列工作,如果全都交給引導扇區來做,512字

原创 一個操作系統的實現筆記:利用內存的大小計算頁表的個數

      這篇文章不長,主要是末尾的代碼長,代碼有興趣可以看,沒興趣的看看文章內容便可。       利用內存的大小設置頁表的個數的公式是:頁表個數=內存大小÷4MB。       爲什麼是這樣呢?首先,80386一個頁的大小是

原创 C語言單鏈表的逆轉

       單鏈表的逆轉是一個基礎的數據結構題,做起來不難。和解決這個問題一起寫的還有做題的規矩,不能因一個問題簡單就直接開始寫代碼,對於初學者來說,寫代碼前先寫一個程序的大致框架是很有用的。 解題思路:        創建一個

原创 STM32系統定時器(SysTick)筆記

一、簡介        SysTick:系統定時器,由四個寄存器控制,存在於內核,嵌套在NVIC中,所有的Cortex-M3內核的單片機都具有這個定時器。 二、相應寄存器(這裏介紹常用的幾個寄存器)        ①SysTick