NEW03第三章80 x86指令系統(tǒng).ppt
《NEW03第三章80 x86指令系統(tǒng).ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《NEW03第三章80 x86指令系統(tǒng).ppt(73頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
第3章8086 8088指令系統(tǒng) 3 18086 8088指令格式與尋址方式3 2數(shù)據(jù)傳送類指令3 3算數(shù)運(yùn)算類指令3 4邏輯運(yùn)算與移位指令3 5串操作類指令3 6控制轉(zhuǎn)移類指令3 7標(biāo)志處理和處理器控制類指令 3 18086 8088指令格式與尋址方式 機(jī)器指令 操作碼 地址碼 操作數(shù)或操作數(shù)的地址 表示該指令所要完成的操作 都是二進(jìn)制代碼 3 1 1指令的基本格式 匯編語(yǔ)言 符號(hào)化了的機(jī)器語(yǔ)言 用助記符代替機(jī)器語(yǔ)言的二進(jìn)制代碼 2 8086 8088匯編語(yǔ)言指令 例 MOVAL 80H 3 1 2指令的尋址方式 指令的尋址方式 順序?qū)ぶ贩绞?跳轉(zhuǎn)尋址方式 3 1 38086 8088操作數(shù)的尋址方式 立即數(shù)可以是8位 16位立即數(shù)只能是整數(shù) 不能是小數(shù) 變量或其它類型的數(shù)據(jù)立即數(shù)只能作為源操作數(shù) 2 寄存器尋址 操作數(shù)在8位 16位 或32位 通用寄存器中 寄存器可以是AX BX CX DX SI DI SP BPAH AL BH BL CH CL DH DL 在一條指令中 可以對(duì)源操作數(shù)采用寄存器尋址 也可以對(duì)目標(biāo)操作數(shù)采用寄存器尋址 還可以兩者都采用寄存器尋址方式 386以上 3 存儲(chǔ)器尋址 存儲(chǔ)器尋址 直接尋址寄存器間接尋址寄存器相對(duì)尋址基址變址尋址相對(duì)基址變址尋址 操作數(shù)的邏輯地址包含在指令中 1 直接尋址 假設(shè)DS 5000H 地址為51070H字存儲(chǔ)單元的內(nèi)容是6789H 注意 立即數(shù)尋址和直接尋址的書(shū)寫(xiě)格式 直接尋址的地址要放在方括號(hào)中 例 MOVAX VALUE或MOVAX VALUE 符號(hào)地址 2 寄存器間接尋址 操作數(shù)在存儲(chǔ)器中 操作數(shù)的邏輯地址由寄存器提供寄存器的內(nèi)容是段內(nèi)的偏移地址 BX BP SI DI之一 注 如果沒(méi)有特殊說(shuō)明 用寄存器SI DI和BX間接尋址時(shí) 對(duì)應(yīng)的段寄存器是DS 如果用寄存器BP間接尋址時(shí) 對(duì)應(yīng)的段寄存器是SS 再假設(shè)51234H字單元的內(nèi)容是6789H 執(zhí)行該條指令后 AX 6789H 例2 MOV BP CX假設(shè) SS 4000H BP 1234H CX 6789H 則 目的操作數(shù)的物理地址為41234H SS 16 BP 41234H 執(zhí)行該條指令后 41234 89H 41235 67H 8位位移量16位位移量 3 寄存器相對(duì)尋址 帶位移量的寄存器間接尋址 邏輯地址 BX BP SI DI 再假設(shè)548ACH字存儲(chǔ)單元的內(nèi)容是55AAH那么 執(zhí)行該指令后 AX 55AAH BX BP和SI DI寄存器組合起來(lái)進(jìn)行間接尋址 有效地址EA 邏輯地址 BX BP SI DI 一個(gè)基址寄存器的內(nèi)容加上一個(gè)變址寄存器的內(nèi)容 4 基址變址尋址 例 MOVAX BX SI 假設(shè) DS 1000H BX 5000H SI 2000H則 有效地址為 7000H BX SI 物理地址為 17000H DS 16 有效地址 語(yǔ)句執(zhí)行后 17000H 和 17001H AX 5 相對(duì)基址變址尋址 MOVAX MASK BX SI MOVBH 4 DI BP MOVBH BP DI 4 例 基址變址尋址加上一個(gè)相對(duì)位移量 綜合練習(xí) 假設(shè) BX 0158H DI 10A5H 位移量 1B57H DS 2100H指令沒(méi)有使用前綴 直接尋址 有效地址 物理地址 1B57H21000H 1B57H 22B57H 寄存器間接尋址 寄存器為BX 有效地址 物理地址 0158H21000H 0158H 21158H BX寄存器相對(duì)間接尋址 有效地址 物理地址 0158H 1B57H 1CAFH21000H 1CAFH 22CAFH 綜合練習(xí) 假設(shè) BX 0158H DI 10A5H 位移量 1B57H DS 2100H指令沒(méi)有使用前綴 10A5H21000H 10A5H 220A5H 10A5H 1B57H 2BFCH21000H 2BFCH 23BFCH 0158H 10A5H 11FDH21000H 11FDH 221FDH 相對(duì)基址加變址的尋址 BX為基址寄存器 DI為變址寄存器 0158H 10A5H 1B57H 2D54H21000H 2D54H 23D54H 綜合練習(xí) 有效地址 物理地址 假設(shè) BX 0158H DI 10A5H 位移量 1B57H DS 2100H指令沒(méi)有使用前綴 3 2數(shù)據(jù)傳送類指令 3 2 1通用數(shù)據(jù)傳送指令 格式 MOVOPRD1 OPRD2 目的 源 功能 把一個(gè)字節(jié)或一個(gè)字從源操作數(shù)PORD2送至目的操作數(shù)OPRD1 源操作數(shù)不改變 注意 1 源和目的操作數(shù)的類型要一致 即同時(shí)為字節(jié)或同時(shí)為字2 不允許對(duì)IP CS進(jìn)行操作3 兩個(gè)存儲(chǔ)器操作數(shù)之間不允許直接進(jìn)行信息傳輸4 兩個(gè)段寄存器之間不能直接傳送信息 也不允許用立即尋址方式為段寄存器賦值5 目的操作數(shù)不能為立即尋址方式 例 MOVAX 1000H MOVAL E MOVAX 2 BP SI 立即數(shù)送到AX 立即數(shù)送到AL E的ASCII碼 如果BP換成BX 判斷對(duì)錯(cuò) MOV5 ALMOV BX SI MOVDS 1000HMOVCS AXMOVAX DX MOVSI SI MOV SI AX 3 2 2交換傳送指令 XCHG 格式 XCHGOPRD1 OPRD2功能 操作數(shù)OPRD1的內(nèi)容與操作數(shù)OPRD2的內(nèi)容交換 例 XCHGAL AHXCHGSI BXXCHGAL SI 3 XCHG DI BX 3 DX 注意 1 兩個(gè)存儲(chǔ)器操作數(shù)不能互相交換2 段寄存器和立即數(shù)都不能作為操作數(shù) 假設(shè) SS 5000H SP 2000H 00000H 52000H FFFFFH 格式 PUSHOPRD 功能 SP 2 把源操作數(shù)OPRD的16位數(shù)據(jù)壓入堆棧 SP自動(dòng)減2將AX的內(nèi)容傳送到SP指向的單元 1 入棧指令PUSH 50000H 3 2 3堆棧指令 格式 POPOPRD功能 從堆棧中彈出16位數(shù)據(jù)到目的操作數(shù)OPRD SP自動(dòng)加2 2 出棧指令POP 可以是通用寄存器 段寄存器 CS除外 和字存儲(chǔ)單元 執(zhí)行指令POPBX 3 2 4有效地址傳送指令 格式 LEAREG OPRD 16位的通用寄存器 功能 把操作數(shù)的有效地址傳送到操作數(shù)REG寄存器 例 LEAAX 2728H 執(zhí)行后 AX 2728HLEABX BP SI 指令執(zhí)行后 BX的內(nèi)容為BP SI的值 注意 LEA和MOV的區(qū)別 3 2 5換碼指令XLAT 格式 XLAT功能 完成一個(gè)字節(jié)的查表轉(zhuǎn)換 把累加器AL中的值 轉(zhuǎn)換成以BX為表基址的表中值 七段數(shù)碼管 判斷對(duì)錯(cuò) PUSHALPOPCSXCHGDS BXXCHG BX SI POPBHXCHGAX 1234H 3 2 6標(biāo)志寄存器傳送指令 1 讀取標(biāo)志指令LAHF LoadAHwithFlags 格式 LAHF功能 把標(biāo)志寄存器的低8位對(duì)應(yīng)的傳送到寄存器AH AH MOVAH 0C1H 例 AH SFZFAFPFCF SAHF FR的低8位 3 2 6標(biāo)志寄存器傳送指令 3 2 7輸入 輸出數(shù)據(jù)傳送指令 1 輸入指令I(lǐng)N 格式 IN累加器 端口地址功能 從一個(gè)端口讀取一個(gè)字節(jié)或一個(gè)字 傳送到AL或AX 端口地址可以直接給出或由DX寄存器間接給出 例 INAL 50H 將50H端口的字節(jié)讀入ALINAX 70H 將70H 71H兩端口的值讀入AXINAL DX 從DX所指的端口中讀取一個(gè)字節(jié)INAX DX 從DX和DX 1所指的兩個(gè)端口讀取一個(gè)字 注意 外部設(shè)備最多可有65536個(gè)I O端口 0000 FFFFH 只有前256個(gè)端口可在指令中直接給出 00 FFH 2 輸出指令OUT 格式 OUT端口地址 累加器功能 將AL中的一個(gè)字節(jié)或AX中的一個(gè)字輸出到指定端口 例 OUT70H ALOUTDX AL 傳送類指令不影響標(biāo)志位 判斷對(duì)錯(cuò) OUT258 ALOUTDX BLINAL 1234HINAL BHOUT120 ALOUTDX ALINAL 80HINAL DX 3 3算術(shù)運(yùn)算類指令 3 3 1加法指令 1 加法指令A(yù)DD 格式 ADDOPRD1 OPRD2功能 兩個(gè)操作數(shù)相加 結(jié)果送至目的操作數(shù)OPRD1 例 ADDAL 50H AL的內(nèi)容和50H相加 結(jié)果AL中ADDCX 1000H CX的內(nèi)容和1000H相加 結(jié)果放在CX中ADDDI SI DI和SI的內(nèi)容相加 結(jié)果放在DI中ADD BX DI AX BX DI和BX DI 1兩個(gè)存儲(chǔ)單元和AX相加 結(jié)果放在BX DI和BX DI 1所指的存儲(chǔ)單元中ADDAX BX 2000H BX 2000H和BX 2001H所指的兩個(gè)單元的內(nèi)容和AX的內(nèi)容相加 結(jié)果在AX中 注意 兩個(gè)操作數(shù)不能同時(shí)為存儲(chǔ)器尋址方式 2 帶進(jìn)位加法指令A(yù)DC 格式 ADCOPRD1 OPRD2功能 兩個(gè)操作數(shù)相加再加上進(jìn)位標(biāo)志CF 結(jié)果送至目的操作數(shù)OPRD1 MOVSI 2000H 第一個(gè)數(shù)的首址MOVDI 3000H 第二個(gè)數(shù)的首址MOVAX SI 第一個(gè)數(shù)的低16位取到AXADDAX DI 兩個(gè)數(shù)的低16位相加MOV SI AX 低16位相加的結(jié)果送到2000H字單元MOVAX SI 2 取第一個(gè)數(shù)的高16位到AX中ADCAX DI 2 兩個(gè)高16位數(shù)相加 再加CFMOV SI 2 AX 高16位的結(jié)果送到2002H和2003H單元 例 將兩個(gè)四字節(jié)的無(wú)符號(hào)數(shù)相加 兩個(gè)數(shù)分別放在2000H 3000H開(kāi)始的單元 要求結(jié)果放在2000H開(kāi)始的單元 MOVDI 2000HMOVSI 3000HMOVAX SI ADD DI AXMOVAX SI 2 ADC DI 2 AX MOVDI 2000HMOVSI 3000HMOVAX SI ADD DI AXADDSI 2ADDDI 2MOVAX SI ADC DI AX 3 增量指令I(lǐng)NC 格式 INCOPRD功能 操作數(shù)OPRD的內(nèi)容加1 結(jié)果送回OPRD 該指令結(jié)果不影響進(jìn)位標(biāo)志CF 影響其它的五個(gè)狀態(tài)標(biāo)志 例 INCAL AL的內(nèi)容加1INCCX CX的內(nèi)容加1INC BX 存儲(chǔ)單元的內(nèi)容加1 通用寄存器 存儲(chǔ)器 3 3 2減法指令 1 減法指令SUB 格式 SUBOPRD1 OPRD2功能 目的操作數(shù)減去源操作數(shù) 結(jié)果送到目的標(biāo)操作數(shù) 源操作數(shù)不變 執(zhí)行結(jié)果影響標(biāo)志寄存器 3 減量指令DEC 格式 DECOPRD功能 操作數(shù)OPRD的內(nèi)容減1 并把結(jié)果送回OPRD 執(zhí)行結(jié)果不影響CF 但影響其它五個(gè)狀態(tài)標(biāo)志 5 比較指令CMP 格式 CMPOPRD1 OPRD2功能 操作數(shù)OPRD1減去OPRD2 運(yùn)算結(jié)果不送到OPRD1但影響狀態(tài)標(biāo)志 注意 兩個(gè)操作數(shù)本身都沒(méi)有發(fā)生變化 3 3 3乘法和除法指令 格式 MULOPRD功能 字節(jié) AX AL OPRD字 DXAX AX OPRD 有符號(hào)數(shù)乘法指令 乘法指令MUL和IMUL 例 假設(shè) AL 0B4H BL 11H 求執(zhí)行MULBL的乘積值 求執(zhí)行IMULBL的乘積值 無(wú)符號(hào)數(shù) AL 0B4H 190D BL 11H 17D 190D 17D 3060D 3060D 0BF4H 執(zhí)行MULBL后 AX 0BF4HAH 0 CF OF 1 0B4H 10110100B取補(bǔ)碼 4CH 76D 1292D 10100001100B FAF4H 補(bǔ)碼 除法指令DIV IDIV 格式 DIVOPRD功能 字節(jié) AX OPRD AL AH字 DXAX OPRD AX DX 除法指令對(duì)標(biāo)志位的影響無(wú)定義 注意 如果除數(shù)為0 或者8位數(shù)除時(shí)商超過(guò)8位 或者16位除時(shí)商超過(guò)16位 則認(rèn)為是溢出 引起0號(hào)中斷 有符號(hào)數(shù)除法指令 5 符號(hào)擴(kuò)展指令 字節(jié)擴(kuò)展指令CBW 格式 CBW功能 寄存器AL中的符號(hào)擴(kuò)展到寄存器AH 若AL的最高有效位為0 則AH 0 否則AH 0FFH 字?jǐn)U展指令CWD 格式 CWD功能 寄存器AX中的符號(hào)擴(kuò)展到寄存器DX 若AX的最高有效位為0 則DX 0 否則DX 0FFFFH 例 計(jì)算表達(dá)式的值 X Y Z 1024 75 假設(shè)其中的X Y Z均為16位帶符號(hào)數(shù) 分別放在名為XXX YYY ZZZ的變量單元中 3 4邏輯運(yùn)算和位移指令 1 邏輯 與 指令A(yù)ND 格式 ANDOPRD1 OPRD2功能 兩個(gè)操作數(shù)進(jìn)行按位的邏輯 與 運(yùn)算 結(jié)果送到目的操作數(shù)OPRD1 CF 0 OF 0 結(jié)果影響ZF SF PF 3 4 1邏輯運(yùn)算指令 2 邏輯 或 指令OR 格式 OROPRD1 OPRD2功能 兩個(gè)操作數(shù)進(jìn)行按位的邏輯 或 運(yùn)算 結(jié)果送到目的操作數(shù)OPRD1 CF 0 OF 0 結(jié)果影響ZF SF PF 4 邏輯 異或 指令XOR 格式 XOROPRD1 OPRD2功能 兩個(gè)操作數(shù)進(jìn)行按位的邏輯 異或 運(yùn)算 結(jié)果送到目的操作數(shù)OPRD1 CF 0 OF 0 結(jié)果影響ZF SF PF 通常用于檢測(cè)某位是否為1 但又不改變?cè)瓉?lái)值的場(chǎng)合 1 檢查AL中的D6位或D2位是否有一位為1 例 2 要求屏蔽AL寄存器中的第6位和第4位 ANDAL 0AFH 10101111B 3 要求AL寄存器中的第0位和第1位變反 XORAL 03H 00000011B 3 4 2移位指令 1 算數(shù)邏輯移位指令 格式 SALOPRD m 算術(shù)左移指令SHLOPRD m 邏輯左移指令SAROPRD m 算術(shù)右移指令SHROPRD m 邏輯右移指令 功能 操作數(shù)左或右移m位 ShiftArithmeticLeft SHiftlogicRight m為1或?yàn)镃L當(dāng)要移多位時(shí) 移位位數(shù)需存放在CL寄存器中 2 循環(huán)移位指令 ROLOPRD m 循環(huán)左移指令ROROPRD m 循環(huán)右移指令RCLOPRD m 帶進(jìn)位循環(huán)左移指令RCROPRD m 帶進(jìn)位循環(huán)右移指令 格式 功能 操作數(shù)左或右循環(huán)移m位 m是移位位數(shù) 為1或?yàn)镃L 當(dāng)要移多位時(shí) 移位位數(shù)需存放在CL寄存器中 只影響標(biāo)志CF和OF RotateRight lift 例 不用乘法指令 用移位指令編程實(shí)現(xiàn)AL寄存器的內(nèi)容乘以10 假設(shè)結(jié)果仍然是8位 SALAL 1 AL中的數(shù)左移1位 2 MOVBL ALMOVCL 2SALAL CL AL中的數(shù)再左移2位 8 ADDAL BL AL中的數(shù) 10 3 5串操作類指令 字符串 字符的一個(gè)序列 字符串操作的幾點(diǎn)說(shuō)明 由變址寄存器SI指向源操作數(shù) 串 由變址寄存器DI指向目的操作數(shù) 串 規(guī)定源串放在當(dāng)前數(shù)據(jù)段中 目的串放在當(dāng)前附加段中 即 DS SI指向源串ES DI指向目的串 3 5 1重復(fù)前綴 1 重復(fù)前綴REP 格式 REP串操作指令 功能 重復(fù)后面的串操作指令 CX 次 REP后面一般跟MOVS或STOS 即 CX 0并且ZF 1時(shí) 重復(fù)串操作指令 3 5 1重復(fù)前綴 3 重復(fù)前綴REPNZ REPNE 格式 REPNZ串操作指令或REPNE串操作指令 功能 重復(fù)后面的串操作指令 每重復(fù)一次CX 1 重復(fù)一直進(jìn)行到CX為0或串操作指令使零標(biāo)志ZF為1止 即 CX 0并且ZF 0時(shí) 重復(fù)串操作指令 3 5 2字符串指令 格式 MOVSB或MOVSW 功能 MOVSB DS SI ES DI 然后根據(jù)方向標(biāo)志DF確定SI DI增1還是減1 若DF 1 SI DI自動(dòng)減1 若DF 0 SI DI自動(dòng)加1 在執(zhí)行MOVS前 必須確定方向 即DF置位或復(fù)位 MOVSW DS SI ES DI 然后根據(jù)方向標(biāo)志DF確定SI DI增2還是減2 若DF 1 SI DI自動(dòng)減2 若DF 0 SI DI自動(dòng)加2 1 字符串傳送指令MOVS 2 字符串存指令STOS 格式 STOSB或STOSW 功能 把累加器的值存到內(nèi)存中 如果使用了重復(fù)前綴REP 即對(duì)某個(gè)區(qū)域填充累加器的內(nèi)容 STOSB 字節(jié)存 AL ES DI 并根據(jù)DF執(zhí)行DI DI 1 注意 字符串存指令不影響標(biāo)志 STOSW 字存 AX ES DI 并根據(jù)DF執(zhí)行DI DI 1 3 字符串取指令LODS 格式 LODSB或LODSW 功能 把內(nèi)存中的值取到累加器 LODSB 取字節(jié) DS SI AL并根據(jù)DF執(zhí)行DI DI 1 注意 字符串取指令不影響標(biāo)志 LODSW 取字 DS SI AX并根據(jù)DF執(zhí)行DI DI 2 4 字符串掃描指令SCAS 格式 SCASB或SCASW SCASB 字符串字節(jié)掃描 AL ES DI 影響有關(guān)標(biāo)志位 并根據(jù)DF執(zhí)行DI DI 1DF 0時(shí)DI DI 1DF 1時(shí)DI DI 1 功能 SCASW 字符串字掃描 AX ES DI 并根據(jù)DF執(zhí)行DI DI 2 5 字符串比較指令CMPS 格式 CMPSB或CMPSW CMPSB 字符串字節(jié)比較 DS SI ES DI 影響有關(guān)標(biāo)志位 并根據(jù)DF執(zhí)行DI DI 1 功能 CMPSW 字符串字比較 DS SI ES DI 影響有關(guān)標(biāo)志位 并根據(jù)DF執(zhí)行DI DI 2 用串傳送指令把1000H單元的3個(gè)字節(jié)的數(shù)據(jù)傳送到2000H單元 CLDMOVSI 1000HMOVDI 2000HMOVSBMOVSBMOVSBHLT CLDMOVSI 1000HMOVDI 2000HMOVCX 03HREPMOVSBHLT 例1 3 5 3字符串指令舉例 要求把當(dāng)前數(shù)據(jù)段中偏移1000H開(kāi)始的100個(gè)字節(jié)的數(shù)據(jù)傳送到2000H開(kāi)始的單元中 CLDPUSHDSPOPES ES等于DSMOVSI 1000H 置源串指針初值MOVDI 2000H 置目的串指針初值MOVCX 100 重復(fù)次數(shù)REPMOVSB 每次傳送一字節(jié)數(shù)據(jù) 例2 在某字符串中查找是否存在 字符 該字符串的首地址為1000H 長(zhǎng)度為32個(gè)字節(jié) 如果存在把所在地址送入BX寄存器中 否則BX寄存器清0 結(jié)果不為 0 沒(méi)找到 否則 找到了 地址為DI 1 例3 CLD 清方向標(biāo)志DFLEADI 1000H MOVCX 20H 傳送32個(gè)數(shù)據(jù)XORAX AXREPSTOSW 將32個(gè)字清零HLT 將當(dāng)前段1000H開(kāi)始的64個(gè)單元清零 重復(fù)CX次 例4 3 6控制轉(zhuǎn)移類指令 3 6 1無(wú)條件轉(zhuǎn)移指令 程序的尋址 代碼段寄存器CS 程序指針寄存器IP 直接轉(zhuǎn)移 轉(zhuǎn)移的地址信息直接出現(xiàn)在指令中間接轉(zhuǎn)移 轉(zhuǎn)移的目標(biāo)地址信息間接存儲(chǔ)于某寄存器或某一內(nèi)存單元 相對(duì)轉(zhuǎn)移 以當(dāng)前的IP值增加或減少某一個(gè)值絕對(duì)轉(zhuǎn)移 以一個(gè)新的值完全代替當(dāng)前的IP值 JMPSHORTL1JMPNEARPTRL2JMPWORDPTRBXJMPWORDPTR BX JMPFARL2JMPDWORDPTR BX 段內(nèi)直接短轉(zhuǎn)移 段內(nèi)直接近轉(zhuǎn)移 段內(nèi)間接近轉(zhuǎn)移 段間直接遠(yuǎn)轉(zhuǎn)移 段間間接遠(yuǎn)轉(zhuǎn)移 3 6 2調(diào)用和返回指令 1 段內(nèi)直接調(diào)用與返回 格式 CALL過(guò)程名 功能 調(diào)用當(dāng)前段內(nèi)的子程序操作 SP SP 2 SP IP IP IP disp 子程序入口地址與當(dāng)前地址的差值 格式 RET操作 IP SP SP SP 2 2 段內(nèi)間接調(diào)用與返回 格式 CALLOPRD操作 SP SP 2 SP IP IP OPRD 格式 RET操作 IP SP SP SP 2 16位通用寄存器或字存儲(chǔ)器 3 段間直接調(diào)用與返回 格式 CALL過(guò)程名 功能 調(diào)用其它代碼段中的子程序操作 SP SP 2 SP CS SP SP 2 SP IPIP 過(guò)程入口地址的偏移量CS 過(guò)程入口地址的段值 遠(yuǎn)過(guò)程 格式 RET操作 IP SP SP SP 2 CS SP SP SP 2 4 段間間接調(diào)用與返回 格式 CALLOPRD操作 SP SP 2 SP CS SP SP 2 SP IPIP OPRD低 CS OPRD高 格式 RET操作 IP SP SP SP 2 CS SP SP SP 2 雙字存儲(chǔ)器操作數(shù) 3 6 3條件轉(zhuǎn)移指令 條件轉(zhuǎn)移不影響標(biāo)志 3 6 4循環(huán)控制指令 1 計(jì)數(shù)循環(huán)指令LOOP 格式 LOOP標(biāo)號(hào)功能 寄存器CX的值減1 如果結(jié)果不等于0 則循環(huán)至標(biāo)號(hào) 否則順序執(zhí)行 DECCXJNZ標(biāo)號(hào) 3 不等于 結(jié)果不為0循環(huán)指令LOOPNE LOOPNZ 格式 LOOPNE標(biāo)號(hào)或LOOPNZ標(biāo)號(hào)功能 寄存器CX的值減1 且判斷只有在CX 0 而且標(biāo)志ZF 0的條件下 才循環(huán)至標(biāo)號(hào) 否則順序執(zhí)行 3 7標(biāo)志處理和處理器控制類指令 1 對(duì)標(biāo)志位操作指令 2 處理器控制類指令 1 同步命令 2 處理器暫停指令HLT HLT CPU進(jìn)入暫停狀態(tài) 在暫停狀態(tài)不進(jìn)行任何操作 1 在RESET線上有復(fù)位信號(hào)2 在NMI線上有請(qǐng)求3 在中斷允許情況下 在INTR線上有請(qǐng)求 脫離暫停的條件 所以 HLT指令常在程序中為了等待中斷而使用 3 空操作指令NOP- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來(lái)的問(wèn)題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
14.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁(yè)顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開(kāi)word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- NEW03第三章80 x86指令系統(tǒng) NEW03 第三 80 x86 指令系統(tǒng)
鏈接地址:http://www.820124.com/p-6386802.html