Microsoft PowerPoint - chap7.ppt

Similar documents
Microsoft PowerPoint - chap4.ppt

Microsoft PowerPoint - chap5.ppt

微處理機期末專題

Microsoft PowerPoint - chap2.ppt

DPJJX1.DOC

Microsoft PowerPoint - chap12.ppt

Microsoft PowerPoint - chap3.ppt

<4D F736F F D20B3E6B4B9A4F930365F32A443AC71C5E3A5DCBEB9B1B1A8EE2E646F63>

PowerPoint 簡報

HD61202 HD HD61203 HD61202, HY HY HD61202 HD61202 HD61203 HD =4096 RAMRAM LCD 2HD HD HD /32--

山东2014第四季新教材《会计基础》冲刺卷第三套

考 查 知 识 点 肝 气 疏 泄 调 畅 气 机 的 作 用, 主 要 表 现 在 以 下 几 个 方 面 :(1) 促 进 血 液 与 津 液 的 运 行 输 布 ;(2) 促 进 脾 胃 的 运 化 功 能 和 胆 汁 分 泌 排 泄 ;(3) 调 畅 情 志 ;(4) 促 进 男 子 排 精

就 构 成 了 盗 窃 罪 与 破 坏 交 通 设 施 罪 的 想 象 竞 合, 按 照 其 中 处 罚 较 重 的 犯 罪 处 罚 5. 答 案 :B 本 题 主 要 考 察 如 何 区 分 收 买 被 拐 卖 的 妇 女 儿 童 罪 与 拐 卖 妇 女 儿 童 罪 的 共 犯 问 题 ( 对 向

学习MSP430单片机推荐参考书

TSINGTEK DISPLAY CO.,LTD LCD CONTROLLER & DRIVER ST7920 OR EQUIVALENT (f) 639 2A f B1

SIK) 者, 需 實 施 1 年 以 上, 經 體 格 檢 查 無 後 遺 症 者 5. 身 體 任 何 部 分 有 刺 青 紋 身 穿 耳 洞 者, 不 得 報 考, 各 項 檢 查 結 果 須 符 合 體 位 區 分 標 準 常 備 役 體 位 二 在 校 軍 訓 成 績 總 平 均 70 分

2013年3月国家教师资格统一考试

Microsoft PowerPoint - C15_LECTURE_NOTE_05.ppt

untitled

