影音先锋男人资源在线观看,精品国产日韩亚洲一区91,中文字幕日韩国产,2018av男人天堂,青青伊人精品,久久久久久久综合日本亚洲,国产日韩欧美一区二区三区在线

《微機(jī)原理與應(yīng)用教學(xué)資料》第四章(課件)

上傳人:san****019 文檔編號:22834400 上傳時(shí)間:2021-06-01 格式:PPT 頁數(shù):78 大?。?31KB
收藏 版權(quán)申訴 舉報(bào) 下載
《微機(jī)原理與應(yīng)用教學(xué)資料》第四章(課件)_第1頁
第1頁 / 共78頁
《微機(jī)原理與應(yīng)用教學(xué)資料》第四章(課件)_第2頁
第2頁 / 共78頁
《微機(jī)原理與應(yīng)用教學(xué)資料》第四章(課件)_第3頁
第3頁 / 共78頁

下載文檔到電腦,查找使用更方便

14.9 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《《微機(jī)原理與應(yīng)用教學(xué)資料》第四章(課件)》由會員分享,可在線閱讀,更多相關(guān)《《微機(jī)原理與應(yīng)用教學(xué)資料》第四章(課件)(78頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。

1、1 第 四 章 : 宏 匯 編 語 言 程 序 設(shè) 計(jì)v匯 編 語 言 程 序 格 式vMASM中 的 表 達(dá) 式v偽 指 令 語 句vDOS系 統(tǒng) 功 能 調(diào) 用v程 序 設(shè) 計(jì) 方 法v程 序 舉 例 電 氣 學(xué) 院 學(xué) 習(xí) 部 資 料 庫 2 4.1 匯 編 語 言 程 序 格 式匯 編 語 言 機(jī) 器 語 言 的 符 號 表 示 , 面 向 機(jī) 器 的 語 言匯 編 語 言 的 特 點(diǎn) :直 接 控 制 目 標(biāo) 代 碼 , 可 對 輸 入 輸 出 設(shè) 備 進(jìn) 行 控 制 , 實(shí) 時(shí)性 好 ;編 程 效 率 高 , 節(jié) 省 內(nèi) 存 , 運(yùn) 行 速 度 快 。源 程 序 1.asm 1.o

2、bj 1.exe8086常 用 的 匯 編 程 序 : 宏 匯 編 程 序 MASM一 、 指 令 性 語 句 :生 成 機(jī) 器 代 碼 , 由 CPU來 執(zhí) 行格 式 : 標(biāo) 號 : 指 令 助 記 符 操 作 數(shù) , 操 作 數(shù) ; 注 釋 字 母 開 頭 , 最 長 31個(gè) 字 符匯 編 鏈 接電 氣 學(xué) 院 學(xué) 習(xí) 部 資 料 庫 3 二 、 偽 指 令 語 句 :只 提 供 匯 編 信 息 功 能 : 變 量 定 義 、 存 儲 區(qū) 分 配 、 段 定 義 、 段 分 配 、 指 示程 序 開 始 、 結(jié) 束 格 式 : 名 字 偽 指 令 助 記 符 操 作 數(shù) , 操 作 數(shù) ;

3、 注 釋 變 量 名 、 段 名 、 過 程 名 、 符 號 名 ( 名 字 后 不 允 許 有 “ : ” )三 、 數(shù) 據(jù) 項(xiàng)匯 編 語 言 中 的 操 作 數(shù) : 常 數(shù) 、 寄 存 器 、 存 儲 器 、 變 量 、 標(biāo)號 和 表 達(dá) 式 電 氣 學(xué) 院 學(xué) 習(xí) 部 資 料 庫 4 1、 常 數(shù)00110101B 026H 123D how are you? 2、 變 量是 內(nèi) 存 中 的 一 個(gè) 數(shù) 據(jù) 區(qū) 。 在 程 序 中 作 為 操 作 數(shù) 使 用 。 變 量 名又 稱 符 號 地 址 , 表 示 該 數(shù) 據(jù) 項(xiàng) 中 第 一 項(xiàng) 所 在 的 地 址 。和 常 數(shù) 區(qū) 別 : 變

4、 量 值 可 以 改 變 。三 個(gè) 屬 性 : 段 地 址 段 內(nèi) 偏 移 地 址 類 型 屬 性( BYTE,WORD,DWORD)3、 標(biāo) 號可 執(zhí) 行 指 令 語 句 的 地 址 的 符 號 表 示 。 可 作 為 轉(zhuǎn) 移 指 令 的 目 的操 作 數(shù) 。 三 個(gè) 屬 性 : 段 地 址 段 內(nèi) 偏 移 地 址 類 型 屬 性 ( NEAR, FAR) 電 氣 學(xué) 院 學(xué) 習(xí) 部 資 料 庫 5 4.2 表 達(dá) 式匯 編 后 的 表 達(dá) 式 為 一 個(gè) 值組 成 : 運(yùn) 算 對 象 +運(yùn) 算 符 , 運(yùn) 算 對 象 與 結(jié) 果 都 是 整 數(shù)運(yùn) 算 對 象 : 常 數(shù) 、 變 量 、 標(biāo)

5、 號分 為 數(shù) 字 表 達(dá) 式 和 地 址 表 達(dá) 式 兩 種一 、 算 術(shù) 運(yùn) 算 符 :+, -, *, /, MOD, SHL, SHR1. 所 有 算 術(shù) 運(yùn) 算 符 都 可 以 對 數(shù) 據(jù) 進(jìn) 行 運(yùn) 算 例 MOV AX , 5+3 ; ( AX) =8 MOV AX , ( 9MOD 2) ; ( AX) =1 MOV AX , 9/2 ; ( AX) =42. 對 地 址 運(yùn) 算 , 只 能 是 +, - 電 氣 學(xué) 院 學(xué) 習(xí) 部 資 料 庫 6 例 2: ARRAY DB 1, 2, 3, 4 TRY DB 20 MOV AX , ( TRY-ARRAY) ; 匯 編 后

6、MOV AX , 4例 3: FIRST DB 1, 2, 3 MOV AX , FIRST+2二 、 邏 輯 運(yùn) 算 符 :AND, OR, NOT, XOR 只 能 用 于 數(shù) 字 表 達(dá) 式 中例 : PORT EQU 90H AND DL , PORT AND 0FEH; 匯 編 后 AND DL,90H 前 AND指 令 助 記 符 , 在 程 序 執(zhí) 行 時(shí) 運(yùn) 算 后 AND運(yùn) 算 符 , 在 匯 編 時(shí) 計(jì) 算 電 氣 學(xué) 院 學(xué) 習(xí) 部 資 料 庫 7 三 、 關(guān) 系 運(yùn) 算 符 :EQ、 NE、 GT、 LT、 GE、 LE結(jié) 果 為 真 : 輸 出 0FFH、 0FFFF

7、H 全 1結(jié) 果 為 假 : 全 0例 : PORT EQU 2 MOV BX , PORT LT 5 ; MOV BX , 0FFFFH MOV CX , ( ( PORT LT 5) AND 100) OR( ( PORT GE 5) AND 200) ;若 PORT LT 5PORT LT 5=FFFFH FFFFH AND 100=100PORT GE 5=0000 0000H AND 200=0 100 OR 0=100匯 編 后 MOV CX, 100 電 氣 學(xué) 院 學(xué) 習(xí) 部 資 料 庫 8 四 、 數(shù) 值 返 回 運(yùn) 算 符 :OFFSET、 SEG、 TYPE、 LENGT

8、H、 SIZE 1. OFFSET 返 回 變 量 或 標(biāo) 號 的 偏 移 地 址 值2. SEG 返 回 變 量 或 標(biāo) 號 的 段 基 地 址 值例 : MOV SI , OFFSET FIRST例 : MOV AX , SEG FIRST MOV DS , AX MOV DS , SEG FIRST 3. TYPE 變 量 : 返 回 類 型 屬 性 DB 1 DW 2 DD 4 ( 字 節(jié) 數(shù) ) TYPE 標(biāo) 號 : 返 回 距 離 屬 性 NEAR -1 FAR -2例 4-9 電 氣 學(xué) 院 學(xué) 習(xí) 部 資 料 庫 9 4. LENGTH 變 量當(dāng) 變 量 定 義 使 用 DUP

9、時(shí) , 返 回 變 量 所 包 含 的 單 元 數(shù) 例 n DUP( ): 返 回 n 其 它 : 返 回 15. SIZE=LENGTH*TYPE例 : FIRST DW 1, 2, 3, 4 M DW 100 DUP (?) MOV AL , TYPE FIRST ; MOV AL , 2 MOV AL , LENGTH FIRST ; MOV AL , 1 MOV AL , SIZE FIRST ; MOV AL , 2 MOV AL , TYPE M ; MOV AL , 2 MOV AL , LENGTH M ; MOV AL , 100 MOV AL , SIZE FIRST ;

10、MOV AL , 200 電 氣 學(xué) 院 學(xué) 習(xí) 部 資 料 庫 10 五 、 修 改 屬 性 運(yùn) 算 符 :段 操 作 符 、 PTR、 THIS、 HIGH、 LOW、 SHORT 1、 段 操 作 符 :例 : MOV AX , ES: BX ES-段 超 越 前 綴 2、 PTR:格 式 : 類 型 /距 離 PTR 變 量 /標(biāo) 號變 量 : BYTE,WORD 標(biāo) 號 : NEAR,FAR例 1: AREA1 DB 15H , 23H AREA2 DW 1234H MOV AL , AREA1 ;AL=15H MOV AX , AREA1 ; 應(yīng) 為 : MOV AX , WORD

11、 PTR AREA1 MOV BL , BYTE PTR AREA2;BL=34H 電 氣 學(xué) 院 學(xué) 習(xí) 部 資 料 庫 11 例 2: MOV BYTE PTR BX , 10H; BX 10H MOV WORD PTR BX , 10H ; BX 0010H例 3: JMP FAR PTR AGAIN ; 實(shí) 現(xiàn) 段 間 轉(zhuǎn) 移 . AGAIN-標(biāo) 號3、 THIS 格 式 : 變 量 /標(biāo) 號 EQU THIS 類 型 /距 離 功 能 : 將 類 型 /距 離 屬 性 賦 予 變 量 /標(biāo) 號 , 且 該 變 量 /標(biāo) 號 的地 址 與 下 一 個(gè) 存 儲 單 元 相 同例 1: F

12、IRST EQU THIS BYTE TABLE DW 200 DUP( ? ) ; 使 變 量 FIRST與 TABLE的 偏 移 地 址 相 同 , 但 FIRST為 字 節(jié)類 型 , TABLE為 字 類 型例 2: SPP EQU THIS FAR MOV AX , 0100 H ; 即 SPP : MOV AX , 0100H 電 氣 學(xué) 院 學(xué) 習(xí) 部 資 料 庫 12 4、 SHORT SHORT 標(biāo) 號例 : JMP SHORT L1 ; 限 制 跳 轉(zhuǎn) 的 距 離 在 -128 +127之 間5、 HIGH和 LOW 字 節(jié) 分 離 符 HIGH/LOW 變 量 或 標(biāo) 號

13、HIGH 分 離 出 高 位 字 節(jié) LOW分 離 出 低 位 字 節(jié)例 : K1 EQU 1234H MOV AH , HIGH K1 ; MOV AH, 12H MOV AL , LOW K1 ; MOV AL , 34H MOV AH , HIGH 1234H ; 不 能 +立 即 數(shù) 電 氣 學(xué) 院 學(xué) 習(xí) 部 資 料 庫 13 六 、 其 他 運(yùn) 算 符 1、 ( ) 改 變 優(yōu) 先 級 次 序 表 4-3例 : MOV AL, X1 OR X2 AND X3 MOV AL,(X1 OR X2) AND X3 2、 用 表 達(dá) 地 址 表 達(dá) 式例 : MOV CL , BX MOV

14、 AX , BX+2 用 表 示 多 重 變 量 的 下 標(biāo) 值例 : M1 DB 10H, 20H, 30H, 40H MOV AL , M13 ; MOV AL , 40H 電 氣 學(xué) 院 學(xué) 習(xí) 部 資 料 庫 14 4-3 偽 指 令 語 句一 、 數(shù) 據(jù) 定 義 語 句 DB DW格 式 : 變 量 名 助 記 符 操 作 數(shù) , 操 作 數(shù) , ; 注 釋 變 量 名 助 記 符 n DUP( 操 作 數(shù) , 操 作 數(shù) ) ; 注 釋 功 能 : 將 操 作 數(shù) 存 入 變 量 名 指 定 的 存 儲 單 元 中 , 或 者 只 分配 存 儲 空 間 不 存 入 數(shù) 據(jù)例 1:

15、A1 DB 0DH A2 DW ? A3 DB 00H, 01H, 03H A5 DB 9 DUP (?) A6 DB 8 DUP (1,2,3) ;共 3x8=24個(gè) 單 元 A7 DB How are you? A8 DW OK A9 DW OVER; 電 氣 學(xué) 院 學(xué) 習(xí) 部 資 料 庫 15 二 、 表 達(dá) 式 賦 值 語 句1、 賦 值 語 句 EQU格 式 : 符 號 名 EQU 操 作 數(shù)功 能 : 給 操 作 數(shù) ( 變 量 、 標(biāo) 號 、 常 數(shù) 、 表 達(dá) 式 、 指 令 ) 定 義 一個(gè) 符 號 名在 同 一 個(gè) 程 序 中 不 允 許 重 復(fù) 定 義例 1: ABC

16、EQU 75 XYZ EQU ABC+2; XYZ EQU ABC+2 ABC EQU 75 A1 EQU BX A2 EQU ADDPURGE 語 句 可 以 解 除 賦 值 , 使 它 在 后 面 可 以 重 新 賦 值 。例 2: PURGE ABC 電 氣 學(xué) 院 學(xué) 習(xí) 部 資 料 庫 16 2、 等 號 語 句 =功 能 : 同 EQU , 但 允 許 重 復(fù) 定 義例 1: X1=100 X1=X1+100; X1=200 X1 EQU 100 X1 EQU 200 ; 電 氣 學(xué) 院 學(xué) 習(xí) 部 資 料 庫 17 v 例 2: PORT EQU 50H IN_PORT DB P

17、ORT+1 ; IN_PORT DB 51H PORT DB 50H IN_PORT DB PORT+1 ; PORT DB 50H IN_PORT DW PORT+1 ;將 變 量 PORT+1的 偏 移 地 址 , 賦 給 字 變 量 IN_PORT 變 量 名 符 號 名 表 達(dá) 式 電 氣 學(xué) 院 學(xué) 習(xí) 部 資 料 庫 18 三 、 段 定 義 語 句 1、 段 定 義 語 句 SEGMENTENDS格 式 : 段 名 SEGMENT ; 邏 輯 內(nèi) 容 段 名 ENDS ( 上 下 段 名 必 須 相 同 )功 能 : 將 一 個(gè) 邏 輯 段 定 義 成 一 個(gè) 整 體段 名 :

18、邏 輯 段 的 標(biāo) 識 符 , 不 可 省 略 , 確 定 了 邏 輯 段 在 存 儲 器中 的 地 址 ( 段 基 地 址 )例 : MOV AX , DATA MOV DS , AX 電 氣 學(xué) 院 學(xué) 習(xí) 部 資 料 庫 19 堆 棧 段 定 義 : 段 名 SEGMENT STACK( 不 可 省 略 ) 段 名 ENDS說 明 : 定 位 類 型 、 組 合 類 型 、 分 類 名 一 般 情 況 下 可 省 略 Data, Stack, ES段 中 , 只 能 有 偽 指 令 Code段 中 , 可 有 指 令 和 與 指 令 相 關(guān) 的 偽 指 令 電 氣 學(xué) 院 學(xué) 習(xí) 部 資

19、 料 庫 20 2、 段 分 配 語 句 : ASSUME格 式 : ASSUME CS: 段 名 , DS: 段 名 , SS: 段 名 , ES: 段 名功 能 : 將 存 儲 器 中 的 某 幾 個(gè) 邏 輯 段 分 別 定 義 成 代 碼 段 、 數(shù) 據(jù)段 、 堆 棧 段 、 附 加 段 ( 指 定 某 程 序 運(yùn) 行 時(shí) , 哪 幾 個(gè) 邏 輯 段有 效 。 CS、 DS段 是 必 須 的 , SS、 ES段 看 情 況 )注 意 : assume指 令 只 指 定 某 個(gè) 段 分 配 給 哪 個(gè) 段 寄 存 器 , 并將 代 碼 段 的 段 基 址 自 動 裝 入 CS中 , 而 不

20、 能 把 其 它 段 基 址自 動 裝 入 相 應(yīng) 的 段 寄 存 器 中 , 所 以 , 在 代 碼 段 的 開 始 , 要有 一 段 初 始 化 程 序 完 成 這 一 工 作 電 氣 學(xué) 院 學(xué) 習(xí) 部 資 料 庫 21 四 、 過 程 定 義 語 句 段 內(nèi) 調(diào) 用 段 間格 式 : 過 程 名 PROC 屬 性 ( 距 離 屬 性 ( NEAR FAR) ) ; 過 程 內(nèi) 容 RET N 過 程 名 ENDP說 明 :1. RET N 帶 參 數(shù) 返 回 , 其 中 N為 正 偶 數(shù) , 表 示 從 過 程 返 回后 , 堆 棧 指 針 SP加 上 N2. 過 程 內(nèi) 部 至 少

21、有 一 條 RET指 令 , 也 可 以 有 多 個(gè) , 表 示 此過 程 具 有 多 個(gè) 返 回 出 口 。3. 過 程 調(diào) 用 允 許 嵌 套 調(diào) 用 , 遞 歸 調(diào) 用嵌 套 調(diào) 用 : 一 個(gè) 被 調(diào) 用 的 過 程 中 又 調(diào) 用 另 一 個(gè) 過 程遞 歸 調(diào) 用 : 一 個(gè) 被 調(diào) 用 的 過 程 又 調(diào) 用 自 己 電 氣 學(xué) 院 學(xué) 習(xí) 部 資 料 庫 22 五 、 程 序 開 始 、 結(jié) 束 語 句 1、 ORG : 設(shè) 置 位 置 指 針 , 指 定 下 面 語 句 的 起 始 偏 移 地 址例 : DATA SEGMENT ORG 100H A1 DB 10H, 20H,

22、 30H ; A1的 偏 移 地 址 為 0100H ORG 200H A2 DW 3031H, 3233H ; A2的 偏 移 地 址 為 0200H DATA ENDS 電 氣 學(xué) 院 學(xué) 習(xí) 部 資 料 庫 23 2、 END格 式 : END 標(biāo) 號 名 放 在 程 序 的 末 尾 , CPU遇 到 END語 句 停 止 匯 編 ,每 段 程 序 只 能 有 一 個(gè) END標(biāo) 號 名 是 該 程 序 中 第 一 條 可 執(zhí) 行 語 句 的 標(biāo) 號 名 , 可以 缺 省 , 若 一 個(gè) 程 序 中 , 包 含 多 個(gè) 模 塊 , 則 為 主 程序 模 塊 中 的 標(biāo) 號 名 稱 電 氣

23、學(xué) 院 學(xué) 習(xí) 部 資 料 庫 24 六 、 使 用 地 址 計(jì) 數(shù) 器 的 值 $來 保 存 當(dāng) 前 正 在 匯 編 的指 令 的 偏 移 地 址例 : ABC DW 1, 2, $+4 ;若 ABC的 偏 移 地 址 為 1000H, 相 當(dāng) 于 ABC DW 1, 2, 1004H 電 氣 學(xué) 院 學(xué) 習(xí) 部 資 料 庫 25 v 完 整 的 匯 編 語 言 編 寫 的 格 式DATA SEGMENTDA1 DB this is a sample programDATA ENDSSTACK SEGMENT STACKST1 DB 100 DUP (?)TOP EQU LENGTH ST1

24、STACK ENDSCODE SEGMENT ASSUME CS:CODE, DS:DATA, SS:STACKMAIN PROC FARSTART: PUSH DS ; 返 回 DOS用 SUB AX,AX PUSH AX 電 氣 學(xué) 院 學(xué) 習(xí) 部 資 料 庫 26 MOV AX, DATA ;初 始 化 DS MOV DS, AX MOV AX, STACK ;初 始 化 SS MOV SS, AX MOV SP, TOP ;設(shè) 棧 底 RETMAIN ENDPCODE ENDS END START參 見 例 4-29,友 情 提 示 :編 程 中 用 到 的 ; , :等 符 號 要

25、用 半 角 形 式 輸 入 電 氣 學(xué) 院 學(xué) 習(xí) 部 資 料 庫 27 好 的 程 序 特 點(diǎn) :1. 程 序 結(jié) 構(gòu) 模 塊 化 , 易 讀 , 易 調(diào) 試 和 維 護(hù)2. 執(zhí) 行 速 度 快3. 占 用 內(nèi) 存 小編 程 基 本 步 驟 :1. 分 析 問 題2. 繪 制 程 序 流 程 圖3. 分 配 存 儲 空 間 及 工 作 單 元 4. 編 程5. 調(diào) 試6. 實(shí) 際 運(yùn) 行 4.4程 序 設(shè) 計(jì) 方 法 電 氣 學(xué) 院 學(xué) 習(xí) 部 資 料 庫 28 1、 順 序 程 序 設(shè) 計(jì) 例 : 設(shè) 計(jì) 一 個(gè) 順 序 程 序 實(shí) 現(xiàn)兩 個(gè) 雙 字 數(shù) 的 加 法 , 結(jié) 果放 在 加

26、數(shù) 單 元 中被 加 數(shù) : 變 量 first,四 單 元加 數(shù) : 變 量 second,四 單 元和 : 變 量 second寄 存 器 間 接 尋 址 : SI,DI累 加 器 AX 送 被 加 數(shù) 、 加 數(shù) 地 址低 位 字 加高 位 字 加送 低 位 和送 高 位 和 電 氣 學(xué) 院 學(xué) 習(xí) 部 資 料 庫 29 FIRST DD 12345678H SECOND DD 22334455H MOV SI , OFFSET FIRST MOV DI , OFFSET SECOND MOV AX , SI ADD AX , DI MOV DI , AX MOV AX , SI+2 A

27、DC AX , DI+2 MOV DI+2 , AX 電 氣 學(xué) 院 學(xué) 習(xí) 部 資 料 庫 30 2、 分 支 程 序 設(shè) 計(jì) 多 分 支例 : x+1 x1 y = x+2 1 x0 x+3 x 0假 設(shè) x放 在 AX里 CMP AX , 1 JGE P1 CMP AX , 0 JGE P2 ADD AX , 3 JMP P3P1: ADD AX ,1 JMP P3 P2: ADD AX ,2P3: MOV 2000H , AX AX1?NAX0?NAX+1 AX+3 AX+2Y YAX2000H電 氣 學(xué) 院 學(xué) 習(xí) 部 資 料 庫 31 跳 轉(zhuǎn) 表 實(shí) 現(xiàn) 多 分 支根 據(jù) 表 內(nèi)

28、地 址 分 支表 地 址 =跳 轉(zhuǎn) 表 首 地 址 +偏 移 地 址例 4-67 有 8個(gè) 加 工 子 程 序 , 入 口 偏 移 地 址 分 別 為P1,P2, ,P8, 編 程 實(shí) 現(xiàn) 檢 測 鍵 盤 輸 入 數(shù) 字 18, 使 系 統(tǒng)分 別 轉(zhuǎn) 向 8個(gè) 加 工 子 程 序 。 用 跳 轉(zhuǎn) 表 實(shí) 現(xiàn) 。 .P2高 8位P2低 8位P1高 8位P1低 8位BASEBASE+2 開 始取 編 號求 偏 移 量求 表 地 址分 支 到 相 應(yīng) 的 分 支 程 序電 氣 學(xué) 院 學(xué) 習(xí) 部 資 料 庫 32 BASE DW P1,P2,P3,P4,P5,P6,P7,P8KEY DB ? MOV

29、 AH,1 INT 21H ;從 鍵 盤 輸 入 字 符 , 字 符 ASCII AL AND AL,0FH DEC ALADD AL,AL; AL乘 2 MOV AH,0MOV BX,OFFSET BASEADD BX,AXJMP WORD PTR BX 電 氣 學(xué) 院 學(xué) 習(xí) 部 資 料 庫 33 v 例 : p3子 程 序 地 址 在 cs: 7800H開 始 ,則 BASE中 第 3個(gè) 數(shù) 據(jù)為 7800H, 地 址 DS:0004H,當(dāng) 鍵 盤 輸 入 字 符 3 AL=33H AL=03H AL=2 AL=2X2=4 AH=0 BX=0 BX=0+4=4 BX=0004H=7800

30、H.程 序 轉(zhuǎn) 移 至 CS:7800H 電 氣 學(xué) 院 學(xué) 習(xí) 部 資 料 庫 34 3、 循 環(huán) 程 序 設(shè) 計(jì) 循 環(huán) 次 數(shù) 不 固 定循 環(huán) 初 始 狀 態(tài) 循 環(huán) 體 NY修 改 參 數(shù) 出 口循 環(huán) 控 制 條 件循 環(huán) 次 數(shù) 固 定循 環(huán) 初 始 狀 態(tài) 循 環(huán) 體 Y 修 改 參 數(shù)N循 環(huán) 控 制 條 件 電 氣 學(xué) 院 學(xué) 習(xí) 部 資 料 庫 35 例 1: 題 目 同 上 , 利 用 循 環(huán) 程 序 設(shè) 計(jì) MOV SI ,OFFSET FIRST MOV DI ,OFFSET SECOND CLC CLD MOV CX ,02HLI: LODSW ; DS : SI

31、 AX, SI+2 SI ADC AX ,DI STOSW ; AX ES : DI, DI+2 DI LOOP LI ; 先 執(zhí) 行 , 后 判 斷 電 氣 學(xué) 院 學(xué) 習(xí) 部 資 料 庫 36 例 2: AX寄 存 器 中 有 16位 二 進(jìn) 制 數(shù) , 編 程 統(tǒng) 計(jì) 其 中 1的 個(gè)數(shù) , 結(jié) 果 放 到 BL中方 法 一 : MOV BL ,0 ;計(jì) 數(shù) 值 清 0 L1: AND AX ,AX ;先 判 斷 , 后 執(zhí) 行 JZ STOP ;若 AX=0, 則 不 進(jìn) 入 循 環(huán) SHL AX ,1 JNC L2 INC BL L2: JMP L1 STOP: 電 氣 學(xué) 院 學(xué)

32、習(xí) 部 資 料 庫 37 方 法 二 : MOV BL ,0 ;計(jì) 數(shù) 值 清 0 MOV CX,16 L1: SHL AX ,1 JNC L2 INC BL L2: LOOP L1 方 法 三 : MOV BL,0 MOV CX,16 L1:ROL AX,1 ADC BL,0 LOOP L1 電 氣 學(xué) 院 學(xué) 習(xí) 部 資 料 庫 38 多 重 循 環(huán) 3點(diǎn) 注 意 :v 多 重 循 環(huán) 的 初 始 控 制 條 件v 內(nèi) 循 環(huán) 可 嵌 套 在 外 循 環(huán) 中 , 內(nèi) 可 跳 到 外 , 外 不 得進(jìn) 入 內(nèi)v 循 環(huán) 不 要 回 到 初 始 條 件 , 造 成 死 循 環(huán) 電 氣 學(xué) 院

33、學(xué) 習(xí) 部 資 料 庫 39 3 5 7 8 1 9 3 5 7 1 8 9 3 5 1 7 8 9 3 1 5 7 8 9 1 3 5 7 8 9 例 4-72 冒 泡 排 序 。 使 一 個(gè) 數(shù) 組 中 的 數(shù) 據(jù) 從 小 到 大 排 列 。分 析 : 第 一 遍 內(nèi) 循 環(huán) N-1次 , 最 大 數(shù) 像 氣 泡 一 樣 升 至 數(shù) 組 尾第 二 遍 內(nèi) 循 環(huán) 只 要 N-2次 , 找 到 次 大 數(shù) , 依 次 類 推外 循 環(huán) 共 需 N-1遍 初 始 5 3 8 7 9 1 一 3 5 8 7 9 1 二 3 5 8 7 9 1 三 3 5 7 8 9 1 四 3 5 7 8 9

34、1 五 3 5 7 8 1 9第 一 遍 內(nèi) 循 環(huán) N-1 次 外循環(huán) N-1 遍 電 氣 學(xué) 院 學(xué) 習(xí) 部 資 料 庫 40修 改 地 址 (BX+2)數(shù) i數(shù) i+1?兩 數(shù) 位 置 交 換 回 到 檢 測 起 點(diǎn) i=0(BX) CX-1內(nèi) 循 環(huán) CX=0?初 始 化 :數(shù) 組 起 始 地 址 BX外 循 環(huán) 次 數(shù) DX內(nèi) 循 環(huán) 次 數(shù) CX置 檢 測 起 點(diǎn) i=0(BX) Dx-1外 循 環(huán) DX=0?NNL2L1 N 電 氣 學(xué) 院 學(xué) 習(xí) 部 資 料 庫 41 DATA SEGMENT BUF DW N,15,37,8600, 0A768H,3412H,1256H, D

35、W 76HDATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX, DATA MOV DS,AX MOV BX,0; i=0 MOV CX, BUFBX ; NCX DEC CX ; N-1, 內(nèi) 循 環(huán) 次 數(shù)L1: MOV DX,CX ;外 循 環(huán) 次 數(shù)L2: ADD BX, 2 電 氣 學(xué) 院 學(xué) 習(xí) 部 資 料 庫 42 MOV AX, BUFBX CMP AX, BUFBX+2 JBE CONTI XCHG AX, BUFBX+2 MOV BUFBX, AXCONTI: LOOP L2 MOV CX,DX MOV BX,

36、0 ;回 到 i=0,重 新 開 始 比 較 LOOP L1 ;CX-1: 內(nèi) 循 環(huán) 次 數(shù) N-1,N-2; 外 循 環(huán) 次 數(shù) -1 MOV AX, 4C00H INT 21H RETCODE ENDS END START 電 氣 學(xué) 院 學(xué) 習(xí) 部 資 料 庫 43 四 、 子 程 序 結(jié) 構(gòu)子 程 序 說 明l 名 稱 、 功 能l 存 儲 單 元 和 寄 存 器l 入 口 和 出 口l 有 否 調(diào) 用 其 它 子 程 序主 程 序 調(diào) 用 子 程 序 注 意 :1) 堆 棧2) 保 護(hù) 現(xiàn) 場 3) 參 數(shù) 傳 遞a) 寄 存 器b) 存 儲 器c) 堆 棧 電 氣 學(xué) 院 學(xué) 習(xí)

