原创 Bochs內存中的Guest和Host

  Bochs是通過配置文件(.bxrc文件)的方式來設置模擬計算機的硬件參數,其中MEMORY部分,分別需要設置Guest和Host的大小來決定虛擬計算機的內存大小,有什麼區別呢?通過下面的Bochs構架圖可以弄清楚:      要點說明

原创 MASM中子程序(Procedures)的寫法

  在MASM 5(Microsoft Micro Assembler)的彙編體系中,子程序(Procedures)的定義和調用是非常重要的,就像C、pascal等的函數和方法一樣;且對深入理解高級語言裏函數的底層原理極其重要,如函數的參數

原创 Photoshop混合模式的底層原理

        Photoshop雖然不是什麼高手,但平時工作中難免會用到,處理部分需求還是可以勝任的。接觸PS這麼多年,對PS中圖層的混合模式(Blend Mode)一直就處於懵懂狀態,即使是看了教材及視頻後,有了一點感性認識,但在實際操

原创 8086彙編指令編碼規範

  學習MASM彙編時有時會被各種語法弄混,其實很多指令的規則是很簡單的,但編譯器爲了方便添加了僞指令來幫助編譯器更準確的生成機器代碼。爲了深入理解僞指令背後的邏輯,特將8086的編碼規則記錄如下,以便隨時參閱。   一、編碼規範:   

原创 MASM中JMP跳轉到絕對地址

  MASM中如果將程序直接跳轉到指定地址執行,如1234:5678,如果直接這樣jmp 1234:5678或jmp [1234]:[5678]都無法通過編譯,在debug中jmp 1234:5678倒是可以。那麼如何能到達這個目的呢?  

原创 8086完整指令集

  8086的完整指令集,參考《Microsoft Macro Assembler Reference Manual》                            

原创 MASM中的Label僞指令

  在學習16位MASM彙編中,label並不陌生,在代碼中通過名稱+冒號(:)的形式定義label非常常見。但label僞指令卻不常見,但有時確實很重要。他相當於把所在位置後的代碼或數據看成label定義的新的數據類型或新的label(冒

原创 MASM中ORG僞指令的作用

  在學習16位MASM彙編時,生成一個com格式的可執行文件,需要在代碼的第一行寫上org 0100h,各處的資料解釋不盡相同,如:   1、程序從0100h處開始執行;   2、告訴編譯器講程序加載到0100h;   3、代碼的偏移地址

原创 MASM彙編中僞指令ASSUME的作用

  在學習16位MASM宏彙編時,開始犯的一個錯誤就是認爲assume就是給CS、SS、DS等段寄存器進行初始化賦值的。但又需要在源碼的開始階段,通過mov ax,datasg和mov ds,ax對DS進行手動賦值,assume ds:da

原创 彙編調試命令debug的基本用法

  在學習16位彙編時,debug是常用的調試工具,但很多基本用法命令幫助中並未提及,經查驗和實驗,特記錄如下:   一、基本概念:   debug可加載exe或com文件,並顯示內存中內容或變量值,還可以顯示cpu的寄存器值。可以顯示可執

原创 VMware 17下DOS 6.22的網絡配置

  爲了學習16位彙編,DOS6.22下的MASM5編譯環境卻沒有特別好的編寫工具。Vim for dos雖然已經很不錯了,但習慣了圖形界面的編程環境,只能顯示25行文字的文本模式,實在是效率太低了(博主的水平也有很大原因)。因此,想通過映

原创 Makefile核心思想

  在編譯源碼的時候,總會遇到這樣的情況:   1、需要運行一串命令,把一個或多個源文件轉換成一個目標文件,但這些源文件也可能是通過其他源文件生成的。   2、當部分文件發生改變時,只需要運行必要(最少)的命令,生成最新的目標文件。   例

原创 華爲AAA認證用戶的實際權限

華爲網絡設備在配置AAA認證時,有2個地方可以配置用戶登錄到系統後的權限等級: 1、local-user admin privilege level 15(AAA視圖) 2、user privilege level 15(user-inte

原创 Windows Server自動化部署Sysprep

  在WMWare上用Windows Server 20003和Windows Xp做各種測試的時候,可能需要部署很多臺相同的系統。如果一臺一臺安裝系統(GUI模式安裝),肯定太麻煩了。直接通過克隆的方式(相當於實體機的Ghost方式),大

原创 段寄存器的兩種初始化方式

  實模式(real mode)下采用段地址:偏移地址的方式進行定位。在Masm中,有2種方式對段地址進行初始化,一就是編譯階段,再就是程序執行階段。   一、彙編階段(Masm編譯階段):   彙編階段通過Assume僞指令對段段寄存器的