X86 彙編基礎

寄存器間接尋址:

基址寄存器BX BP

變址寄存器SI DI

四選一

隱含規則:

指令中使用BP寄存器,隱含對應使用SS段寄存器

其餘情況隱含使用DS段寄存器

 

基址尋址/變址尋址:

BX/BP/SI/DI 四選一 + 地址偏移

隱含規則:

段寄存器隱含規則與寄存器間接尋址相同

 

基址變址尋址

基址+變址+偏移量

BX與BP二選一

SI與DI二選一

另外再加上偏移量

隱含規則:

基址尋址爲BX時,隱含使用段寄存器DS

當基址尋址爲BP時,隱含使用段寄存器SS

 

串操作尋址方式:

源操作數,隱含使用SI作爲地址指針

目的操作時,隱含使用DI作爲地址指針

在串操作完後,自動對SI和DI進行修改,指向下一個操作數。

 

I/O端口尋址:

IN、OUT

1、直接端口尋址:端口數0-255

2、間接尋址:大於0-255時

 

mov 指令:

CS只能作爲源操作數

存儲器之間不能直接傳輸數

mov不影響標誌位

XCHG交換指令:

不影響標誌位

不能再存儲器之間交換

不能使用四個段寄存器和標誌寄存器和IP寄存器

標誌存送寄存器:

LAHF:將標誌寄存器低八位送到AH寄存器

SAHF:將AH送到標誌寄存器的低八位

PUSHF:將標誌寄存器送入棧中

POPF:棧中傳到標誌寄存器中

地址傳送寄存:

LEA:地址操作,相加

LDS/LES:會修改段寄存器

計算指令:

ADC:帶進位的加法

SBB:帶借位的減法

INC:加一

DEC:減一

NEG:0減操作數

測試指令:

TEST DEST ,SRC :結果不送入目的操作數

CMP:

移位、循環移位指令

算數移位:SAL SAR

邏輯移位:SHL SHR

小循環移位:ROL ROR

大循環移位:RCL RCR

COUNT決定移位的次數,COUNT大於1時,要用CL寄存器指定來表示移位次數

處理器控制指令:

標誌位操作指令:

CLS:清理進位標誌,置CF爲0

STC:置CF爲1

CMC:CF值取反

CLD:清除方向標誌DF=0

STD :置位方向標誌DF=1

CLI :清除中斷標誌 IF = 0

STI : 置位中斷標誌IF= 1

外部事件同步:

HLT:暫停指令

WAIT:等待指令

ESC:外部刺耳處理器指令前綴

LOCK:總線鎖定指令

空操作指令:NOP 佔用三個時鐘週期

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章