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

正文內(nèi)容

基本結(jié)構(gòu)程序設(shè)計(jì)ppt課件-wenkub

2023-05-27 07:23:41 本頁面
 

【正文】 第 5章 基本結(jié)構(gòu)程序設(shè)計(jì) 第 6頁 第 6頁 【 例 】 :以 BUF為首址的內(nèi)存中存有 0~15的平方值表 。 本章重點(diǎn)及難點(diǎn) : 匯編指令的綜合應(yīng)用及多分支、多重循環(huán)程序設(shè)計(jì)。本章內(nèi)容 : ● 掌握順序結(jié)構(gòu)程序的設(shè)計(jì); ●掌握分支轉(zhuǎn)移指令的使用; ●掌握分支程序和循環(huán)程序的設(shè)計(jì)方法。 計(jì)劃學(xué)時 : 810學(xué)時 匯編語言程序設(shè)計(jì) 第 5章 基本結(jié)構(gòu)程序設(shè)計(jì) 第 3頁 第 3頁 順序結(jié)構(gòu)程序在設(shè)計(jì)上比較簡單,它按指令書寫的先后次序 執(zhí)行一系列操作,這種程序也稱為直線程序。 查表求 X單元中數(shù)( 在 0~15之間 ) 的平方值 , 并送回 X單元 。 程序段一 : CMP AX, 0 JNS L MOV CX, 200 JMP NEXT L: MOV CX, 50 NEXT: … … ;比較 AX是否為 0,影響 SF標(biāo)志 ;若 AX為正,即 SF=0則轉(zhuǎn)移 ;若 AX為負(fù)數(shù),則令 CX=200 ;跳轉(zhuǎn)到 NEXT 程序段二 : ADD AX, 0 JS L MOV CX, 50 JMP NEXT L: MOV CX, 200 NEXT: … … 程序段三(用 ZF測試) : TEST AX, 8000H JNZ L MOV CX, 50 JMP NEXT L: MOV CX, 200 NEXT: … … 程序段四(用 CF測試) : BT AX, 15 JC L,: ,:程序段五(用 CF測試) : SHL , 1 JC L ,: ,: 匯編語言程序設(shè)計(jì) 第 5章 基本結(jié)構(gòu)程序設(shè)計(jì) 第 14頁 第 14頁 【 例 】 : 已知 X為 16位的數(shù),判斷 X是奇數(shù)還是偶數(shù),若為奇數(shù),則令 Z=X,若為偶數(shù),令 Z=0。編程解決該問題。而每一條條件轉(zhuǎn)移指令,恰好有兩種選擇,轉(zhuǎn)移或順序執(zhí)行。 各轉(zhuǎn)移指令在表中的位置: 離表首地址的偏移量作為轉(zhuǎn)移條件 , 偏移量加上表首地址作為轉(zhuǎn)移地址 , 轉(zhuǎn)到表的相應(yīng)位置 , 執(zhí)行相應(yīng)的無條件轉(zhuǎn)移指令 典型例子: JMP BX TAB: JMP SHORT MODE0 ;轉(zhuǎn)移表 JMP SHORT MODE1 JMP SHORT MODE2 JMP SHORT MODE3 JMP SHORT MODE4 … 說明: 轉(zhuǎn)移表中每條轉(zhuǎn)移指令 ( 段內(nèi)短轉(zhuǎn)移 ) 占用 2個字節(jié) , 所以有如下計(jì)算公式: 表地址 =模式字 *2+轉(zhuǎn)移表首地址 匯編語言程序設(shè)計(jì) 第 5章 基本結(jié)構(gòu)程序設(shè)計(jì) 第 28頁 第 28頁 【 例 】 :根據(jù)輸入值 ( 0~4) 的不同 , 執(zhí)行不同的操作 , 用轉(zhuǎn)移表法編寫程序 轉(zhuǎn)移表首地址送 BX 輸入值乘 2送 AX BX← BX+AX JMP BX JMP MODE0 JMP MODE4 MODE0 MODE4 …… 開始 匯編語言程序設(shè)計(jì) 第 5章 基本結(jié)構(gòu)程序設(shè)計(jì) 第 29頁 第 29頁 CODE SEGMENT ASSUME CS:CODE START: LEA BX,BRATAB 。 某個分支程序入口地址的表地址為: 表地址 =編號 *2+入口地址首地址 … ADTAB DW ADDR0, ADDR1, ADDR2, ADDR3, ADDR4 … LEA BX, ADTAB 。 匯編語言程序設(shè)計(jì) 第 5章 基本結(jié)構(gòu)程序設(shè)計(jì) 第 35頁 第 35頁 【 例 】 : 已知有四個 16位帶符號數(shù) W、 X、 Y和 Z,試編寫程序,若四個數(shù)中有一個為 0,則把另外三個單元清零;若四個數(shù)都不為 0,則求其累加和(不考慮溢出),并保存到 BUF單元中 。 程序清單: DATA SEGMENT BUFX DB X BUFY DB Y DATA ENDS STAK SEGMENT STACK DW 20H DUP(?) STAK ENDS 匯編語言程序設(shè)計(jì) 第 5章 基本結(jié)構(gòu)程序設(shè)計(jì) 第 38頁 第 38頁 CODE SEGMENT ASSUME CS:CODE, DS:DATA START: MOV AX, DATA MOV DS, AX MOV AL, BUFX 。 D0=0,則為同類轉(zhuǎn) L1處理 TEST BL, 01H ;非同類,測試 Y是偶數(shù)否? JZ DONE ;是偶數(shù)滿足( 1),轉(zhuǎn) DONE XCHG BL, BUFX ;奇數(shù)存入 BUFX單元 MOV BUFY, BL ;偶數(shù)存入 BUFY單元 JMP DONE L1: TEST BL, 01H ;同類,測試 Y是偶數(shù)否 JZ DONE ;同為偶數(shù),滿足( 3)不變,轉(zhuǎn) DONE INC BUFX ;是奇數(shù)兩數(shù)同時各加 1,存原單元。否則退出循環(huán) 類型 LOOP 格式: LOOP LABEL 循環(huán)直到計(jì)數(shù)為 0 LOOPZ/LOOPE 格式 : LOOPZ/ LOOPE LABEL 功能: CX1≠0 ∧ ZF=1,循環(huán) 。因此,在循環(huán)程序開始前(初始化),應(yīng)將循環(huán)次數(shù)送到 CX寄存器,這是指令本身的要求,不可違反。 DATA SEGMENT BUF DB 12H,38H,46H,0BH,09H,41H,32H,56,02H,26H RES DB ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX MOV AL,0 ;用于存放累加結(jié)果 MOV CX,0AH ;設(shè)置循環(huán)次數(shù) LEA BX,BUF LP: ADD AL,[BX] ;累加求和 INC BX ;指向下一單元 LOOP LP MOV RES,AL MOV AH,4CH INT 21H CODE ENDS END START N Y CX=0? AL清 0 送結(jié)果 取數(shù)累加 修改地址指針、計(jì)數(shù)值減 1 開始 結(jié)束 匯編語言程序設(shè)計(jì) 第 5章 基本結(jié)構(gòu)程序設(shè)計(jì) 第 44頁 第 44頁 2. LOOPZ/ LOOPE( loop while zero, or egual) 當(dāng)為零或相等時循環(huán)指令 指令格式: LOOPZ( 或 LOOPE) OPR 執(zhí)行循環(huán)條件: CX≠0且 ZF= 1 退出循環(huán)條件: ZF= 0或 CX= 0 本指令的操作也是先將 CX寄存器的內(nèi)容減 1, 僅當(dāng) CX≠0且 ZF= 1時轉(zhuǎn)移到 LOOPZ指令指定的短標(biāo)號處繼續(xù)循環(huán) 。 指令格式: LOOPNZ( 或 LOOPNE) OPR 執(zhí)行循環(huán)條件: CX≠0且 ZF= 0 退出循環(huán)條件: ZF= 1或 CX= 0 匯編語言程序設(shè)計(jì) 第 5章 基本結(jié)構(gòu)程序設(shè)計(jì) 第 45頁 第 45頁 【 例 】 在字節(jié)數(shù)組中找出第一個非 0的數(shù)據(jù),并將其下標(biāo)存入 RES單元,假設(shè)其下標(biāo)值小于 10。本例的特點(diǎn):循環(huán)次數(shù)已知,因此可以用計(jì)數(shù)器來控制循環(huán)的執(zhí)行。 DATA SEGMENT BUF DB 1,2,3,100,23,78,90,134 CNT EQU $BUF ; BUF數(shù)組元素個數(shù) MAX DB ? DATA ENDS 【 分析 】 :可把第一個數(shù)先送到 AL中,將 AL中的數(shù)與后面的 CNT1個數(shù)逐個進(jìn)行比較,如果 AL中的數(shù)大于或等于與之相比較的數(shù),則轉(zhuǎn)下一個數(shù)進(jìn)行比較;若 AL中的數(shù)小于相比較的數(shù),則把相比較的數(shù)送入 AL中,保證 AL中的數(shù)始終處于較大的數(shù)。 這條指令是有條件地形成循環(huán) , 即當(dāng)規(guī)定的循環(huán)次數(shù)尚未完成時 , 還要滿足 “ 相等 ” 或者 “ 等于零 ” 的條件 , 才能繼續(xù)循環(huán) 。 匯編語言程序設(shè)計(jì) 第 5章 基本結(jié)構(gòu)程序設(shè)計(jì) 第 42頁 第 42頁 【 例 】 在 STR開始的緩沖區(qū)中存放有一個字符串,結(jié)束符 ‘ $’,計(jì)算該字符串的長度并存入 LEN單元 . DATA SEGMENT STR DB ‘JHHJK123ABCD$’ LEN DB ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX LEA SI, STR ;取字符串首地址 XOR BL,BL ;用于統(tǒng)計(jì)長度 LOP:MOV AL,[SI] CMP AL,24H JZ STOP INC BL INC SI JMP LOP STOP:MOV LEN,BL MOV AH,4CH INT 21H CODE ENDS
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1