用編碼表示CPU的一個(gè)基本操作森渐,稱為一條指令做入。全部指令集稱為指令系統(tǒng)。
助記符:傳送指令:MOV? 加法指令:ADD等
用助記符表示的指令稱為匯編格式指令同衣。
機(jī)器碼:A0 00 20? ?MOV??? AL , var1
操作碼:指明CPU要執(zhí)行什么樣的操作竟块。是一條指令必不可少的部分,用助記符表示耐齐。
按功能分為六類:數(shù)據(jù)傳送 算術(shù)運(yùn)算 邏輯運(yùn)算 串操作 控制轉(zhuǎn)移 處理機(jī)控制
-》操作數(shù)來(lái)源:
1.立即操作數(shù):MOV AL浪秘,9
2.寄存器操作數(shù):MOV AL,9
3.存儲(chǔ)器操作數(shù)/內(nèi)存操作數(shù)蒋情,指令中給出該內(nèi)存單元的地址:
MOV AL,[2000H]
-》操作數(shù)個(gè)數(shù):
1.無(wú)操作數(shù)(不需要操作數(shù)的指令,或操作數(shù)隱含在指令中耸携。)棵癣,eg:HLT,NOP,ALL
2.單操作數(shù):指令中給出一個(gè)操作數(shù)。
1)有些操作只需要一個(gè)操作數(shù):INC AL;? (AL)<-(AL)+1
2) 有些操作將另一個(gè)操作數(shù)隱含在指令中:MUL BL;(AX)<-(AL)*(BL)
3.雙操作數(shù):指令中給出兩個(gè)操作數(shù)夺衍。 ADD AL BL;(AL)<-(AL)+(BL)
前一個(gè)是目的操作數(shù)狈谊,后一個(gè)是源操作數(shù)。操作結(jié)果通常放在目的操作數(shù)中沟沙。
4.三操作數(shù):指令 目的操作數(shù) 源操作數(shù) 立即數(shù)河劝。操作后結(jié)果通常放在目的操作數(shù)中。(操作源操作數(shù)和立即數(shù))
指令格式 操作碼+尋址方式 操作數(shù)
》》尋址方式
1.立即數(shù)尋址(操作數(shù)在指令中給出)
*只能用于源操作數(shù)尝胆。? *源操作數(shù)和目的操作數(shù)字長(zhǎng)一致丧裁。
MOV AL,5? 適用于給寄存器賦初值护桦。
2.寄存器尋址(操作數(shù)在指定的寄存器中)
MOV AL含衔,BH(源和目的的字長(zhǎng)一致,CS不能用MOV指令改變)二庵。運(yùn)算速度快
′MOV? CS, AX(錯(cuò)誤L叭尽!催享!)
3.存儲(chǔ)器尋志
EA(有效地址)=基址+(變址*比例因子)+位移量
位移量:存放在指令中的一個(gè)8位杭隙、16位or32位的數(shù),為地址因妙。
基址:基礎(chǔ)寄存器(數(shù)組or字符串首地址)痰憎。
變址:變址寄存器(指向數(shù)組中某個(gè)元素或字符串中某個(gè)字符)。
比例因子:386+攀涵,值可為1铣耘,2,4以故,8蜗细,與變址相乘用于訪問元素長(zhǎng)度為2、4怒详、8字節(jié)的數(shù)組炉媒。
存儲(chǔ)器尋址中,儲(chǔ)存單元的 邏輯地址 由 段地址 與?段內(nèi)偏移地址?共同組成昆烁,
當(dāng)操作數(shù)的地址不在當(dāng)前默認(rèn)段吊骤,須加上段跨越前綴。
比如:mov ax,[0000]? ? ? 程序默認(rèn)使用的是ds:0000
使用了跨越段前綴就使用你指定的段寄存器
如:mov? ax,es:[0000]? ? ?程序就會(huì)使用es:0000
有三種情況不允許使用段跨越前綴:
1静尼、串處理指令的目的串必須用ES
2水援、PUSH指令的目的和POP指令的源必須用SS段
3密强、指令必須存放在CS段中
3.直接尋址方式
注意給出的地址需要加上段地址。同時(shí)注意給出地址的方式有多種蜗元,比如下圖中的value或渤。
隱含的段為數(shù)據(jù)段 DS 除非用段跨越前綴改變:? ?MOV? AX, ES :[2000H]
*? 使用變量時(shí),要注意變量的屬性
VALUE? DB? 10 (下面要將字節(jié)變量轉(zhuǎn)化為字變量)
MOV? AX,? WORD PTR? VALUE
*? 適于處理單個(gè)變量
-》4.寄存器間接尋址方式:
1)EA在基址寄存器(BX/BP)或變址寄存器(SI/DI)中奕扣。
MOV? AX, [BX]? ? ? ? ? ? ? ? PA = 16d * (DS) + (BX)
MOV? AX, ES:[BX]? ? ? ? ? PA = 16d * (ES) + (BX)
MOV? AX, [BP]? ? ? ? ? ? ? ? PA = 16d * (SS) + (BP)
2) 不允許使用AX,CX,DX存放EA.
*? SRC 和 DST的字長(zhǎng)一致 (即指示什么可以視前面而定)
MOV? DL, [BX]? ? ? ; [BX]指示一個(gè)字節(jié)單元
MOV? DX, [BX]? ? ? ; [BX]指示一個(gè)字單元
*? 適于數(shù)組薪鹦、字符串、表格的處理
以下幾種方式感覺均為簡(jiǎn)單相加: