原创 C語言函數庫查詢系統(ACCESS)

這個主要使用ACCESS來進行製作,可以將C語言的函數、全局變量、宏、聯合、結構、枚舉等類型的字符串分類儲存起來,能使用窗體查詢這裏裏面的函數或者宏,也可以用來查看某個函數屬於哪個頭文件,比如printf()函數: 當然,要是人工一個一

原创 把RNN封裝成一個函數

2017-11-26 20:31          RNN(反饋式神經網絡),即前面構建的那幾個網絡。由於它們都是反覆使用相同的方法構建的神經網絡,既費力又費時,鑑於每次構建的基本步驟都一樣,於是我把構建的操作函數化,只要提供相應的參數,

原创 利用sobel算子進行邊緣檢測

2017-11-18 00:31 前言:本文章中的一部分代碼寫得比較倉促,雖然比原來寫的結構性更強,但仍有缺陷,下一篇中的代碼經過了稍微修改。Sobel算子是整像素圖像邊緣檢測中最重要的算子之一,該算子包含兩組3x3的矩陣,分別爲橫向及縱

原创 使用OpenGL的簡單語句來製作一個簡單的計算器-加減乘除

OpenGL採用glut,雖然版本太老了,但是容易入門。計算器很粗糙,但已經可以實現比較小的數字加減乘除。 IDE使用VS2019. 效果如下:   只需要在調用main()中調用calculator()就可以了,頭文件和源文件在下面

原创 GDT表

gdt表在x86架構中用來存儲內存的分段信息,通過段選擇子進行訪問,表的大小=0x10000=65536字節,每個表項佔8字節,第一個表項爲空,不使用,因此一共有8191個可用表項。表項結構如下   (圖片來自https://blog.

原创 對於C語言重複包含/重複定義的解決(gcc)

使用條件編譯指令 例如: a.h: int fun(); b.h: #include "a.h" c.h: #include "a.h" main.c: #include "b.h" #include "c.h" ......

原创 編譯軟件的一些參數(不定時更新)

gcc:(編譯器) -v 顯示gcc版本。 --h 顯示幫助。 -o 重命名文件。例:gcc test.c -o main.out -E 將源文件預處理但不編譯。例:gcc test.c -E -o test.i -c 將源文件編譯爲工程

原创 實模式下字符的顯示及中斷

參考書籍《0x86從實模式到保護模式》 1.實模式顯示字符 首先,電腦開機進入系統,加載bios,然後bios完成一些硬件的初始化,從磁盤讀取mbr到絕對地址0x7c00處,然後跳轉至0x7c00,此時屏幕的顯示模式默認爲80*25(一行

原创 對於KolibriOS系統引導部分的詳細解讀

1.首先大概說一下KolibriOS這個系統引導的過程,然後是對其bootloder.asm文件的註釋分析 引導程序被加載到0x7c00後,首先向屏幕輸出“Starting system”字樣,然後從fat12結構中獲取需要的信息,將位於

原创 從軟盤複製數據到內存

本文闡述在計算機引導程序中可以用來複制內核代碼的程序,平臺:centos,語言:AT&T格式的x86彙編,虛擬機:bochs,編譯器:gcc。 設定內核代碼緊跟在512字節的boot程序後面 利用bios複製程序: movw $0x90

原创 AT&T 彙編基礎

AT&T 彙編是一種和intel彙編在語法上完全不同的彙編語言,爲避免混淆intel語法,本文只介紹AT&T彙編,以下是所有的寄存器,AT&T的第一個特點就是每個寄存器名前必須加‘%’,立即數前必須加‘$’:(下面省略了%)8個32位寄存

原创 MIT 6.828課程引導部分的解讀

引導代碼位於boot文件夾下,由一個16位與32位彙編混合的彙編文件(boot.S)和一個C語言文件(main.c)組成。程序的入口在boot.S中,採用的是AT&T語法,下面先對這個文件進行分析:#include <inc/mmu.h>

原创 c++學習筆記(部分適用於c語言)

前言: 首先,糾正一個可能的認知錯誤。編程語言並非專指以某種名稱命名的語言,而是一類編程規範,或者說語法規則。 拿BASIC(初學者通用指令代碼)舉例, 基於BASIC衍生出了VB、QB等語言,它們統稱爲BASIC語言,完全適用於BASI

原创 linux彙編文件操作(ATT)

首先介紹一下linux的shell腳本寫法,其實與windows下.bat文件的寫法差不多,一行一行的寫命令就行了,例如,當我們要用vim打開某個目錄(/user/include/printf.h)下的文件,可以這樣寫:cd /usr/i

原创 mciSendCommand函數使用

函數原型: MCIERROR mciSendCommand( MCIDEVICEID wIDDevice, UINT uMsg, DWORD fdwCommand, DWORD dwParam ); //若成功則返回0