原创 中國程序員的悲哀

中國程序員有個很悲哀的地方,大多數程序都對微軟崇拜有加,奉若神明;然而大多數人都用着盜版的微軟操作系統,盜版的visual studio,然後還牛逼哄哄的出個什麼微軟vs使用心得。在他們眼裏軟件本身並不是商品,軟件衍生出來的服務才能賺錢。

原创 從實模式跳轉到保護模式再跳回實模式的程序

  這是一段用nasm編寫的程序,有2個文件組成,第一個頭文件爲pm.inc,第2個文件爲pmtest.asm,編譯成.com文件在DOS下運行。程序在保護模式打印一串字符串,然後返回實模式退回dos  文件pm.inc:; usa

原创 各領域入門書籍推薦

摘自:網上讀書園地 http://www.readfree.net/viewarticle.php?id=5030530 這些書來自科學松鼠會的一個活動——“先寫下你的專業領域,再回答這個問題‘如果一個受過高中教育、但完全不瞭解你這

原创 GDT詳細介紹

  這是一個國外的站點對GDT的描述,比國人描述的更清楚些。 轉載地址:http://wiki.osdev.org/Global_Descriptor_Table 更詳細的GDT參考教材:http://wiki.osdev.org/G

原创 在Vim中使用ctags

本文轉載於: http://www.vimer.cn如何在Vim中使用ctags?之前在《把Vim打造成真正的IDE》系列裏已經講過大致的ctags在vim中的使用,這篇文章我們就詳細的講一下。 首先要明白,ctags是什麼

原创 GDT詳解

這篇文章在理論上解釋了GDT,看了以後加深了印象.轉載於:http://blog.csdn.net/zdwzzu2006/archive/2009/03/27/4030882.aspx在Protected Mode下,一個重要的必不可少的

原创 nasm下定義GDT結構

預備知識:NASM中的位移運算符:"<<"表示左移和">>"表示右移。注意這裏的位移總是無符號數(非負數)。並且位置時,左側總是用0填充,不會出現符號擴展。可以理解成彙編語言中的邏輯左移和邏輯右移。 定義如下:   ; usage

原创 用Gvim建立IDE編程環境 (Windows篇)

  這是轉載的,原作者地址:http://www.cppblog.com/tx7do/archive/2010/07/18/120743.html 轉載自:LeeMonCC 說明:本文是作者在完全按照著名的《手把手教你把Vim

原创 windows下vim和Doxygen自動生成代碼文檔

1.  下載DoxygenToolkit 下載地址:http://www.vim.org/scripts/script.php?script_id=987   2.  把DoxygenToolkit.vim放入../Vim/vim72/

原创 爲什麼要寫技術blog?

個人認爲做技術的有兩種人:有天賦的和沒天賦的。 沒天賦的人比如像我這種,老是記不住,所以得寫個blog記錄記錄,否則過不久就忘記了。 有天賦的人天天都在忙於搗鼓技術,根本不需要記錄什麼blog,因爲有各種技術讓他們忙得搗鼓。   其實寫b

原创 關於gcc on windows的“拒絕訪問”問題的解決方法

今天把cygwin下的bin目錄添加到PATH後,直接運行g++, gcc, 顯示“訪問被拒絕” (access denied). 竟然那麼詭異,上網查資料,網上的解決方案說:   檢查g++.exe, gcc.exe是否只有1k大小,如

原创 一段彙編代碼翻譯成c語言的練習

題目是這樣的:有一個函數原型爲 void decode1(int *xp,int *yp,int * zp); 函數的編譯成彙編代碼後如下:1    movl 8(%ebp),%edi 2    movl 12(%ebp),%ebx 3

原创 一次堆破壞的調試經歷

過程是這樣的,在vc debug的過程中,突然彈出了一個assert窗口:   Windows has triggered a breakpoint in cs.exe. This may be due to a corruption

原创 操作系統的特權級(1)----CPL、DPL和RPL

  IA32的分段機制中,特權級總共有4個特權級別,分別是0,1,2,3。數字越小表示特權級越大。DPL和RPL都是用來表示特權級別的。       見上圖 ,較爲核心的代碼和數據,被放在特權級較高的層級中。處理器將這樣的機制來避免低特

原创 代碼實現LDT的使用

  什麼是LDT?簡單來說就是一種描述符號表,它的選擇子T1位必須爲1。使用時,必須先lldt指令加載ldtr,lldt的操作數是GDT中用來描述LDT的描述符。   我在原來的代碼基礎上做了修改:原來代碼的地址http://blog.