最近在學習協程方面的知識,在協程的一種實現方式中有一種是用彙編實現的,所以這裡再把彙編知識複習一下。
暫存器按照其用途可分為以下4類:
資料暫存器包括4個16位的暫存器(ax,bx,cx,dx)或者8個8位的暫存器(ah,al,bh,bl,ch,cl,dh,dl),這些暫存器都是用來暫時存放運算元,運算結果或者其他資訊,但同時又具有某些專門的用途。
這些暫存器都是16位的暫存器,用來存放16為的運算元或者中間結果,但是更常見的是存放偏移量或者位移量
注意:上述為16位處理其器中的暫存器的名字,在32和64位系統中,暫存器中名字有相應的變化,具體看下面(32位在前面加e,64在前面加r,64位系統的中含有16個64位的通用暫存器):
彙編指令的格式如下:
[標號:] 指令助記符[[目的運算元][,源運算元]][;注釋]
彙編指令中常見的符號:
彙編指令可以分成六類:
資料傳送指令
push src(壓棧指令): 將乙個字資料壓入當前棧頂, 位移量disp=-2的位址單元. 資料進棧時, 棧指標sp首先向低位址方向移動兩個位元組位置, 接著資料進棧, 形成新的棧頂
pop dst(出棧指令):彈出棧頂元素, 後將棧頂指標向棧底方向移動乙個字
xchg opr1, opr2(交換指令):交換指令: 將這兩個運算元交換
位址傳送指令
標誌傳送指令
累加器專用傳送指令加法指令
減法指令
乘法指令
除法指令邏輯運算指令
移位指令:
迴圈移位指令轉移指令:
迴圈指令
條件迴圈指令
子程式呼叫指令
中斷指令標誌處理指令:
其他處理器控制指令:
彙編暫存器,mov指令 2021 3 13
即 ax,bx,cx,dx,sp,bp,si,di,ip,flag,cs,ds,ss,es 共 14 個。而這 14 個暫存器按照一定方式又分為了通用暫存器,控制暫存器和段暫存器。通用暫存器 ax,bx,cx,dx 稱作為資料暫存器 ax accumulator 累加暫存器,也稱之為累加器 cx c...
彙編暫存器知識
一 32位cpu所含有的暫存器有 1 資料暫存器。4個 eax ebx ecx edx。2 變址暫存器 index register 2個 esi edi。3 指標暫存器 pointer register 2個 esp extended stack pointer ebp extended base...
彙編暫存器 8086
一 組合語言中,為什麼si和di不能同時使用彙編 其實你可以想一下,這兩個暫存器的意思,si源變址暫存器,di目地變址暫存器,既然是變址暫存器,那麼他們肯定是在某個位址的基礎上進行偏移變化,由此我們就得出了需要基址暫存器。你要是把這兩個暫存器同時使用,那你位址變化的基址都沒有,你該怎麼變化呢?你在誰...