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

正文內(nèi)容

匯編語(yǔ)言第六章:循環(huán)與分支程序設(shè)計(jì)-展示頁(yè)

2024-10-15 16:38本頁(yè)面
  

【正文】 n: add ax, num inc num loop again mov ax, 4c00h int 21h end ( 下述例子可用 或 版匯編程序匯編 ) 思考題:顯示下面數(shù)組中的數(shù)據(jù): ARRAY DB 1, 3, 7, 8, 5, 4, 6, 8 第一章 基礎(chǔ)知識(shí) 第六章 循環(huán)與分支程序設(shè)計(jì) 循環(huán)程序設(shè)計(jì)方法 例 試編制一個(gè)程序把 BX寄存器內(nèi)的二進(jìn)制數(shù)用十六進(jìn)制數(shù)的形式在屏幕上顯示出來(lái)。 ( 3) stack 堆棧段的段名或段組名。有關(guān)的預(yù)定義符號(hào)如下: ( 1) code 由 .CODE 偽指令定義的段名或段組名。 .CONST 建立只讀的常量數(shù)據(jù)段 段名是: CONST .STACK [大小 ] 創(chuàng)建一個(gè)堆棧段并指定 堆棧段大小 段名是: stack。 .DATA 創(chuàng)建一個(gè)數(shù)據(jù)段 段名是: _DATA .DATA? 創(chuàng)建無(wú)初值變量的數(shù)據(jù) 段 段名是: _BSS .FARDATA [段名 ] 建立有初值的遠(yuǎn)調(diào)用數(shù) 據(jù)段 可指定段名,如不指定,則將以 FAR_DATA命名。 簡(jiǎn)化段偽指令 功 能 注釋 .CODE [段名 ] 創(chuàng)建一個(gè)代碼段 段名為可選項(xiàng),如不給出段名,則采用默認(rèn)段名。當(dāng)與高級(jí)語(yǔ)言混合編程時(shí),兩者的存儲(chǔ)模型應(yīng)當(dāng)一致 2. 簡(jiǎn)化的段偽指令 簡(jiǎn)化的段定義語(yǔ)句書寫簡(jiǎn)短,語(yǔ)句 .CODE、 .DATA和 .STACK分別表示代碼數(shù)據(jù)段和堆棧段的開始,一個(gè)段的開始自動(dòng)結(jié)束前面一個(gè)段。另外, TINY模型將產(chǎn)生 COM程序,其他模型產(chǎn)生 EXE程序。 MASM 型。 MSDOS Windows Large (大型 ) 允許代碼段和數(shù)據(jù)段都可超過(guò) 64K,被放置在有多個(gè)段內(nèi),所以數(shù)據(jù)和代碼都是遠(yuǎn)訪問(wèn)。 MSDOS Windows Compact(緊湊型 ) 所有代碼限在一個(gè)段內(nèi),轉(zhuǎn)移或調(diào)用可為 NEAR型。 MSDOS Windows Medium (中型 ) 所有代碼> 64K時(shí)可放在多個(gè)代碼段中,轉(zhuǎn)移或調(diào)用可為 FAR型。 MODEL偽指令的常用格式如下: . MODEL 存儲(chǔ)模型 存儲(chǔ)模型 功 能 適用操作系統(tǒng) Tiny (微型 ) 所有數(shù)據(jù)和代碼都放在一個(gè)段內(nèi),其訪問(wèn)都為NEAR型,整個(gè)程序 ≤64K,并會(huì)產(chǎn)生 .COM文件。 1. 存儲(chǔ)模型偽指令 存儲(chǔ)模型的作用是什么呢?存儲(chǔ)模型決定一個(gè)程序的規(guī)模,也確定進(jìn)行子程序調(diào)用、指令轉(zhuǎn)移和數(shù)據(jù)訪問(wèn)的缺省屬性( NEAR或 FAR)。 課堂練習(xí) : 采用循環(huán)結(jié)構(gòu)完成自然數(shù) 1到 100的求和運(yùn)算。 例 : 將 十進(jìn)制數(shù) ( number) 轉(zhuǎn)換為八進(jìn)制數(shù) 方法 : ( number) /8 保留余數(shù) , 除法操作 循環(huán)次數(shù)事先未知 ,僅當(dāng)商為 0時(shí) , 循環(huán)結(jié)束 。 例 : 將字變量 num中的數(shù)按 16位 二進(jìn)制數(shù)位 分離開 , 逐位 轉(zhuǎn)換為 ASCII碼 , 并從最高有效位開始依次逐位存入以 binbuf為起始地址的 16個(gè)字節(jié)單元中 。 指令系統(tǒng)提供了專門用于循環(huán)結(jié)構(gòu)的 循環(huán)控制指令 ,更加簡(jiǎn)便的地實(shí)現(xiàn)循環(huán)結(jié)構(gòu)。 第二節(jié):循環(huán)結(jié)構(gòu) 結(jié)束 初始化 循環(huán)的初始狀態(tài) 循環(huán)體 循環(huán)的工作部分 及修改部分 計(jì)數(shù)控制循環(huán) 條件控制循環(huán) 修改部分 控制條件 Y N 第一章 基礎(chǔ)知識(shí) 第六章 循環(huán)與分支程序設(shè)計(jì) 第一章 基礎(chǔ)知識(shí) 第六章 循環(huán)與分支程序設(shè)計(jì) 循環(huán)程序設(shè)計(jì) 根據(jù)條件重復(fù)執(zhí)行一段指令就構(gòu)成了循環(huán)程序結(jié)構(gòu) 。 在此基礎(chǔ)上還要掌握匯編語(yǔ)言程序設(shè)計(jì)的基本方法和技巧 ,包括 遞歸子程序 設(shè)計(jì)、 COM和 EXE格式程序 的結(jié)構(gòu)和特點(diǎn)、 多模塊程序 設(shè)計(jì)方法等。 在調(diào)試程序的過(guò)程中應(yīng)該善于利用機(jī)器提供的調(diào)試工具 ( 如 DEBUG) 來(lái)進(jìn)行工作 , 你會(huì)發(fā)現(xiàn)它會(huì)給你提供很大的幫助 。 4)上機(jī)調(diào)試程序 。 畫框圖時(shí)可以從粗到細(xì)把算法逐步地具體化 。 2)根據(jù)算法畫出程序框圖 。第一章 基礎(chǔ)知識(shí) 第六章 循環(huán)與分支程序設(shè)計(jì) 1)分析題意 , 確定算法 。 這一步是能否編制出高質(zhì)量程序的關(guān)鍵 , 因此不應(yīng)該一拿到題目就急于寫程序 , 而是應(yīng)該仔細(xì)地分析和理解題意 , 找出合理的算法及適當(dāng)?shù)臄?shù)據(jù)結(jié)構(gòu) 。 這一點(diǎn)對(duì)初學(xué)者特別重要 , 這樣做可以減少出錯(cuò)的可能性 。 3)根據(jù)框圖編寫程序 。 任何程序必須經(jīng)過(guò)調(diào)試才能檢查出你的設(shè)計(jì)思想是否正確以及你的程 序是否符合你的設(shè)汁思想 。 分析問(wèn)題 尋找解決問(wèn)題的思路、方法、算法 描述算法 編寫程序?qū)崿F(xiàn)算法 設(shè)計(jì)測(cè)試數(shù)據(jù)和預(yù)期計(jì)算結(jié)果 上機(jī)調(diào)試程序 程序設(shè)計(jì)的解題基本步驟如下: 順序 、 分支 、 循環(huán) 程序和 子程序 的設(shè)計(jì)是匯編語(yǔ)言程序設(shè)計(jì)的基本內(nèi)容。 一、匯編語(yǔ)言程序設(shè)計(jì)的基本方法 概述 概述 二、程序的基本結(jié)構(gòu) 順序結(jié)構(gòu)程序 分支結(jié)構(gòu)程序 循環(huán)(重復(fù))結(jié)構(gòu)程序 順序結(jié)構(gòu) 分支結(jié)構(gòu) 循環(huán)(重復(fù))結(jié)構(gòu) 第一節(jié) 順序結(jié)構(gòu)程序設(shè)計(jì) ? 順序結(jié)構(gòu)程序完全按指令書寫的前后順序執(zhí)行每一條指令,是最基本、最常見的程序結(jié)構(gòu) ? 特點(diǎn) 順序性、結(jié)構(gòu)簡(jiǎn)單,只適應(yīng)于簡(jiǎn)單問(wèn)題的處理 例 1 計(jì)算 例 2 移位 例 :X+Y+Z W stack segment para stack dw 64h dup(?) stack ends data1 segment X dw 5 Y dw 6 Z dw 7 W dw ? data1 ends code segment assume cs:code, ss:stack,ds:data1 start:mov ax,data1 mov ds,ax mov ax,X add ax,Y adc ax,Z mov W,ax mov ah,4ch int 21h code ends end start 例 :64位數(shù)據(jù)移位 data segment var db 21h,43h,65h,87h,78h,56h,34h,12h data ends code segment assume cs:code,ds:data start: mov ax,data mov ds,ax mov al, var[6] mov var[7],al mov al, var[5] mov var[6],al mov al, var[4] mov var[5],al mov al, var[3] mov var[4],al 圖示 mov al, var[2] mov var[3],al mov al, var[1] mov var[2],al mov al, var[0] mov var[1],al mov byte ptr var[0],0 mov ah,4ch int 21h code ends end start 12 34 56 78 87 65 43 21h 34 56 78 87 65 43 21 00h 移位后 圖示 例 :64位數(shù)據(jù)移位 程序結(jié)束的方法 程序執(zhí)行完畢,正常結(jié)束要返回 DOS,有兩種方法 ( 1)使用 PSP中的“ INT 20H”指令,實(shí)現(xiàn)用戶程序結(jié)束,返回 DOS 方法: ① 將用戶程序設(shè)置成一個(gè)遠(yuǎn)過(guò)程 ② 程序開始時(shí),執(zhí)行如下指令 PUSH DS MOV AX, 0 PUSH AX ③ 用戶程序結(jié)束時(shí),用 RET指令 程序結(jié)束的方法 ( 2)使用 DOS功能調(diào)用的“ INT 21H”指令,實(shí)現(xiàn)用戶程序結(jié)束,返回 DOS 方法: 在程序結(jié)束前,使用 如下指令 MOV AH, 4CH INT 21H 注意:一般情況下,使用第 2種方法結(jié)束用戶程序。 MOV AX, 0 ;累加求和寄存器清 0 MOV BX, OFFSET ARRAY ;數(shù)組始址送 BX中 MOV CX, 50 ;循環(huán)控制計(jì)數(shù)初始化 AGAIN : ADD AX, [BX] ADD BX, 2 ;數(shù)組地址增 2, BX指向下一個(gè)元素 DEC CX ;循環(huán)控制計(jì)數(shù)減 1 JNZ AGAIN ;計(jì)數(shù)不為 0時(shí)繼續(xù)循環(huán) MOV S, AX ;計(jì)數(shù)為 0時(shí)循環(huán)結(jié)束,和存于 S中 保證循環(huán)正常執(zhí)行和結(jié)束的條件: ? 正確地 初始化 循環(huán)控制計(jì)數(shù)和初始條件 ? 正確地 檢測(cè) 循環(huán)條件 ? 必須保證能 達(dá)到循環(huán)結(jié)束條件 (例如在循環(huán)體內(nèi)有 修改循環(huán)控制值 的指令 ) 例: 將 ARRAY數(shù)組中的 50個(gè)數(shù)求和,并將和存入字變量 S中 。 循環(huán)控制指令 循環(huán)控制指令的轉(zhuǎn)移范圍為: 128~ +127字節(jié) ( 2)等于繼續(xù)循環(huán)指令 格式: LOOPZ/LOOPE 標(biāo)號(hào) ( 3)不等于繼續(xù)循環(huán)指令 格式: LOOPNZ/LOOPNE 標(biāo)號(hào) LOOP AGAIN (段內(nèi)短轉(zhuǎn)移) 格式: LOOP 標(biāo)號(hào) 操作: 如圖所示 ( 1) LOOP指令 (CX)≠ 0? 執(zhí)行循環(huán)體 (CX) (CX) 1 是 否 退出循環(huán) (CX) ≠ 0 且 ZF =1 ? (CX) ≠ 0 且 ZF=0 ? 在前面的求和例子中,可用一條循環(huán)指令代替兩條指令: DEC CX JNZ AGAIN MOV CX, 80 MOV SI, 1 MOV AL, ?$? AGAIN: INC SI CMP AL, STRS[SI] LOOPNE AGAIN MOV LEN, SI 循環(huán)程序設(shè)計(jì)方法 控制循環(huán)的方法可分為兩類: 計(jì)數(shù)循環(huán) —— 用于循環(huán)次數(shù)已知的情況 條件循環(huán) —— 用于循環(huán)次數(shù)不確定的情況 設(shè) : STRS DB ?string$ ? 例 : 求 存放在 STRS存儲(chǔ)區(qū)中的 字符串長(zhǎng)度。 設(shè): ( num) = 4230H 要求將 4230H= 0 1 0 0 0 0 1 0 0 0 1 1
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1