37、 部 資 料 庫 44 例 4-30: 過 程 調(diào) 用 , 實(shí) 現(xiàn) 內(nèi) 存 中 N個(gè) BCD碼 數(shù) 據(jù) 相 加 (完整 程 序 ) DATA SEGMENT FIRST DB 22H, 33H,44H,55H ;加 數(shù) 1 SECOND DB 55H, 66H,77H,88H ;加 數(shù) 2 SUM DB 20 DUP( ? ) ;定 義 存 放 結(jié) 果 單 元 DATA ENDSSTACK SEGMENT STACK STA DB 20 DUP( ? ) ;設(shè) 置 堆 棧 長 度 為 20個(gè) 字 節(jié) TOP EQU LENGTH STASTACK ENDS 電 氣 學(xué) 院 學(xué) 習(xí) 部 資 料

38、庫 45 CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATAMAIN PROC FARSTART: MOV AX,STACK ;將 堆 棧 段 段 地 址 SS MOV SS ,AX MOV AX,TOP ;將 堆 棧 指 針 指 向 棧 底 MOV SP,AX PUSH DS ;使 得 程 序 執(zhí) 行 完 了 , 能 返 回 DOS XOR AX,AX PUSH AX MOV AX,DATA MOV DS,AX ;MOV DS , DATA , 初 始 化 MOV ES,AX ;將 數(shù) 據(jù) 段 段 地 址 DS、 ES MOV SI ,O