民 國 105 年 大 專 程 度 義 務 役 預 備 軍 官 預 備 士 官 考 選 簡 章 目 錄 壹 考 選 依 據 1 貳 考 ( 甄 ) 選 對 象 1 參 資 格 規 定 1 肆 員 額 及 專 長 類 別 2 伍 報 名 及 選 填 志 願 日 期 方 式 3 陸 選 填 官 科 (

(C) 比 得 上 (D) 如 果 17. ( ) 聖 賢 經 傳 和 傳 奇 小 說 兩 個 傳 字, 其 音 義 關 係 為 何? (A) 音 同 義 異 (B) 音 義 皆 同 (C) 義 同 音 異 (D) 音 義 皆 異 18. ( ) 下 列 選 項 中 的 形 似 字, 何 者 讀 音

Ps22Pdf

12232A LED LED LED EL EL CCFL EL CCF

<4D F736F F F696E74202D20B5DAD2BBD5C228B4F2D3A1B0E6292E BBCE6C8DDC4A3CABD5D>

,768 32,767 32K JMP Jnnn (386+) LOOP CALL [Label:] JMP short/near/far address L10: jmp jmp L20: L10 L20

<4D F736F F D20C7B6C8EBCABDCFB5CDB3C9E8BCC6CAA6B0B8C0FDB5BCD1A75FD1F9D5C22E646F63>

Microsoft PowerPoint - C15_LECTURE_NOTE_05.ppt

北京2014年会计从业资格考试《会计基础》备考机试卷一

當 地 情 形 還 不 熟 悉 4 得 勝 的 歡 似 虎 : 形 容 因 勝 利 而 得 意 忘 形 5 不 吃 無 工 之 食 : 比 喻 人 不 能 無 緣 無 故 接 受 優 待 或 贈 與 4. 請 根 據 文 意, 在 中 填 入 正 確 的 成 語 代 號 ( 甲 ) 優 游 自 在

untitled

台北市立成功高中九十學年度第一學期高三國文科期末考試題

<313034A4BDB67DA4C0B56FBA5DB3E65FBD64A5BB2E786C7378>

1 2 / 3 1 A (2-1) (2-2) A4 6 A4 7 A4 8 A4 9 A ( () 4 A4, A4 7 ) 1 (2-1) (2-2) ()

4 / ( / / 5 / / ( / 6 ( / / / 3 ( 4 ( ( 2

微處理機

1 TPIS TPIS 2 2

( CIP. :, / ISBN D CIP ( ( 010) ( ) ( 010) / ( ) ( 010) 884

A. B. C. D. 2. A. B. C. D. 3. A. 4 N B. 18 N C. 40 N D N 1

实 信 用 的 原 则 " 其 中, 诚 实 信 用 原 则 是 指 民 事 主 体 进 行 民 事 活 动 时, 均 应 诚 实, 不 作 假, 不 欺 诈, 不 损 害 他 人 利 益 和 社 会 利 益, 正 当 地 行 使 权 利 和 履 行 义 务 甲 将 平 房 售 与 丙 而 未 告

Microsoft Word - NHIS2013_C_130716_送印_.doc

! "#$! " # $%%&#! ()*+, - %& - %.,/ - /!! ! " ! #0 $ % &0 123.! 4(5 $%%& %3 &$!!!!!!!!!!!!!!! % % - /&%.&.33!!! &! 3%% - 3 % -


!!!" #$ %& ()#*+ %,!" #--. #! % %! % %" & $! % $" # - #+$/0 - -*,/0 ). %*- #)%* #)%, 9:;"74 < #)*+ < 9:;"74 #- = #*0>? A7BC""7 D #)*+ #)

九十六學年度第一學期第三次定期考國文科試題

优合会计考点直击卷子之财经法规答案——第八套

幻灯片 1

目 录

» n ¹ú KS0108 x ÍÍÙ q n KS0108 KS KS0107 KS0108 KS *32 128*64 192*64 KS0108 KS0108 KS0107 KS =4096 RAM RAM LCD 2 KS

过 程 排 除 A 正 确 答 案 是 B 14.A 解 析 本 题 考 查 思 修 第 八 章 中 国 人 权, 新 增 考 点 其 中 直 接 考 查 宪 法 保 障 是 人 权 保 障 的 前 提 和 基 础 A 人 权 保 障 的 最 后 防 线 是 司 法 保 障,B 人 权 保 障 的


Microsoft Word - ZLI14A0-105


153

Ps22Pdf

CA24064B LED LED LED EL EL CCFL EL CCF /


標準 BIG 中文字型碼表 A 0 9 B C D E F 一 乙 丁 七 乃 九 了 二 人 儿 入 八 几 刀 刁 力 匕 十 卜 又 三 下 丈 上 丫 丸 凡 久 么 也 乞 于 亡 兀 刃 勺 千 叉 口 土 士 夕 大 女 子 孑 孓 寸 小 尢 尸 山 川 工 己 已 巳 巾 干 廾

WinXP

《米开朗琪罗传》

民國八十九年台灣地區在校學生性知識、態度與行為研究調查

2 A

Visualize CMap

SuperMap 系列产品介绍

※※※※※

!!"#$ " # " " " " " "$%%& " $%% " "!!

untitled

untitled

主 題 四 : 都 卜 勒 效 應 一 都 卜 勒 效 應 1. 現 象 : 當 波 源 與 觀 察 者 連 線 間 有 相 對 運 動 時, 聽 者 所 接 收 到 的 頻 率 ( 視 頻 ) 將 與 波 源 之 原 頻 率 不 同, 此 現 象 稱 為 都 卜 勒 效 應 例 如 站 於 路 旁

CIP 1500 / ISBN X Ⅰ. Ⅱ. Ⅲ. Ⅳ. D CIP edu. cn

(Load Project) (Save Project) (OffLine Mode) (Help) Intel Hex Motor

考试大2011年高考试题答案


2013年国家司法考试模拟试卷与答案

<4D F736F F D203936A455B0AAA447B4C1A5BDB8D5C344B5AAB5AAAED7A8F7>

第三节 软件测试的过程与策略

高二立體幾何


Microsoft Word - Z1I07A0-17.doc

Microsoft Word - 國文封面

untitled

Ps22Pdf

# $ %"! &" # " "! ( #)* " $ * +, -./0! &-1 &-1 &-1 # ) ( & & $ "! & " # " ) /" ( %" 3" " & #(* " $.. -1&5 6. #?* " $. 7! 8-1&5 6

2007 /,. :, ISBN D : : : : 2 : : http: / / www. wendu. com : , 832 : : : /

Transcription:

轉換十六進制數字為七段顯示碼 轉換十六進制數字為七段顯示碼 a f g b e d c (a) 七段 LED 顯示器 7 6 5 4 3 2 1 0 位元 0 g f e d c b a 數碼 (b) 顯示器數碼編碼格式 輸入 g f e d c b a 十六進制輸入 g f e d c b a 十六進制 0 0 1 1 1 1 1 1 3F 8 1 1 1 1 1 1 1 7F 1 0 0 0 0 1 1 0 06 9 1 1 0 1 1 1 1 6F 2 1 0 1 1 0 1 1 5B A 1 1 1 0 1 1 1 77 3 1 0 0 1 1 1 1 4F B 1 1 1 1 1 0 0 7C 4 1 1 0 0 1 1 0 66 C 0 1 1 1 0 0 1 39 5 1 1 0 1 1 0 1 6D D 1 0 1 1 1 1 0 5E 6 1 1 1 1 1 0 1 7D E 1 1 1 1 0 0 1 79 7 0 0 0 0 1 1 1 07 F 1 1 1 0 0 0 1 71 林銘波編著 --- 全華科技圖書公司 7.1 林銘波編著 --- 全華科技圖書公司 7.2 MCS-51 表格轉換指令 十六進制數字對七段顯示器數碼轉換程式 指令 動作 CY AC OV P MOVC A,@A+DPTR A (A+DPTR) - - - * MOVC A,@A+PC A (A+PC) - - - * 林銘波編著 --- 全華科技圖書公司 7.3 1 ;ex7.1-1.a51 0030 3 CDATA: DS 1 ;data to be converted 4 ;table translation ---- 5 CSEG AT 0000H 0000 E530 6 TBLCVT: MOV A,LOW CDATA ;get cdata 0002 900009 7 MOV DPTR,#TABLE ;load table base 0005 93 8 MOVC A,@A+DPTR ;address and 0006 F530 9 MOV LOW CDATA,A ;convert it 0008 22 10 RET 11 ;define convertion table 0009 3F06 12 TABLE: DB 3FH,06H ;hexadecimal to 000B 5B4F 13 DB 5BH,4FH ;seven segment 000D 666D 14 DB 66H,6DH ;LED display 000F 7D07 15 DB 7DH,07H ;conversion table... 0017 7971 19 DB 79H,71H 20 END 林銘波編著 --- 全華科技圖書公司 7.4 十六進制數字對七段顯示器數碼轉換程式 1 ;ex7.1-2.a51 0030 3 CDATA: DS 1 ;data to be converted 4 ;table translation ---- 5 CSEG AT 0000H 0000 E530 6 TBLCVT: MOV A,LOW CDATA ;get cdata 0002 3100 7 ACALL TABLECVT 0004 F530 8 MOV LOW CDATA,A ;convert it 0006 22 9 RET 10 ;define convertion table and associated 11 ;subroutine 0100 12 ORG 0100H 0100 04 13 TABLECVT: INC A ;bypass RET instruction 0101 83 14 MOVC A,@A+PC 0102 22 15 RET 0103 3F06 16 DB 3FH,06H ;hexadecimal to 0105 5B4F 17 DB 5BH,4FH ;seven segment... 0111 7971 23 DB 79H,71H 24 END 7 6 5 4 3 BCDNO = b7 2 + b6 2 + b5 2 + b4 2 + b3 2 2 1 0 + b2 2 + b1 2 + b0 2 = [[[[[[[0 + b7 ] 2 + b6 ] 2 + b5 ] 2 + b4 ] 2 + b3 ] 2 + b2 ] 2 + b1 ] 2 + b0 林銘波編著 --- 全華科技圖書公司 7.5 林銘波編著 --- 全華科技圖書公司 7.6

演算法 : 輸入 : 待轉換的二進制數目 BINNO 輸出 : BCD 數目 BCDNO 1. 清除 BCDNO 為 0, 並設定 COUNT 為 BINNO 的位元數目 ; 2.1 左移 BINNO 一個位元位置, 使其 MSB 進入進位旗號位元 CY 內 ; 2.2 以十進制 (BCD) 的算術運算計算 : BCDNO = BCDNO 2 + CY 2.3 計數器 COUNT 減 1 END { 演算法 } 1 ;ex7.1-3.a51 0010 3 COUNT EQU 16 ;# of BINNO bits 0003 4 NBCD EQU 3 ;# of BCDNO bytes 5 ;define BCDNO, low byte in low adddress. 0030 6 BCDNO: DS NBCD ;BCD number 7 ;define BINNO, low byte in low address 0033 8 BINNO: DS COUNT/8 ;binary number 9 ; 10 ;BINARY to BCD conversion 11 ; ---- 12 CSEG AT 0000H 0000 E4 13 BINBCD: CLR A ;clear A 0001 7830 14 MOV R0,#LOW BCDNO 0003 7903 15 MOV R1,#NBCD ;set loop count 0005 F6 16 CLRBCD: MOV @R0,A ;clear BCDNO 0006 08 17 INC R0 0007 D9FC 18 DJNZ R1,CLRBCD 19 ;convert binary to bcd. 0009 7A10 20 MOV R2,#COUNT;set loop count 000B C3 21 LOOPN: CLR C ;clear carry 林銘波編著 --- 全華科技圖書公司 7.7 林銘波編著 --- 全華科技圖書公司 7.8 22 ;shift binno msb into carry 000C 7833 23 MOV R0,#LOW BINNO 000E 7902 24 MOV R1,# COUNT/8 0010 E6 25 SFTBIN: MOV A,@R0 ;multiple precision 0011 33 26 RLC A ;rotation left 0012 F6 27 MOV @R0,A ;with carry 0013 08 28 INC R0 ;point to next byte 0014 D9FA 29 DJNZ R1,SFTBIN 30 ;multiple precision BCD addition 0016 7903 31 MOV R1,#NBCD ;get bcd digit no 0018 7830 32 MOV R0,#LOW BCDNO;setup pointer 001A E6 33 BCDADD: MOV A,@R0 ;carry out conversion 001B 35E0 34 ADDC A,ACC ;a <- a * 2 + C 001D D4 35 DA A ;decimal adjust 001E F6 36 MOV @R0,A ;save the result 001F 08 37 INC R0 ;point to the next byte 0020 D9F8 38 DJNZ R1,BCDADD 0022 DAE7 39 DJNZ R2,LOOPN;repeat COUNT times 0024 22 40 RET 41 END 林銘波編著 --- 全華科技圖書公司 7.9 3876 0 0 1 1 1 0 0 0 0 1 1 1 0 1 1 0 1938 0 0 0 1 1 1 0 0 0 0 1 1 1 0 1 1-0 0 1 1-0 0 1 1 0 0 0 1 1 0 0 1 0 0 1 1 1 0 0 0 林銘波編著 --- 全華科技圖書公司 7.10 演算法 : 輸入 : 待轉換的 BCD 數目 BCDNO 輸出 : 二進制數目 BINNO 1. 清除 BINNO 為 0, 並設定 COUNT 為 BINNO 的位元數目 ; 2.1 右移 BCDNO 一個位元位置, 使其 LSB 進入進位旗號位元 CY 內, 然後調整 BCDNO 使其維持除以 2 的特性 ; 2.2 將進位旗號位元 CY 移入 BINNO 的 MSB 內 ; 2.3 計數器 COUNT 減 1 END {演算法 } 林銘波編著 --- 全華科技圖書公司 7.11 1 ;ex7.1-5.a51 0010 3 COUNT EQU 16 ;# of BINNO bits 0003 4 NBCD EQU 3 ;# of BCDNO bytes 5 ;define BCDNO, low byte in low address 0030 6 BCDNO: DS NBCD ;BCD number 7 ;define BINNO, low byte in low address 0033 8 BINNO: DS COUNT/8 ;binary number 9 ; 10 ;BCD to BINARY conversion 11 ; ---- 12 CSEG AT 0000H 0000 7A10 13 BINBCD: MOV R2,#COUNT ;set loop count 0002 7903 14 LOOPN: MOV R1,#NBCD ;get bcd digit no 0004 C3 15 CLR C ;clear carry 16 ;point to BCDNO 0005 7832 17 MOV R0,#BCDNO+NBCD-1 0007 E6 18 SFTBCD: MOV A,@R0 0008 13 19 RRC A ;divide by 2 0009 C0D0 20 PUSH PSW ;save carry 林銘波編著 --- 全華科技圖書公司 7.12

000B 30E303 21 JNB ACC.3,CONT ;adjust 000E C3 22 CLR C ;if > 08 000F 9403 23 SUBB A,#03H ;subtract 03H 0011 30E703 24 CONT: JNB ACC.7,NEXT ;adjust 0014 C3 25 CLR C ;if > 80H 0015 9430 26 SUBB A,#30H ;subtract 30H 0017 F6 27 NEXT: MOV @R0,A 0018 18 28 DEC R0 0019 D0D0 29 POP PSW ;restore carry 001B D9EA 30 DJNZ R1,SFTBCD ;repeat NBCD times 31 ;shift CY into BINNO 001D 7834 32 MOV R0,#BINNO+COUNT/8-1 001F 7902 33 MOV R1,#COUNT/8 0021 E6 34 SFTBIN: MOV A,@R0 ;shift CY 0022 13 35 RRC A ;into BINNO 0023 F6 36 MOV @R0,A 0024 18 37 DEC R0 0025 D9FA 38 DJNZ R1,SFTBIN 0027 DAD9 39 DJNZ R2,LOOPN ;repeat count times 0029 22 40 RET 41 END 林銘波編著 --- 全華科技圖書公司 7.13 例題 7.2-1 ( 數值例 ) 依上述方法將下列資料項排列成遞增次序 : 23H, 02H, 14H, 78H, 15H, 52H, 40H, 80H 解 :(a) 02H, 14H, 23H, 15H, 52H, 40H, 78H, 80H (b) 02H, 14H, 15H, 23H, 40H, 52H, 78H, 80H (c) 02H, 14H, 15H, 23H, 40H, 52H, 78H, 80H 在第二次迴路後資料已經排序完成 林銘波編著 --- 全華科技圖書公司 7.14 演算法 : 浮昇排序 輸入 : 待排序的資料陣列 TDATA 輸出 : 排序完成的資料陣列 TDATA 1. 設定交換旗號 XCHG 為 ON ; 2. WHILE ( 交換旗號 XCHG 為 ON) DO 2.1 設定 COUNT 為 N, 並設定資料陣列指標 i 為 0 而交換旗號 XCHG 為 OFF ; 2.2 REPEAT 2.2.1 IF TDATA(i) > TDATA(i + 1) THEN TDATA(i) 與 TDATA(i + 1) 交換, 並設定交換旗號 XCHG 為 ON 2.2.2 陣列指標 i 加 1, 計數器 COUNT 減 1 END {WHILE} END { } 林銘波編著 --- 全華科技圖書公司 7.15 1 ;ex7.2-2.a51 0008 3 DSIZE EQU 08H ;array size 0030 4 TDATA: DS DSIZE ;testing data 5 ; 6 ;BUBBLE sorting algorithm 7 ; ---- 8 CSEG AT 0000H 0000 7830 9 BUBSORT: MOV R0,#LOW TDATA;point to TDATA 0002 7931 10 MOV R1,#LOW TDATA+1 0004 7A08 11 MOV R2,#DSIZE ;set loop count 0006 75F000 12 MOV B,#00H ;clear exchange flag 0009 E6 13 CMPXCHG: MOV A,@R0 ;get test data 000A C3 14 CLR C ;clear carry flag 000B 97 15 SUBB A,@R1 ;compare 000C 4006 16 JC NEXT ;if larger 000E E6 17 MOV A,@R0 ;restore A 000F C7 18 XCH A,@R1 ;exchange 0010 F6 19 MOV @R0,A 0011 43F001 20 ORL B,#01H ;set flag 林銘波編著 --- 全華科技圖書公司 7.16 0014 08 21 NEXT: INC R0 ;point to the next 0015 09 22 INC R1 ;two items 0016 DAF1 23 DJNZ R2,CMPXCHG;repeat DSIZE times 0018 E5F0 24 MOV A,B ;if exchange in the last 001A 70E4 25 JNZ BUBSORT;iteration, continue 001C 22 26 RET 27 END 例題 7.2-3 ( ) 使用下列資料項, 並以尋找資料項 52H 為例, 說明搜尋演算法的動作 02H, 14H, 15H, 23H, 40H, 52H, 78H, 80H 解 : 在中, 必須計算中間的資料項的指標值, 即 mid = (low + high)/2, 然後比較資料項 TDATA(mid) 與欲找尋的資料項 KEY, 比較的結果有下列三種可能 : 1. 若 KEY = TDATA(mid), 則欲找尋的資料項已經找到 ; 2. 若 KEY > TDATA(mid), 則設定 low mid + 1( 即 KEY 必在表格下半部 ); 3. 若 KEY < TDATA(mid), 則設定 high mid - 1( 即 KEY 必在表格上半部 ) 依此方式進行, 在第二次比較時, TDATA(mid) = 52H(KEY), 因此結束 林銘波編著 --- 全華科技圖書公司 7.17 林銘波編著 --- 全華科技圖書公司 7.18

演算法 : 二分搜尋 輸入 : 欲搜尋的資料陣列 TDATA 與資料項 KEY 輸出 : 資料項 KEY 在資料陣列 TDATA 中的指標 (index) 1. 設定搜尋範圍的下限 low 為 0, 上限 high 為 N - 1(N 為 TDATA 所包含 的資料項數目 ), 並設定指標 search 為 -1( 先假設找不到 ); 2. WHILE (low high) DO 2.1 計算 mid = (high + low)/2 ; END 2.2 IF KEY = TDATA(mid) THEN 設定 search = mid 並結束 2.3 IF KEY < TDATA(mid) THEN 設定 high = mid - 1 ELSE 設定 low = mid + 1 {WHILE} END { } 林銘波編著 --- 全華科技圖書公司 7.19 1 ;ex7.2-4.a51 0008 3 ARRAYS EQU 08H ;size of tdata 0030 4 KEY: DS 1 ;key value 0031 5 KINDEX: DS 1 ;index of key 0032 6 LOPTR: DS 1 ;low bound 0033 7 HIPTR: DS 1 ;high bound 0034 8 TDATA: DS ARRAYS ;testing data 9 ; 10 ;BINARY search algorithm 11 ; ---- 12 CSEG AT 0000H 13 ;setup both low and high pointers 0000 753234 14 BSEARCH: MOV LOW LOPTR,#TDATA 0003 75333B 15 MOV LOW HIPTR,#TDATA+ARRAYS-1 0006 E533 16 CONT: MOV A,LOW HIPTR ;get lower bound 0008 C3 17 CLR C ;clear carry flag 0009 9532 18 SUBB A,LOW LOPTR ;if low <= high 000B 401B 19 JC NOTFOUND ;no, has done 000D E533 20 MOV A,LOW HIPTR ;compute mid 000F 2532 21 ADD A,LOW LOPTR ; <- (low +high)/2 林銘波編著 --- 全華科技圖書公司 7.20 0011 C3 22 CLR C ;clear carry 0012 13 23 RRC A ;divide by two 0013 F9 24 MOV R1,A ;R1 = mid 0014 C3 25 CLR C ;clear carry 0015 E530 26 MOV A,LOW KEY 0017 97 27 SUBB A,@R1 ;compare key with the 0018 4008 28 JC BELOW ;middle item 001A 6010 29 JZ FOUND0 001C 8932 30 MOV LOW LOPTR,R1;if key1>array[r1] 001E 0532 31 INC LOW LOPTR ;then low <- mid + 1 0020 80E4 32 SJMP CONT 0022 8933 33 BELOW: MOV LOW HIPTR,R1;if key1<array[r1] 0024 1533 34 DEC LOW HIPTR ;high <- mid - 1 0026 80DE 35 SJMP CONT 0028 74FF 36 NOTFOUND: MOV A,#-1;if fnot found,kindex=-1 002A 8004 37 SJMP FOUND 002C C3 38 FOUND0: CLR C ;else adjust the KINDEX 002D E9 39 MOV A,R1 002E 9434 40 SUBB A,#TDATA 0030 F531 41 FOUND: MOV LOW KINDEX,A 0032 22 42 RET 43 END 林銘波編著 --- 全華科技圖書公司 7.21 基本乘法運算方法 1. 連續相加的方式 2. 使用乘法指令 3. 移位相加的方式 林銘波編著 --- 全華科技圖書公司 7.22 移位相加乘法運算 移位相加乘法運算 乘數 1 0 1 0 被乘數 1 1 0 1 0 0 0 0 0 0 0 0 + 1 0 1 0 0 0 0 0 1 0 1 0 + 0 0 0 0 0 0 0 0 1 0 1 0 + 1 0 1 0 0 0 1 1 0 0 1 0 + 1 0 1 0 1 0 0 0 0 0 1 0 Y X P 0 = 0 ( 部分積 ) P 1 = P 0 + X 0 Y P 2 = P 1 + 2X 1 Y P 3 = P 2 + 2 2 X 2 Y P 4 = P 3 + 2 3 X 3 Y = ( 乘積 ) 演算法 : 移位相加乘法運算輸入 : 待相乘的兩個 n 位元數目 ( 乘數與被乘數 ) 輸出 : 乘積 1. 載入被乘數於暫存器 Q 內, 乘數於暫存器 M 中, 清除暫存器 A 為 0, 並設定 COUNT 為 n ; 2.1 右移暫存器 A:Q 一個位元位置, 使其 LSB 進入進位旗號位元 CY 內 ; 2.2 IF 進位旗號位元 CY == 1 THEN 執行 A = A + M ; 2.3 計數器 COUNT 減 1 UNTIL COUNT ==0 3. 右移暫存器 A:Q 一個位元位置 END { 移位相加乘法運算演算法 } 林銘波編著 --- 全華科技圖書公司 7.23 林銘波編著 --- 全華科技圖書公司 7.24

使用乘法運算指令 MUL 乘法運算 ---Booth 演算法 8 8 X Y= ( a 2 + b) ( c 2 + d ) 16 8 = ac 2 + ( ad + bc) 2 + bd B B + B A a b MULTER+1 MULTER c d MULTEND+1 MULTEND B A A a*d A b*c a*c RESULT+3 RESULT+2 RESULT+1 RESULT b*d 演算法 : Booth 2 補數乘法運算輸入 : 待相乘的兩個 n 位元 2 補數數目 ( 乘數與被乘數 ) 輸出 : 乘積 1. 載入被乘數於暫存器 Q 內, 乘數於暫存器 M 中, 清除暫存器 A 與進位旗號位元 CY 為 0, 並設定 COUNT 為 n ; 2.1 IF Q(0): CY == 01 THEN 執行 A = A + M ; 2.2 IF Q(0): CY == 10 THEN 執行 A = A - M ; 2.3 右移暫存器 A:Q 一個位元位置, 使其 LSB 進入進位旗號位元 CY 內 ; 2.4 計數器 COUNT 減 1 END { Booth 2 補數乘法運算演算法 } 林銘波編著 --- 全華科技圖書公司 7.25 林銘波編著 --- 全華科技圖書公司 7.26 乘法運算 ---Booth 演算法 A Q Q(0) CF Q = 47H 0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 1 0 M = 23H - 0 0 1 0 0 0 1 1 09B5H COUNT 8 1 1 0 1 1 1 0 1 1 1 1 0 1 1 1 0 1 0 1 0 0 0 1 1 1 7 右移 A:Q 1 1 1 1 0 1 1 1 0 1 0 1 0 0 0 1 1 6 右移 A:Q 1 1 1 1 1 0 1 1 1 0 1 0 1 0 0 0 1 5 右移 A:Q + 0 0 1 0 0 0 1 1 0 0 0 1 1 1 1 0 0 0 0 0 1 1 1 1 0 1 0 1 0 1 0 0 0 4 右移 A:Q 0 0 0 0 0 1 1 1 1 0 1 0 1 0 1 0 0 3 右移 A:Q 0 0 0 0 0 0 1 1 1 1 0 1 0 1 0 1 0 2 右移 A:Q - 0 0 1 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 1 1 0 1 0 1 0 1 1 右移 A:Q + 0 0 1 0 0 0 1 1 0 0 0 1 0 0 1 1 0 0 0 0 1 0 0 1 1 0 1 1 0 1 0 1 0 0 右移 A:Q 除數 M 除數 部分積 A 被除數 Q 計算過程 ( 餘數 ) ( 商 ) 結果 林銘波編著 --- 全華科技圖書公司 7.27 林銘波編著 --- 全華科技圖書公司 7.28 演算法 : 恢復式除法運算輸入 : 待相除的兩個 n 位元數目 ( 除數與被除數 ) 輸出 : 商數與餘數 1. 載入被除數於暫存器 Q 內, 除數於暫存器 M 中, 清除暫存器 A 為 0, 並設定 COUNT 為 n ; 2.1 左移暫存器 A:Q 一個位元位置 ; 2.2 計算 A = A - M ; 2.3 IF A < 0 THEN 執行 A = A + M 並清除 Q(0) 為 0 ELSE 設定 Q(0) 為 1 ; 2.4 計數器 COUNT 減 1 END { 恢復式除法運算演算法 } 除數 (M) 00000101 A 被除數 (Q) COUNT 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 1 1 1 1 1 0 1 1 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 1 1 1 1 1 0 1 1 8 7 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 6 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 5 0 林銘波編著 --- 全華科技圖書公司 7.29 林銘波編著 --- 全華科技圖書公司 7.30

1 1 1 1 1 1 0 1 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 4 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 3 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 2 A > 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 A > 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 餘數商數 1 林銘波編著 --- 全華科技圖書公司 7.31 A > 0 演算法 : 非恢復式除法運算輸入 : 待相除的兩個 n 位元數目 ( 除數與被除數 ) 輸出 : 商數與餘數 1. 載入被除數於暫存器 Q 內, 除數於暫存器 M 中, 清除暫存器 A 為 0, 並設定 COUNT 為 n - 1 ; 2. 左移暫存器 A:Q 一個位元位置 ; 3. 計算 A = A - M ; 4. REPEAT 4.1 IF A < 0 THEN 執行下列三個動作 : 清除 Q(0) 為 0 ; 左移暫存器 A:Q 一個位元位置 ; A = A + M ; 林銘波編著 --- 全華科技圖書公司 7.32 ELSE 執行下列三個動作 : 設定 Q(0) 為 1 ; 左移暫存器 A:Q 一個位元位置 ; A = A - M ; 4.2 計數器 COUNT 減 1 UNTIL COUNT ==0 5. IF A < 0 THEN 清除 Q(0) 為 0 並計算 A = A + M ; ELSE 設定 Q(0) 為 1 ; END { 非恢復式除法運算演算法 } 除數 (M) 00000101 A 被除數 (Q) COUNT 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 8 1 1 1 1 1 0 1 1 0 1 0 0 1 1 0 0 7 A < 0 1 1 1 1 0 1 1 0 1 0 0 1 1 0 0 0 0 1 1 1 1 1 0 1 1 1 0 0 1 1 0 0 0 6 1 1 1 1 0 1 1 1 0 0 1 1 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 1 1 0 0 0 0 5 1 1 1 1 1 0 0 0 0 1 1 0 0 0 0 0 0 A < 0 A < 0 林銘波編著 --- 全華科技圖書公司 7.33 林銘波編著 --- 全華科技圖書公司 7.34 1 1 1 1 1 1 0 1 0 1 1 0 0 0 0 0 4 A < 0 1 1 1 1 1 0 1 0 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 3 A < 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 2 A > 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 A > 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 A > 0 餘數商數 1 林銘波編著 --- 全華科技圖書公司 7.35