【正文】
?128條單操作數(shù)指令。 指令系統(tǒng)基本要求是: ?四種尋址方式:立即尋址,寄存器直接尋址,寄存器間接尋址,變址尋址;立即數(shù)和變址尋址時(shí)位移量 disp均可達(dá) 16位。 ?指令編碼中的固定部分:指令系統(tǒng)方案確定后不可能發(fā)生變化的部分。字節(jié)編址方便,但要以更多的地址位數(shù)為代價(jià)。 ?地址范圍:存儲(chǔ)器直接尋址很少見(jiàn),但變址(或基址)尋址時(shí),較大的尋址范圍必須以較多的 displacement位數(shù)為前提。 ?尋址方式數(shù)量:有時(shí)尋址方式可以是隱含的(由操作碼決定) 。 ?操作數(shù)數(shù)量:采用幾個(gè)操作數(shù)(一般為兩個(gè)),每個(gè)操作數(shù)均應(yīng)包括尋址模式編碼。 ?尋址 (Addressing): 操作數(shù)的尋址方式。 ?指令格式 : 指令長(zhǎng)度,地址數(shù)目,指令中不同域的大小等 。 10100011010000 D i s p_ Low D i s p_ H i ghW7 1 8 8Mem ? Acc Acc ? Mem 指令: MOV AX, [1000H] 指令代碼: 10100001 00000000 00010000 8086/ 8088指令系統(tǒng) :指令格式與編碼 ?指令編碼舉例 ?MOV AX, 1000H[BX][SI] ?MOV的操作碼 Opcdoe= 100010 ?d=1 ?W=1 ?REG=000 ?MOD=10, R/M=000 ?指令前兩個(gè)字節(jié)= 1000101110000000( 8B80H) O pc ode D i s p_ Low D i s p_ H i gh I m m e . D a t a _ Low I m m e .D a t a _ H i ghR EG R / MMODWd6 1 1 2 3 3 8 8 8 8 8086/ 8088指令系統(tǒng) :指令格式與編碼 ?其他指令格式 ?單操作數(shù)指令編碼格式 ?與立即數(shù)相關(guān)的指令的特定格式 O pc ode D i s p_ Low D i s p_ H i ghOP R / MMODW7 1 2 3 3 8 8單操作數(shù)指令 8086/ 8088指令系統(tǒng) :指令類型 ?指令類型 ?傳送指令: MOV, XCHG, LDS, LEA ?算術(shù)運(yùn)算指令: ADD, INC, SUB, CMP等 ?邏輯運(yùn)算指令: AND, OR, NOT, TEST等 ?處理器控制指令: CLC, STC, CLI, STI, CLD, NOP等 ?程序控制指令: CALL, RET, JMP, JNE, INT, IRET等 ?串指令: MOVSB, MOVSW等 ?I/O指令: IN, OUT ?數(shù)的機(jī)器編碼及其表示 ?字符的表示 ?指令系統(tǒng) ?指令系統(tǒng)舉例 ?指令系統(tǒng)的設(shè)計(jì) 指令系統(tǒng)的設(shè)計(jì) ?設(shè)計(jì)依據(jù) ?操作特性 : 不同操作的數(shù)量,具體是些什么操作,復(fù)雜程度等。 ?立即數(shù): 8位或 16位,或者無(wú)。 O pc ode D i s p_ Low D i s p_ H i gh I m m e . D a t a _ Low I m m e .D a t a _ H i ghR EG R / MMODWd6 1 1 2 3 3 8 8 8 8REG W=1 W=0 000 AX AL 001 CX CL 010 DX DL 011 BX BL 100 SP AH 101 BP CH 110 SI DH 111 DI BH 寄存器編碼表 8086/ 8088指令系統(tǒng) :指令格式與編碼 ?一般雙操作數(shù)指令格式與編碼(續(xù)) ?MOD和 R/M: 確定另外一個(gè)操作數(shù)。 ? d=1, REG確定目的操作數(shù), MOD+R/M確定源操作數(shù) ? d=0, REG確定源操作數(shù), MOD+R/M確定目的操作數(shù) ?W: 字/字節(jié)字段( 1位):操作數(shù)是字節(jié)( 8位)還是字( 16位) ? W=1, 字( 16位) ? W=0, 字節(jié)( 8位) O pc ode D i s p_ Low D i s p_ H i gh I m m e . D a t a _ Low I m m e .D a t a _ H i ghR EG R / MMODWd6 1 1 2 3 3 8 8 8 8 8086/ 8088指令系統(tǒng) :指令格式與編碼 ?一般雙操作數(shù)指令格式與編碼(續(xù)) ?REG: 寄存器字段,指明兩個(gè)操作數(shù)中寄存器直接尋址的那個(gè)操作數(shù)。在第二個(gè)字節(jié)中, REG確定一個(gè)操作數(shù)(寄存器直接尋址), MOD和 R/M確定零一個(gè)操作數(shù)的尋址方式。 ?CS:IP 形成下一次要執(zhí)行的指令的內(nèi)存地址。所以命令程序最大為 64KB存儲(chǔ)空間。 ?8086/ 8088機(jī)器字長(zhǎng) 16位,所有寄存器長(zhǎng)度位 16位,數(shù)據(jù)總線 16位。 ?EA = (PC)H, 拼接 A ?內(nèi)存分位若干頁(yè), (PC)H,指明頁(yè)地址,形式地址 A表明頁(yè)內(nèi)的位移量 OP Des 0FH Mod 100AH PC Data 100FH 存儲(chǔ)器 拼 10H 指令類型 ?數(shù)據(jù)傳送指令: Move,Store,Load,Set,Clear,Exchange ?算術(shù)運(yùn)算指令: 包括定點(diǎn)數(shù)、浮點(diǎn)數(shù)運(yùn)算和十進(jìn)制數(shù)運(yùn)算 ?邏輯運(yùn)算指令: And,Or,Not,Xor,Compare,Test ?移位指令 ?算術(shù)移位,邏輯移位,循環(huán)移位 ?程序控制類指令 ?幾個(gè)重要的寄存器:程序計(jì)數(shù)器 PC, 程序狀態(tài)字 PSW( 或標(biāo)志寄存器),堆棧指針 SP ?轉(zhuǎn)移指令:無(wú)條件轉(zhuǎn)移指令,有條件轉(zhuǎn)移指令 ?循環(huán)控制指令( LOOP) ?子程序調(diào)用與返回指令( CALL, RET) ?程序中斷指令及返回( INT, IRET) ?串操作指令( MOVSB, MOVSW) ? I/O指令: IN, OUT ?堆棧指令: PUSH, POP ?數(shù)的機(jī)器編碼及其表示 ?字符的表示 ?指令系統(tǒng) ?指令系統(tǒng)舉例 ?指令系統(tǒng)的設(shè)計(jì) 8086/8088指令系統(tǒng)舉例 8086/ 8