39、FFSET FIRST MOV BX,OFFSET SECOND MOV DI,OFFSET SUM 電 氣 學(xué) 院 學(xué) 習(xí) 部 資 料 庫 46 MOV CX ,04 CLD CLCADBCD: CALL AAM LOOP ADBCD RET ;返 回 DOSMAIN ENDP AAM PROC NEAR LODSB ;DS:SIAL SI+1SI ADC AL ,BX DAA STOSB ;ALES:DI DI+1DI INC BX RETAAM ENDP CODE ENDS END START 電 氣 學(xué) 院 學(xué) 習(xí) 部 資 料 庫 47 ; 子 程 序 入 口 參 數(shù) : SI, BX

40、 出 口 參 數(shù) : DI 參 數(shù) 傳 遞 : 存 儲 器 電 氣 學(xué) 院 學(xué) 習(xí) 部 資 料 庫 48 4.5 DOS系 統(tǒng) 功 能 調(diào) 用Disk Operation System 磁 盤 操 作 系 統(tǒng) 一 、 DOS常 用 的 軟 中 斷 命 令DOS具 有 對 I/O設(shè) 備 管 理 及 磁 盤 與 文 件 管 理 功 能 ,一 部 分 固 化 在 系 統(tǒng) 的 ROM中一 部 分 在 系 統(tǒng) 啟 動 時(shí) 調(diào) 入 內(nèi) 存 , 通 過 軟 件 中 斷 來 調(diào) 用中 斷 指 令 : INT n 表 4-6 DOS 常 用 的 軟 中 斷 命 令 入 口 、 出 口 參 數(shù) 電 氣 學(xué) 院 學(xué)

