匯編
匯編 |
匯編是指匯編語言,匯編程序。把匯編語言翻譯成機器語言的過程稱為匯編。在匯編語言中,用助記符(Memoni)代替操作碼,用地址符號(Symbol)或標號(Label)代替地址碼。這樣用符號代替機器語言的二進制碼,就把機器語言變成了匯編語言。於是匯編語言亦稱為符號語言。用匯編語言編寫的程序,機器不能直接識別,要由一種程序將匯編語言翻譯成機器語言,這種起翻譯作用的程序叫匯編程序,匯編程序是系統軟件中語言處理的系統軟件。
隨着現代軟件系統越來越龐大複雜,大量經過了封裝的高級語言如C/C++,Pascal/Object Pascal也應運而生。這些新的語言使得程序員在開發過程中能夠更簡單,更有效率,使軟件開發人員得以應付快速的軟件開發的要求。而匯編語言由於其複雜性使得其適用領域逐步減小。但這並不意味着匯編已無用武之地。由於匯編更接近機器語言,能夠直接對硬件進行操作,生成的程序與其他的語言相比具有更高的運行速度,占用更小的內存,因此在一些對於時效性要求很高的程序、許多大型程序的核心模塊以及工業控制方面大量應用。
此外,雖然有眾多編程語言可供選擇,但匯編依然是各大學計算機科學類專業學生的必修課,以讓學生深入了解計算機的運行原理。
目錄
基本信息
編譯環境
匯編的調試環境總的來說比較少,也很少有非常好的編譯器。reallychenchi設計的輕鬆匯編是一款非常適合初學者的匯編編譯器。輕鬆匯編是一個匯編語言集成開發環境,主要面向匯編語言初學者,也可以用它進行開發。除了普通的編輯功能以外,它還可以自動整理格式、高亮顯示和編譯、鏈接、調試匯編程序,非常方便實用。
輕鬆匯編的最大特點是可以格式整理,就像VC6.0一樣,可以設置斷點調試,省卻了使用者的不少工作。它可以在Win98/2k/XP下運行,是一款很優秀的軟件。
常用命令
數據傳送指令
一 通用數據傳送指令
指令
英文全拼
翻譯
MOV
Move
傳送
PUSH
Push onto the stack
進棧
POP
Pop from the stack
出棧
XCHG
Exchange
交換
MOV指令為雙操作數指令,兩個操作數中不能全為內存操作數
格式:MOV DST,SRC
執行操作:dst = src
注:1.目的數可以是通用寄存器,存儲單元和段寄存器(但不允許用CS段寄存器).
2.立即數不能直接送段寄存器
3.不允許在兩個存儲單元直接傳送數據
4.不允許在兩個段寄存器間直接傳送信息
PUSH入棧指令及POP出棧指令:
堆棧操作是以"後進先出"的方式進行數據操作。
格式:PUSH SRC //Word
執行操作:(SP)<-(SP-2)
((SP+1),(SP))<-(SRC)
注:1.入棧的操作數除不允許用立即數外,可以為通用寄存器,段寄存器(全部)和存儲器。
2.入棧時高位字節先入棧,低位字節後入棧。
格式:POP DST //Word
執行操作:(DST)<-((SP+1),(SP))
(SP)<-(SP+2)
注:1.出棧操作數除不允許用立即數和CS段寄存器外,可以為通用寄存器,段寄存器和存儲器。
2.執行POP SS指令後,堆棧區在存儲區的位置要改變。
3.執行POP SP 指令後,棧頂的位置要改變。
XCHG(eXCHanG)交換指令:
將兩操作數值交換。
格式:XCHG OPR1,OPR2 //Byte/Word
執行的操作:(OPR1)<-->(OPR2)
注:1.必須有一個操作數是在寄存器中
2.不能與段寄存器交換數據
存儲器與存儲器之間不能交換數據。
二 累加器專用傳送指令