freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

微機原理周荷琴版第三章-資料下載頁

2025-01-18 18:23本頁面
  

【正文】 ING1 LES DI, STRING2 MOV CX, 20 CLD REPE CMPSB JCXZ ALLMATCH DEC SI 不相等,但地址已加 1(指向下 一個字符),故所求地址應修改 DEC DI HLT ALLMATCH: MOV SI, 0 MOV DI, 0 HLT SCAS(串掃描) 指令格式: [REPE/REPNE] SCASB/SCASW 指令功能:在一個字符串中搜索指定的關(guān)鍵字。字符串起始地址在 ES: [DI]中。不允許使用段超越。待查關(guān)鍵字在 AL或 AX中。 例:在包含 100個字符的字符串中尋找第一個回車符CR(其 ASCII碼為 0DH),找到后將其地址保留在ES: DI中,并在屏幕中顯示“ Y”;如果沒有找到,則在屏幕上顯示“ N”。該字符串的首地址為 STRING LEA DI, STRING MOV AL, 0DH MOV CX, 100 CLD REPNE SCASB JZ MATCH MOV DL,‘ N‘ JMP DISP MATCH: DEC DI ; 由于搜索時地址已加 1,故原地址應還原。 MOV DL,‘ Y‘ DISP: MOV AH, 2 INT 21H HLT 串操作指令的重復前綴、操作數(shù)和地址指針見下表: 指令 重復前綴 操作數(shù) 地址指針 MOVS REP 目的,源 ES:DI,DS:SI LODS 無 源 DS:SI STOS REP 目的 ES:DI CMPS REPE/REPNE 源,目的 DS:EI,ES:DI SCAS REPE/REPNE 目的 ES:DI 五、 控制轉(zhuǎn)移指令 控制轉(zhuǎn)移指令可分為以下幾類: ?無條件轉(zhuǎn)移和過程調(diào)用: JMP、 CALL、 RET ?條件轉(zhuǎn)移指令: JP/JNP、 JS/JNS、 JZ/JNZ、 JO/JNO、JC/JNC、 JG/JGE、 JL/JLE、 JA/JAE、 JB/JBE ?循環(huán)控制指令: LOOP、 LOOPE、 LOOPNE、 JCXZ ?中斷控制指令: INT、 INTO、 IRET 1. 無條件轉(zhuǎn)移和過程調(diào)用指令 轉(zhuǎn)移可以分成兩類: 段內(nèi)轉(zhuǎn)移( NEAR) 和 段間轉(zhuǎn)移( FAR)。 段內(nèi)轉(zhuǎn)移 : 是指在同一段的范圍之內(nèi)進行轉(zhuǎn)移,此時只需改變 IP寄存器的內(nèi)容,即用新的轉(zhuǎn)移目標地址代替原有的 IP的值就可達到轉(zhuǎn)移的目的。 段間轉(zhuǎn)移 : 則是要轉(zhuǎn)到另一個段去執(zhí)行程序,此時不僅要修改 IP寄存器的內(nèi)容,還需要修改 CS寄存器的內(nèi)容才能達到目的,因此此時的轉(zhuǎn)移目標地址應由新的段地址和偏移地址兩部分組成 。 直接轉(zhuǎn)移 :目的操作數(shù)用一個標號來表示。 間接轉(zhuǎn)移 :目的操作數(shù)放在某個 16位寄存器或存儲器單元中。 ( 1)段內(nèi)直接轉(zhuǎn)移: 形式: JMP SHORT LABEL ;段內(nèi)短轉(zhuǎn)移 JMP LABEL 段內(nèi)直接轉(zhuǎn)移 JMP NEAR PTR LABEL 說明: SHORT 為短轉(zhuǎn)移(- 128~ +127), NEAR PTR 為近轉(zhuǎn)移( 16位位移量)。 但 MASM5可自動識別其位移量,并加以區(qū)分 。如下程序中,三種轉(zhuǎn)移方式最終機器指令均為 EBFB。 故一般常用的是 JMP LABEL 形式 。 EB DISPL DISPH E9 DISPL 偏移量 機器碼 程序 CODE SEGMENT ASSUME CS: CODE 0000 0405 START: ADD AL, 05H 0002 90 NOP 0003 EBFB JMP SHORT START 0005 90 NOP 0006 CODE ENDS END START 執(zhí)行 JMP SHORT START指令時, IP=0005H,但由于指令本身改變了 IP的值, IP=0005+FB( 5) =0000H,故轉(zhuǎn)移到 0000H處開始執(zhí)行。所以 DISP的計算公式如下: DISP=目的地址偏移量- IP的當前值 ( 2)段內(nèi)間接轉(zhuǎn)移: JMP REG16/MEM16 說明:待轉(zhuǎn)移的地址放在 16位的寄存器( BX、 BP、 SI、DI)或內(nèi)存單元中。 ( 3)段間直接轉(zhuǎn)移: JMP FAR PTR LABEL 說明: OFFSET LABEL→IP SEG LABEL→CS ( 4)段間間接轉(zhuǎn)移: JMP MEM32 說明: MEM32為內(nèi)存單元中的地址,常用 DWORD PTR指明是對存儲單元進行雙字操作。執(zhí)行時將低字內(nèi)容送 IP,高字內(nèi)容送 CS。 ( 5) 段內(nèi)直接調(diào)用: CALL 過程名 ( 6)段內(nèi)間接調(diào)用: CALL REG16/MEM16 ( 7)段間直接調(diào)用: CALL FAR PTR 過程名 ( 8)段間間接調(diào)用: CALL MEM32 例:設 CS=1200H, IP=0100H, SS=5000H, SP=0400H,DS=2022H, BX=0300H,( 20300) =4800H,( 20302) =00FFH,說明下列指令執(zhí)行后,程序分別轉(zhuǎn)移到何處執(zhí)行,并畫出當前堆棧的示意圖。( 1)JMP BX ( 2) CALL DWORD PTR [BX] 答:( 1) 1200: 0300 ( 2) 00FF: 4800。且將 CS、 IP分別入棧。所以SP=03FCH,( SP) =00H,( SP+1) =01H,( SP+2)=00H,( SP+3) =12H, ( 9)返回指令: RET RET n 指令功能:將堆棧中的內(nèi)容分別彈出到 IP和 CS寄存器,從而使程序返回到原來調(diào)用過程的地方。 n為彈出時舍去的字節(jié)數(shù),常為偶數(shù)。 條件轉(zhuǎn)移指令 指令格式:操作符 短標號 位移量在 ﹣ 128~ +127之間。即所有條件轉(zhuǎn)移指令均為段內(nèi)短轉(zhuǎn)移。 ( 1)簡單條件(直接標志)轉(zhuǎn)移指令(共 10條) 根據(jù) CF、 ZF、 SF、 OF、 PF分別為 1或 0,共有 10種狀態(tài),設置了 10種轉(zhuǎn)移指令: JE/JZ JS JO JC JP ;標志為 1轉(zhuǎn)移 JNE/JNZ JNS JNO JNC JNP ;標志為 0轉(zhuǎn) ( 2) 無符號條件轉(zhuǎn)移指令( 4條) —— 間接標志轉(zhuǎn)移 跟在 CMP指令之后,根據(jù)結(jié)果確定轉(zhuǎn)移方向。比較的對象視為無符號數(shù)。 JA(高于) JAE(高于等于) JB(低于) JBE(低于等于) ( 3)有符號數(shù)條件轉(zhuǎn)移指令( 4條) —— 間接標志轉(zhuǎn)移 JG(大于) JGE(大于等于) JL(小于) JLE(小于等于) 循環(huán)控制指令 ( 1) LOOP 指令格式: LOOP LABEL 指令功能:將 CX的內(nèi)容減 1,若 CX≠0,則移到LABEL。 ( 2) LOOPE 指令格式: LOOPE LABEL 指令功能: CX1→CX , CX≠0且 ZF=1,轉(zhuǎn)移。 ( 3) LOOPNE 指令格式: LOOPNE LABEL 指令功能: CX1→CX , CX≠0且 ZF=0,轉(zhuǎn)移。 ( 4) JCXZ 指令格式: JCXZ LABEL 指令功能: CX=0,轉(zhuǎn)移。 例:在一個由 17個字符組成的字符串 STRING中 , 現(xiàn)在查找該字符串中是否包含空格字符 ( 其 ASCII碼為20H) , 若未找到或尚未查完 , 則繼續(xù)查找 , 直到找到第一個空格字符或查完了才退出循環(huán) 。 STRING DB ‘Personal Computer’ … MOV BX,OFFSET STRING DEC BX MOV CX,17 NEXT: INC BX CMP [BX], BYTE PTR 20H LOOPNE NEXT … 方法二: MOV DI, OFFSET STRING MOV AL, 20H MOV CX, 17 REPNE SACSB JZ NEXT JMP NFOUND NEXT: … NFOUND: … 中斷指令 INT n(中斷調(diào)用) INTO IRET(中斷返回) 中斷指令由于進入的方式比較復雜,故在后面章節(jié)中講解。 六、處理機控制指令 標志位操作指令 CLC(清 0) STC(置 1) CMC(取反) CLD STD CLI STI 外同步指令 HLT ;暫停, INTR和 NMI以及 RESET可使 CPU退出暫停。 WAIT ;等待, /TEST信號使 CPU退出等待。 LOCK ;封鎖總線,它是一種指令前綴,凡帶有LOCK前綴的指令在執(zhí)行過程中,將禁止其它處理器使用總線。 ESC ; 8086對外 8087的控制指令。 空操作指令 NOP 不做任何操作,但占用 3個時鐘周期,然后執(zhí)行下一條指令。 如: MOV CX, 100 LOP: NOP LOOP LOP 此例中 NOP指令執(zhí)行 100次,占用 300個時鐘周期。用這種方式可作軟件延時。但由于機器的主頻變化很大,因此,這種軟件延時的方式不精確。通常用在對延時要求不高的場合。如 ADC0809轉(zhuǎn)換結(jié)束后對數(shù)據(jù)的讀取。 本章習題: 1 1 17
點擊復制文檔內(nèi)容
教學課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1