41、 習(xí) 部 資 料 庫 49 二 、 DOS系 統(tǒng) 功 能 調(diào) 用 INT 21H附 錄 F AH=功 能 號每 個(gè) 子 程 序 對 應(yīng) 一 個(gè) 功 能 號 ( 相 應(yīng) 的 入 口 號 ) , 格 式 如 下 : 功 能 號 AH 入 口 參 數(shù) 指 定 寄 存 器 INT 21H 根 據(jù) 出 口 參 數(shù) 分 析 功 能 調(diào) 用 執(zhí) 行 情 況1.DOS鍵 盤 功 能 調(diào) 用 表 4-7 鍵 入 單 字 符 AH=1、 8、 6、 7 例 : 從 鍵 盤 輸 入 字 符 并 顯 示 MOV AH , 1 INT 21H ; 檢 查 , 若 為 Break鍵 , 自 動 調(diào) 用 INT 23H 電

42、 氣 學(xué) 院 學(xué) 習(xí) 部 資 料 庫 50 鍵 入 字 符 串 功 能 號 : AH=0AH 入 口 參 數(shù) : DS: DX=緩 沖 區(qū) 首 址例 4-52: 開 辟 一 個(gè) 緩 沖 區(qū) , 從 鍵 盤 輸 入 一 個(gè) 字 符 串 , 將 輸 入 的 字 符 數(shù) CL寄 存 器 , 并 將 指 針 指 向 字 符 串 的 第 一 個(gè) 字 符 。 BUFF DB 100 ;定 義 存 放 100字 節(jié) 的 緩 沖 區(qū) DB ? ;系 統(tǒng) 填 入 實(shí) 際 輸 入 字 符 字 節(jié) 數(shù) DB 100 DUP( ? ) ;存 放 輸 入 字 符 的 ASCII碼 MOV DX, OFFSET BUFF

