文章出處

 

                工欲善其事, 必先利其器。匯編語言是我們學習, 接口原理, 編譯原理, 微機組成原理, 操作系統等多門有趣課程的基礎。 然而不幸得是剛剛接觸匯編, 就依然有了“拋棄凡塵, 魂歸故里”的想法。     總是感覺, 好難, 好麻煩, 好多, 好虐心, 好虐腦。

 

               于是, 行百里者半九十!!!。 其實匯編沒有想象的那么的難, 并且很有趣。 當然, 也沒有想象的那么簡單。

 

               首先學匯編, 絕不是為了寫匯編。 而是深入的理解計算機的運行機制, 程序的機器級的表示, 計算機微處理器和指令的交互, 逆向工程, 代碼優化(特別是嵌入式)等。

 

                  先推薦課本吧! 王爽的《匯編語言》。 這本書比較適合入門, 因為書中盡量的屏蔽了好多的深奧內容。 (即使是這樣, 也還是不簡單!)。然后是我們老師給我們推薦的書:

 

                  《80x86匯編語言程序設計教程》(楊季文)

                  《IBMPChb匯編語言》

                   天書夜讀:從匯編語言到Windows核心編程

                   其實這幾本書我都沒看過。只讀了課本 ---- 《匯編語言》王       

 

              好吧! 讓我們一起愉快的學匯編吧!(其實是匯編快考試啦, 我把東西試著復習并整理了一下, 不過學匯編的路還有很長哦!)。

PS:     看過《匯編語言》然后看《深入理解計算機系統》中的第三章, 宛如 黃燜雞+白米飯 的酸爽!!!

 

C1:基礎知識(鐘表理解 補碼 各種硬件 )

C2:寄存器(物理地址 段)

C3:寄存器(內存訪問)

C4:第一個程序

C5:【BX】和loop命令

C6:包含多個段的程序

C7:更靈活的定位地址的方法 //沒好好學

AH&AL=AX(accumulator):累加寄存器

BH&BL=BX(base):基址寄存器

CH&CL=CX(count):計數寄存器

DH&DL=DX(data):數據寄存器

SP(Stack Pointer):堆棧指針寄存器

BP(Base Pointer):基址指針寄存器

SI(Source Index):源變址寄存器

DI(Destination Index):目的變址寄存器

IP(Instruction Pointer):指令指針寄存器

CS(Code Segment)代碼段寄存器

DS(Data Segment):數據段寄存器

SS(Stack Segment):堆棧段寄存器

ES(Extra Segment):附加段寄存器 

FLAG  寄存器中存儲的信息通常又被稱作程序狀態字(PSW) 
OF overflow flag 溢出標志 操作數超出機器能表示的范圍表示溢出,溢出時為1. 
SF sign Flag 符號標志 記錄運算結果的符號,結果負時為1. 
ZF zero flag 零標志 運算結果等于0時為1,否則為0. 
CF carry flag 進位標志 最高有效位產生進位時為1,否則為0. 
AF auxiliary carry flag 輔助進位標志 運算時,第3位向第4位產生進位時為1,否則為0. 
PF parity flag 奇偶標志 運算結果操作數位為1的個數為偶數個時為1,否則為0. 
DF direcion flag 方向標志 用于串處理.DF=1時,每次操作后使SI和DI減小.DF=0時則增大. 
IF interrupt flag 中斷標志 IF=1時,允許CPU響應可屏蔽中斷,否則關閉中斷. 
TF trap flag 陷阱標志 用于調試單步操作.



其他

psw: program status word  
tcon: timer control
ie: interrupt enable
scon: serial control

EA  --Effective Address:有效地址 ,即偏移地址。

SA--segment address
                            

                                8086寄存器用途匯總

寄存器

名稱

用途

AX

主累加器

輸入、輸出操作;大多數算術操作。

BX

基址寄存器

擴展尋址的變址;與DI、SI組合作為專用尋址的基址寄存器;一般計算。

CX

計數寄存器

存儲控制循環的重復次數、左右移位的次數;一般計算。

DX

數據寄存器

輸入、輸出操作;大值乘除法中與AX配對使用。

CS

代碼段寄存器

程序代碼段的起始地址,CS:IP指明當前指令地址。

SS

堆棧段寄存器

程序堆棧段的起始地址,SS:SP指明棧頂地址。

DS

數據段寄存器

程序數據段的起始地址。

ES

附加段寄存器

用于串操作中的存儲器尋址。

IP

指令指針寄存器

程序當前指令的偏移地址,與CS配合使用。

SP

堆棧指針寄存器

程序堆棧棧頂的偏移值,與SS配合使用。

BP

基址指針寄存器

用于簡化對參數的訪問,可以和SS及DI、SI等配合使用。

SI

源變址寄存器

用于串處理操作,一般與DS聯合使用。

DI

目的變址寄存器

用于串處理操作,一般與ES聯合使用。

FP

標志寄存器

按位表示計算機的不同當前狀態。


 

文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()