43、 MOV AH, 0AH INT 21H MOV BX, DX MOV CL, BX+1 ;取 輸 入 字 符 數(shù) CL ADD DX, 2 ;將 指 針 指 向 第 一 個(gè) 字 符電 氣 學(xué) 院 學(xué) 習(xí) 部 資 料 庫 51 2、 DOS顯 示 功 能 調(diào) 用表 4-8 單 字 符 操 作 例 : MOV DL , $ MOV AH , 2 INT 21H ; 調(diào) 用 結(jié) 果 , 屏 幕 上 在 光 標(biāo) 處 顯 示 $ 字 符 串 操 作 AH=9的 INT 21H , 注 意 串 必 須 以 $ 結(jié) 束例 4-55: 在 屏 幕 上 顯 示 HOW DO YOU DO? 字 符 串 , 且

44、回 車 、 換 行 。 DATA SEGMENT MES DB HOW DO YOU DO? , 0DH, 0AH, $ ;0DH(回 車 ) , 0AH( 換 行 ) DATA ENDS 電 氣 學(xué) 院 學(xué) 習(xí) 部 資 料 庫 52 CODE SEGMENT ASSUME CS:CODE ,DS:DATAMAIN :PUSH DS XOR AX ,AX PUSH AX MOV AX ,DATA MOV DS ,AX MOV AH ,9 MOV DX ,OFFSET MES INT 21H RET CODE ENDS END START 字 符 碼 功 能08H0AH0CH0DH 退 格換 行

45、換 頁回 車 電 氣 學(xué) 院 學(xué) 習(xí) 部 資 料 庫 53 3、 返 回 操 作 系 統(tǒng) 4CH功 能 調(diào) 用 : 能 夠 結(jié) 束 當(dāng) 前 正 在 執(zhí) 行 的 程 序 , 返回 DOS系 統(tǒng) MOV AH ,4CH INT 21H 電 氣 學(xué) 院 學(xué) 習(xí) 部 資 料 庫 54 4.6 上 機(jī) 實(shí) 驗(yàn) 參 見 課 本 及 實(shí) 驗(yàn) 指 導(dǎo) 書 實(shí) 驗(yàn) 一 : 兩 個(gè) 多 位 十 進(jìn) 制 數(shù) 相 減 的 實(shí) 驗(yàn) 實(shí) 驗(yàn) 二 : 排 序 實(shí) 驗(yàn)要 求 : 從 首 地 址 偏 移 地 址 為 1000H的 內(nèi) 存 區(qū) 域 開 始 存 放 10個(gè) 無 符 號 字 節(jié) 數(shù) , 設(shè) 計(jì) 程 序 將這 些 數(shù)

46、從 大 到 小 排 序 , 并 將 排 序 前 后 次 序 分 別 顯 示 在 屏 幕 上 。參 見 課 本 P181及 實(shí) 驗(yàn) 指 導(dǎo) 書 實(shí) 驗(yàn) 十 三 MOV BX ,0 MOV CX ,N-1 ; L1: MOV DX ,CX L2: MOV AX ,BUFBX CMP AX ,BUFBX+1 JAE CONTI XCHG AX ,BUFBX+1 MOV BUFBX,AX ADD BX, 1 CONTI: LOOP L2MOV CX ,DXMOV BX ,0 LOOP L1 調(diào) 用 顯 示 子 程 序 , 參 見 P177電 氣 學(xué) 院 學(xué) 習(xí) 部 資 料 庫 55 4.7 程 序 舉

47、 例一 、 查 表 例 4-64二 、 代 碼 轉(zhuǎn) 換 類 16位 二 進(jìn) 制 ASC 碼 ( 例 4-69) 無 符 號 二 進(jìn) 制 組 合 BCD碼 ( 例 4-78) ASCII碼 有 符 號 二 進(jìn) 制 ( 例 4-79) ASC 碼 顯 示三 、 算 術(shù) 運(yùn) 算 類 加 減 乘 除 ( 二 進(jìn) 制 , BCD碼 ) 電 氣 學(xué) 院 學(xué) 習(xí) 部 資 料 庫 56 例 4-64 內(nèi) 存 中 TABLE開 始 存 放 09的 平 方 值 , 通 過 人 機(jī)對 話 , 當(dāng) 任 給 定 一 個(gè) 數(shù) X( 09) , 查 表 得 X的 平 方 值 ,放 在 AL中 。TABLE DB 0,1,4

48、,9,16,25,36,49,64,81BUF DB Please input one number(09):,0DH,0AH, $MOV DX, OFFSET BUFMOV AH, 9INT 21H ;顯 示 字 符 串MOV AH, 1INT 21H ;輸 入 字 符AND AL,0FH ;ASCIIBINMOV BX, OFFSET TABLE;查 表XLAT HLT 電 氣 學(xué) 院 學(xué) 習(xí) 部 資 料 庫 57 例 4-69 將 BX中 的 16進(jìn) 制 數(shù)轉(zhuǎn) 換 為 ASCII碼 , 存 放 到BUF開 始 的 內(nèi) 存 單 元 中 去 ,并 在 屏 幕 顯 示 數(shù) 值轉(zhuǎn) 換 表 :入

49、口 參 數(shù) : BX出 口 參 數(shù) : BUF開 始 的 內(nèi) 存單 元 中 , SI指 示 。 16進(jìn) 制 數(shù) ASCII1 31H2 32H3 33H4 34H9 39HA 41HB 42H 電 氣 學(xué) 院 學(xué) 習(xí) 部 資 料 庫 58 LEA SI, BUF MOV CH,4 ;循 環(huán) 4次NEXT: MOV CL,4 ROL BX,CL ;最 高 位 移 到 右 邊 MOV AL,BL ;一 位 十 六 進(jìn) 制數(shù) 轉(zhuǎn) 換 成 ASCII碼 AND AL,0FH ADD AL,30H CMP AL,3AH JL STORE ADD AL,7STORE: MOV SI,AL MOV AH,2

50、 MOV DL,AL INT 21H ;顯 示 3 2 5 F2 5 F 3F 30 33 3INC SIDEC CHJNZ NEXTHLT 電 氣 學(xué) 院 學(xué) 習(xí) 部 資 料 庫 59 例 4-78: 將 AX中 的 無 符 號 16位 二 進(jìn) 制 數(shù) 轉(zhuǎn) 換 為 4位 壓縮 型 BCD碼算 法 一 :千 位 數(shù) : 無 符 號 16位 二 進(jìn) 制 數(shù) /1000的 商 , 得 余 數(shù) 1百 位 數(shù) : 余 數(shù) 1/100的 商 , 得 余 數(shù) 2十 位 數(shù) : 余 數(shù) 2/10的 商 , 得 余 數(shù) 3個(gè) 位 數(shù) : 余 數(shù) 3算 法 二 : 把 要 轉(zhuǎn) 換 的 數(shù) 分 別 減 去 相 應(yīng)

51、 的 最 高 次 冪 , 直 至 不夠 減 , 此 時(shí) 減 的 次 數(shù) 即 是 相 應(yīng) 的 位 電 氣 學(xué) 院 學(xué) 習(xí) 部 資 料 庫 60 786570001000 7 865 -余 數(shù) 1 865100 800 65 -余 數(shù) 28 65 60 10 65 -余 數(shù) 3 程 序 中 , 7865D=1EB9H1000D=3E8H 865D=361H1EB9H/3E8H=7H.361H361H/64H=8H41H41H/0AH=6H5H 電 氣 學(xué) 院 學(xué) 習(xí) 部 資 料 庫 61 復(fù) 習(xí) 除 法 : 16位 /8位 商 AL, 余 AH( AX) ( 源 操 作 數(shù) ) 32位 /16位

52、商 AX, 余 DX( DX, AX) ( 源 操 作 數(shù) )若 計(jì) 算 16位 /16位 , 8位 /8位 , 需 將 被 除 數(shù) 擴(kuò) 展程 序 :入 口 參 數(shù) : AX=16位 二 進(jìn) 制數(shù)出 口 參 數(shù) : AX=4位 壓 縮 型BCD碼 ( CF=0時(shí) ) 占 用 資 源 : CX , DX 千 位 百 位 千 位 百 位 十 位 千 位 百 位 十 位 個(gè) 位 千 位每 次 所 得 商 , 依 次 移 入 DXDXDXDXDX左 移 4位 電 氣 學(xué) 院 學(xué) 習(xí) 部 資 料 庫 62 B2TOBCD PROC FAR CMP AX ,9999 ;AX 9999, 則 置 CF=1,

53、 JBE TRAN ;不 轉(zhuǎn) 換 STC JMP EXITTRAN:PUSH CX ;保 護(hù) 現(xiàn) 場 PUSH DX XOR DX ,DX ; 32位 /16位 , 需 DX MOV CX ,1000 ;求 千 位 數(shù) DIV CX ;商 在 AX, 余 數(shù) 1在 DX XCHG AX ,DX ;余 數(shù) 1在 AX, 千 位 數(shù) ( 商 ) 在 DX最 低 4位 , DX=0007H 電 氣 學(xué) 院 學(xué) 習(xí) 部 資 料 庫 63 MOV CL ,4 ;DX左 移 4位 , 低 位 添SHL DX ,CL ;四 個(gè) 0, DX=0070HMOV CL,100 ;求 百 位 數(shù)DIV CL ;商

54、在 AL, 余 數(shù) 2在 AHADD DL ,AL ;百 位 數(shù) 入 DX, DX=0078H MOV CL ,4 ; DX左 移 4位 , DX=0780HSHL DX ,CLXCHG AH ,AL ;余 數(shù) 2在 AL AND AX ,00FFH ;AH=0MOV CL ,10 ;求 十 位 數(shù) DIV CL ;商 在 AL, 余 數(shù) 3在 AH 電 氣 學(xué) 院 學(xué) 習(xí) 部 資 料 庫 64 ADD DL ,AL ;DL=86HMOV CL ,4SHL DX ,CL ;DX=7860HADD DL ,AH ;DX=7865H MOV AX ,DX ;轉(zhuǎn) 換 后 的 數(shù) 入 AXPOP DX

55、POP CXEXIT: RETB2TOBCD ENDP作 業(yè) : 將 AH中 存 放 的 無 符 號 8位 二 進(jìn) 制 數(shù) 轉(zhuǎn) 換 為 3位 壓 縮 型BCD碼 電 氣 學(xué) 院 學(xué) 習(xí) 部 資 料 庫 65 例 4-79 將 十 進(jìn) 制 數(shù) 的 ASCII碼 轉(zhuǎn) 換 成 有 符 號 二 進(jìn) 制數(shù) , 結(jié) 果 存 入 AX 字 符 串 轉(zhuǎn) 換 : 數(shù) 字 字 符 ( 30H 39H) 對 應(yīng) 一 位 十 進(jìn) 制 數(shù)( 09) 例 :十 進(jìn) 制 數(shù) a0a1a2轉(zhuǎn) 換 成 十 六 進(jìn) 制 數(shù) :十 六 進(jìn) 制 數(shù) =a0 x100+a1x10+a2 =(a 0 x10+a1) x10+a2 符 號

56、 字 符 串檢 測 字 符 串 的 正 負(fù) , 若 為 正 , 按 的 算 法 轉(zhuǎn) 換 即 可若 為 負(fù) , 將 標(biāo) 識 符 MINU置 1, 轉(zhuǎn) 換 結(jié) 束 還 需 將 AX中 的 數(shù) 取 補(bǔ)電 氣 學(xué) 院 學(xué) 習(xí) 部 資 料 庫 66 字 符 串 是 否 合 法 ? ( 3點(diǎn) 要 求 ) 字 符 串 字 符 個(gè) 數(shù) 6, AX為 16位 , 216=65536 ( 5位 十 進(jìn) 制 數(shù) 加 1個(gè) 符 號 位 ) 字 符 在 09之 間 轉(zhuǎn) 換 完 的 結(jié) 果 要 能 存 入 AX中 , 必 須 結(jié) 果 -32768+32767 調(diào) 用 的 子 程 序 : CHE 乘 10子 程 序 電 氣

57、 學(xué) 院 學(xué) 習(xí) 部 資 料 庫 67 查 符 號 X10 CHE置 標(biāo) 志 位DX清 零是 負(fù) 數(shù) ?修 改 地 址字 符 串 首 地 址 給 SI Y 讀 下 一 位 數(shù)修 改 地 址累 加 到 DX字 符 串 轉(zhuǎn) 換 完 ?是 負(fù) 數(shù) ?取 補(bǔ) Y 電 氣 學(xué) 院 學(xué) 習(xí) 部 資 料 庫 68 入 口 : DX字 符 串 地 址 偏 移 量 , CX字 符 個(gè) 數(shù) 出 口 : CF=0, AX=二 進(jìn) 制 數(shù) ; CF=1, 則 字 符 串 非 法 , AX=0使 用 的 寄 存 器 : BX, SIAS2BIN PROC FAR PUSH CX PUSH DX PUSH SI MOV

58、SI,DX CMP CX,6 JA ERR CLD MOV AL,SI ;查 符 號 CMP AL,- JNE CHK MOV MINU,1 JMP DECSCHK: CMP AL,+ JNE CLRDDECS: DEC CX INC SI 電 氣 學(xué) 院 學(xué) 習(xí) 部 資 料 庫 69 CLRD: SUB DX,DXNEXT: CALL CHE ;調(diào) 用 乘 10子 程 序 JC ERR LODSB CMP AL,0 JB ERR CMP AL,9 JA ERR AND AX,000FH ADD DX,AX JC ERR LOOP NEXT MOV AX,DX CMP MINU,1 ;負(fù) 數(shù)

59、求 補(bǔ) JNE EXIT NEG AX JMP EXITERR: STC ;字 符 串 為 非 法 , 將 CF置 1, AX=0 MOV AX,0 電 氣 學(xué) 院 學(xué) 習(xí) 部 資 料 庫 70 EXIT: POP SI POP DX POP CX RETAS2BIN ENDPCHE PROC NEAR ; 乘 10子 程 序 PUSH BX MOV BX,DX SHL DX,1 SHL DX,1 ADD DX,BX SHL DX,1 POP BX RET CHE ENDP 電 氣 學(xué) 院 學(xué) 習(xí) 部 資 料 庫 71 例 : 兩 個(gè) 多 字 節(jié) 無 符 號 數(shù) 乘 法 子 程 序( 參 考

60、例 4-29, P142 ) 高 16位 低 16位 高 16位 低 16位 DX0 AX0 被 乘 數(shù) 低 16位 X低 16位 DX1 AX1 被 乘 數(shù) 高 16位 X低 16位 DX2 AX2 被 乘 數(shù) 低 16位 X高 16位 + DX3 AX3 被 乘 數(shù) 高 16位 X高 16位 BX+6 BX+4 BX+2 BX 電 氣 學(xué) 院 學(xué) 習(xí) 部 資 料 庫 72 DATA SEGMENT FIRST DW 3213H , 4746H SECOND DW 2278H, 6452H SUM DW 4 DUP(?)DATA ENDSSTACK SEGMENT STACK STA DB

61、100 DUP(?) ;定 義 一 個(gè) 100字 節(jié) 的 堆 棧 , TOP LABEL WORD ; TOP為 棧 底 的 名 , 類 型 為 字STACK ENDS 電 氣 學(xué) 院 學(xué) 習(xí) 部 資 料 庫 73 CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACKMAIN PROC FARSTART: MOV AX , STACK MOV SS , AX MOV SP , OFFSET TOP PUSH DS XOR AX , AX PUSH AX MOV AX , DATA MOV DS , AX 電 氣 學(xué) 院 學(xué) 習(xí) 部 資 料 庫 74 MOV

62、SI , OFFSET FIRST MOV DI , OFFSET SECOND MOV BX , OFFSET SUM CALL DWMULT ;調(diào) 用 乘 法 子 程 序 RETMAIN ENDP CODE ENDS ( 若 題 意 要 求 用 段 間 調(diào) 用 來 實(shí) 現(xiàn) )DCODE SEGMENT ASSUME CS:DCODE ,DS:DATA ,SS:STACKDWMULT PROC FAR PUSH AX PUSH DX 電 氣 學(xué) 院 學(xué) 習(xí) 部 資 料 庫 75 MOV AX , SI ;低 16位 X 低 16位 MUL WORD PTR DI MOV BX , AX MO

63、V BX+2 , DX MOV AX , SI+2 MUL WORD PTR DI ;高 16位 X 乘 數(shù) 低 16位 MOV BX+4 , DX CLC ADD BX+2 , AX ADC BX+4 , 0 CLC 電 氣 學(xué) 院 學(xué) 習(xí) 部 資 料 庫 76 MOV AX , SI ;低 16位 X 乘 數(shù) 高 16位 MUL WORD PTR DI+2 ADD BX+2 , AX ADC BX+4 , DX MOV WORD PTR BX+6 , 0 ADC WORD PTR BX+6 , 0 CLC MOV AX , SI+2 ;高 16位 X 乘 數(shù) 高 16位 MUL WORD

64、PTR DI+2 ADD BX+4 , AX ADC BX+6 , DX 電 氣 學(xué) 院 學(xué) 習(xí) 部 資 料 庫 77 POP DX POP AX RETDWWULT ENDPDCODE ENDS END START 高 16位 低 16位 16位 DX0 AX0 低 16位 X 16位 + DX1 AX1 高 16位 X 16位 BX+4 BX+2 BX ; 子 程 序 入 口 : SI、 DI指 示 的 內(nèi) 存 單 元 , 出 口 : BX指 示 的 內(nèi) 存 單 元 , 使 用 寄 存 器 : AX、 DX 電 氣 學(xué) 院 學(xué) 習(xí) 部 資 料 庫 78謝 謝 大 家 ! 作 業(yè) : 4-2, 3, 5, 6, 11, 13, 15, 16 電 氣 學(xué) 院 學(xué) 習(xí) 部 資 料 庫

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!