專題3程序設計oPPT課件_第1頁
專題3程序設計oPPT課件_第2頁
專題3程序設計oPPT課件_第3頁
專題3程序設計oPPT課件_第4頁
專題3程序設計oPPT課件_第5頁
已閱讀5頁,還剩48頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第 4 章 匯編語言程序設計 第第4章章 匯編言語程序設計簡介匯編言語程序設計簡介 4.1 程序設計與匯編程序設計與匯編 4.2 匯編言語程序設計匯編言語程序設計 4.3 適用程序舉例適用程序舉例第 4 章 匯編語言程序設計 4.1 程序設計與匯編程序設計與匯編 一、程序設計步驟一、程序設計步驟 分析確定算法分析確定算法流程圖流程圖源代碼源代碼調試仿真調試仿真二、匯編與反匯編二、匯編與反匯編 匯編言語匯編言語機器言語機器言語 手工手工 機器機器第 4 章 匯編語言程序設計 三、偽指令三、偽指令 1、 匯編起始指令匯編起始指令 ORG 指令格式為指令格式為: ORG nn 該指令的作用是指明后面

2、的程序或數(shù)據(jù)塊的起始地址該指令的作用是指明后面的程序或數(shù)據(jù)塊的起始地址, 它總是出如今每段源程序或數(shù)據(jù)塊的開場。它總是出如今每段源程序或數(shù)據(jù)塊的開場。 式中式中, nn為為 16 位地址位地址, 匯編時匯編時nn確定了此語句后面第一條指令或第一個數(shù)確定了此語句后面第一條指令或第一個數(shù)據(jù)的地址據(jù)的地址,以后的源程序或數(shù)據(jù)塊就依次延續(xù)存放在以后的地以后的源程序或數(shù)據(jù)塊就依次延續(xù)存放在以后的地址內址內, 直到遇到另一個直到遇到另一個ORG指令為止。指令為止。 第 4 章 匯編語言程序設計 例: ORG 2000H MOV SP, 60H MOV R0, 2FH MOV R2, 0FFH ORG偽指令

3、闡明其后面程序的目的代碼在存儲器中存放的起始地址是2000H, 即 存儲器地址 目的程序 2000H 75 81 60 2019H 78 2F 2019H 7A FF 第 4 章 匯編語言程序設計 2、等值指令、等值指令EQU 指令格式指令格式: 字符稱號字符稱號 EQU 數(shù)字或匯編符號數(shù)字或匯編符號 功能功能: 使指令中的字符稱號等價于給定的數(shù)字或匯編符號。使指令中的字符稱號等價于給定的數(shù)字或匯編符號。 運用等值指令可給程序的編制、調試、修正帶來方便運用等值指令可給程序的編制、調試、修正帶來方便, 假設假設在程序中要多次運用到某一地址在程序中要多次運用到某一地址,由由EQU指令將其賦值給一個

4、指令將其賦值給一個字符稱號字符稱號, 一旦需求對其進展變動一旦需求對其進展變動, 只需改動只需改動EQU命令后面的數(shù)命令后面的數(shù)字即可字即可, 而不需求對程序中涉及到該地址的一切指令逐句進展而不需求對程序中涉及到該地址的一切指令逐句進展修正。修正。 但要留意但要留意, 由由 EQU等值的字符稱號必需先賦值后運用等值的字符稱號必需先賦值后運用, 且在同一個源程序中且在同一個源程序中, 同一個標號只能賦值一次。同一個標號只能賦值一次。 例例: PA8155 EQU 8001H;即給標號;即給標號PA8155賦值為賦值為8001H。 第 4 章 匯編語言程序設計 3、 定義字節(jié)指令定義字節(jié)指令DB

5、指令格式指令格式: 標號標號: DB 8位二進制數(shù)表位二進制數(shù)表 功能功能: 把把 8 位二進制數(shù)表依次存入從標號開場的延續(xù)的位二進制數(shù)表依次存入從標號開場的延續(xù)的存儲單元中。存儲單元中。 格式中格式中, 標號區(qū)段可有可無標號區(qū)段可有可無, DB指令之后的指令之后的 8 位二進制位二進制數(shù)表是字節(jié)常數(shù)或用逗號隔開的字節(jié)串數(shù)表是字節(jié)常數(shù)或用逗號隔開的字節(jié)串, 也可以是用引號括也可以是用引號括起來的起來的ASCII碼字符串碼字符串 (一個一個 ASCII字符相當于一個字節(jié)字符相當于一個字節(jié))。 例例: 第 4 章 匯編語言程序設計 ORG 1000HBUF1: DB 38H, 7FH, 80HBU

6、F2: DB 45H, 66H ORG偽指令指定了標號BUF1的地址為1000H, 而DB偽指令是將其后的二進制數(shù)表38H, 7FH, 80H依次存放在1000H, 1001H, 1002H 3 個延續(xù)單元之中, BUF2也是一個標號, 其地址與前一條偽指令延續(xù), 即1003H, 1004H地址單元中依次存放 45H, 66H。 第 4 章 匯編語言程序設計 4、 定義字指令定義字指令DW 指令格式指令格式: 標號標號: DW 16 位數(shù)據(jù)表位數(shù)據(jù)表 該指令的功能與該指令的功能與DB類似類似, 區(qū)別僅在于從指定地址開場存區(qū)別僅在于從指定地址開場存放的是指令中的放的是指令中的 16 位數(shù)據(jù)位數(shù)據(jù)

7、, 而不是字節(jié)串。每個而不是字節(jié)串。每個 16 位數(shù)據(jù)位數(shù)據(jù)要占兩個存儲單元要占兩個存儲單元, 高高8 位先存位先存, 低低 8 位后存位后存, 這和這和MCS -51指指令中的令中的16位數(shù)據(jù)存放順序是一致的。位數(shù)據(jù)存放順序是一致的。 第 4 章 匯編語言程序設計 5、 匯編終了指令匯編終了指令END 指令格式指令格式: 標號標號: END 地址或標號地址或標號 格式中標號以及格式中標號以及END后面的地址或標號可有可無。后面的地址或標號可有可無。 功能功能: 提供匯編終了標志。匯編程序遇到提供匯編終了標志。匯編程序遇到 END后就停后就停頓匯編頓匯編, 對對 END以后的語句不予處置以后的

8、語句不予處置, 故故 END應放在程序應放在程序的終了處。的終了處。 第 4 章 匯編語言程序設計 4.2 匯編言語程序設計匯編言語程序設計 4.2.1 順序程序設計順序程序設計 例例 1 兩個雙字節(jié)數(shù)相加。兩個雙字節(jié)數(shù)相加。 設有兩個設有兩個16位的雙字節(jié)數(shù),低位的雙字節(jié)數(shù),低8位分別存放在片內位分別存放在片內20H、30H單元中,高單元中,高8位分別存放在片內位分別存放在片內21H、31H單元中,求這單元中,求這兩個數(shù)的和,結果存放在兩個數(shù)的和,結果存放在22H、21H、20H單元中。單元中。 第 4 章 匯編語言程序設計 ORG0030H ;設置程序存放的起始地址MOV22H,#00H

9、;22H單元清零MOVA,20H ;20H中的低 8位數(shù)送入AADDA,30H ;兩個數(shù)的低8位相加MOV20H,A ;低8位相加的結果送入20H中MOVA,21H ;21H中的高8位數(shù)送入A中ADDC A,31H ;兩數(shù)高8位數(shù)相加并加低8位進位MOV21H,A ;高8位相加的結果送入21H中CLRA ;A清零ADDC A,#00H ;加上高位進位MOV22H,A ;保管最高位進位RET第 4 章 匯編語言程序設計 例例 2 將兩個半字節(jié)數(shù)合并成一個一字節(jié)數(shù)。將兩個半字節(jié)數(shù)合并成一個一字節(jié)數(shù)。 設內部設內部RAM 40H, 41H單元中分別存放著單元中分別存放著 8 位二進制數(shù)位二進制數(shù) 要

10、求取出兩個單元中的低半字節(jié)要求取出兩個單元中的低半字節(jié), 并成一個字節(jié)后并成一個字節(jié)后, 存入存入 50H單元中。單元中。 程序如下程序如下: START: MOV R1, 40H ; 設置R1為數(shù)據(jù)指針MOV A, R1 ; 取出第一個單元中的內容ANL A, 0FH ; 取第一個數(shù)的低半字節(jié)SWAP A ; 移至高半字節(jié)INC R1; 修正數(shù)據(jù)指針XCH A, R1 ; 取第二個單元中的內容ANL A, 0FH ; 取第二個數(shù)的低半字節(jié)ORL A, R1 ; 拼字MOV 50H, A ; 存放結果RET ANL40H,#0FHANL41H,#0FHMOV A,40HSWAP AORLA,4

11、1HMOV 50H,A第 4 章 匯編語言程序設計 4.2.2 分支程序設計分支程序設計 圖 4.1 分支構造框圖(a) 單分支流程; (b) 多分支流程 第 4 章 匯編語言程序設計 例例 3 x, y均為均為8位二進制數(shù)位二進制數(shù), 設設 x存入存入R0, y存入存入R1, 求解求解: 011y000 xxx第 4 章 匯編語言程序設計 程序如下: START: CJNE R0, 00H, SUL1; R0中的數(shù)與00比較 不等轉移 MOV R1, 00H; 相等, R1 0 SJMP SUL2 SUL1: JC NEG ; 兩數(shù)不等, 假設R00, 那么 R101H SJMP SUL2

12、NEG: MOV R1, 0FFH ;R00, 那么 R1=0FF SUL2: RET 第 4 章 匯編語言程序設計 例 4 比較兩個無符號數(shù)的大小。 設外部 RAM 的存儲單元 ST1和 ST2中存放兩個不帶符號的二進制數(shù), 找出其中的大數(shù)存入外部 RAM 中的ST3單元中。 第 4 章 匯編語言程序設計 程序如下: ORG 1000H ST1 EQU 2000H ST2 EQU 2100H ST3 EQU 2200H START: CLR C ; 清零Cy MOV DPTR, ST1 ; 第一個數(shù)的指針 MOVX A, DPTR ; 取第一個數(shù) MOV R2, A ; 保管 MOV DPT

13、R, ST2 ; 第二個數(shù)的指針 MOVX A, DPTR ; 取第二個數(shù) CLR C 第 4 章 匯編語言程序設計 SUBB A, R2; 兩數(shù)比較JNC BIG1 ; 假設第二個數(shù)大, 那么轉XCH A, R2; 第一個數(shù)大BIG0: MOV DPTR, ST3 MOVX DPTR, A ; 存大數(shù)RETBIG1: MOVX A, DPTR; 第二個數(shù)大SJMP BIG0RET 第 4 章 匯編語言程序設計 散轉程序散轉程序 散轉程序是分支程序的一種, 它可根據(jù)運算結果或輸入數(shù)據(jù)將程序轉入不同的分支。 JMP A+DPTR 該指令把8 位無符號數(shù)與 16 位數(shù)據(jù)指針內容相加, 并把結果裝入

14、PC, 控制程序轉向目的地址去執(zhí)行。此指令的特點在于, 轉移的目的地址是在程序運轉過程中動態(tài)地確定的。 目的地址由 DPTR的內容決議分支轉移程序的首地址, 由累加器A的內容來動態(tài)選擇其中的某一個分支轉移程序。 第 4 章 匯編語言程序設計 例例 11 根據(jù)任務存放器根據(jù)任務存放器R0 內容的不同內容的不同, 使程序轉入相使程序轉入相應的分支。應的分支。 (R0)=0 對應的分支程序標號為對應的分支程序標號為PR0; (R0)=1 對應的分支程序標號為對應的分支程序標號為PR1; (R0)=N 對應的分支程序標號為對應的分支程序標號為PRN。 第 4 章 匯編語言程序設計 程序如下: LP0:

15、 MOV DPTR, TAB ; 取表頭地址 MOV A, R0 ADD A, R0 ; R0內容乘以2 JNC LP1 ; 無進位轉移 INC DPH ; 加進位位LP1: JMP A+DPTR; 跳至散轉表中相應位置 TAB: AJMP PR0 AJMP PR1 AJMP PRn 第 4 章 匯編語言程序設計 本例程序僅適用于散轉表首地址TAB和處置程序入口地址 PR0, PR1, , PRn在同一個 2 KB范圍的存儲區(qū)內的情形。假設超出 2 KB范圍可在分支程序入口處安排一條長跳轉指令, 可采用如下程序: MOV DPTR, TABMOV A, R0 MOV B, 03H ; 長跳轉指

16、令占 3 個字節(jié)MUL ABXCH A, B 第 4 章 匯編語言程序設計 ADD A, DPH MOV DPH, A XCH A, B JMP A+DPTR; 跳至散轉表中相應的位置 TAB: LJMP PR0; 跳至不同的分支 LJMP PR1 LJMP PRn 第 4 章 匯編語言程序設計 4.2.3 循環(huán)程序設計循環(huán)程序設計 第 4 章 匯編語言程序設計 循環(huán)程序普通由四個主要部分組成: (1) 初始化部分: 為循環(huán)程序做預備, 如規(guī)定循環(huán)次數(shù)、 給各變量和地址指針預置初值。 (2) 處置部分: 為反復執(zhí)行的程序段, 是循環(huán)程序的實體, 也是循環(huán)程序的主體。 (3) 循環(huán)控制部分: 這

17、部分的作用是修正循環(huán)變量和控制變量, 并判別循環(huán)能否終了, 直到符合終了條件時, 跳出循環(huán)為止。 (4) 終了部分: 這部分主要是對循環(huán)程序的結果進展分析、 處置和存放。 第 4 章 匯編語言程序設計 例 5 任務單元清零。 在運用系統(tǒng)程序設計時, 有時經常需求將存儲器中各部分地址單元作為任務單元, 存放程序執(zhí)行的中間值或執(zhí)行結果, 任務單元清零任務經常放在程序的初始化部分中。 設有50個任務單元, 其首址為外部存儲器8000H單元, 那么其任務單元清零程序如下: 第 4 章 匯編語言程序設計 CLEAR: CLR A MOV DPTR, 8000H ; 任務單元首址送指針 MOV R2, 5

18、0 ; 置循環(huán)次數(shù)CLEAR1: MOVX DPTR, A INC DPTR ; 修正指針 DJNZ R2, CLEAR1; 控制循環(huán) RET 第 4 章 匯編語言程序設計 例例6 設在內部設在內部 RAM的的BLOCK單元開場處有長度為單元開場處有長度為 LEN個的無符號數(shù)據(jù)塊個的無符號數(shù)據(jù)塊, 試編一個求和程序試編一個求和程序, 并將和存入內并將和存入內部部 RAM的的 SUM單元設和不超越單元設和不超越 8 位。位。 BLOCK EQU 20H LEN EQU 30H SUM EQU 40HSTART: CLR A ; 清累加器A MOV R2, LEN; 數(shù)據(jù)塊長度送R2 MOV R1

19、, BLOCK ; 數(shù)據(jù)塊首址送R1 LOOP: ADD A, R1 ; 循環(huán)加法 INC R1; 修正地址指針 DJNZ R2, LOOP ; 修正計數(shù)器并判別 MOV SUM, A; 存和 RET 第 4 章 匯編語言程序設計 多重循環(huán)多重循環(huán) 例例 7、10 秒延時程序。秒延時程序。 延時程序與延時程序與 執(zhí)行指令的時間有關執(zhí)行指令的時間有關, 假設運用假設運用 6 MHz晶振晶振, 一個機器周期為一個機器周期為 2 s, 計算出一條指令以致一個循環(huán)所需求的計算出一條指令以致一個循環(huán)所需求的執(zhí)行時間執(zhí)行時間, 給出相應的循環(huán)次數(shù)給出相應的循環(huán)次數(shù), 便能到達延時的目的。便能到達延時的目的

20、。10 秒秒延時程序如下延時程序如下: DELAY: MOV R5, 100 DEL0: MOV R6, 200 DEL1: MOV R7, 248 DEL2: DJNZ R7, DEL2 DJNZ R6, DEL1 DJNZ R5, DEL0 RET 第 4 章 匯編語言程序設計 上例程序中采用了多重循環(huán)程序, 即在一個循環(huán)體中又包含了其它的循環(huán)程序, 這種方式是實現(xiàn)延時程序的常用方法。 運用多重循環(huán)時, 必需留意: 1循環(huán)嵌套, 須層次清楚, 不允許有內外層循環(huán)交叉。 2外循環(huán)可一層層向內循環(huán)進入, 終了時由里往外一層層退出。 3 內循環(huán)可以直接轉入外循環(huán), 實現(xiàn)一個循環(huán)由多個條件控制的循

21、環(huán)構造方式。 第 4 章 匯編語言程序設計 例10 在內部 RAM中從 50H單元開場的延續(xù)單元依次存放了一串字符, 該字符串以回車符為終了標志, 要求測試該字符串的長度。 程序如下: START: MOV R2, 0FFH MOV R0, 4FH ; 數(shù)據(jù)指針R0置初值 LOOP: INC R0 INC R2 CJNE R0, 0DH, LOOP RET 第 4 章 匯編語言程序設計 4.2.5 子程序和參數(shù)傳送子程序和參數(shù)傳送 一、 子程序的概念 通常把這些根本操作功能編制為程序段作為獨立的子程序, 以供不同程序或同一程序反復調用。在程序中需求執(zhí)行這種操作的地方放置一條調用指令, 當程序執(zhí)

22、行到調用指令, 就轉到子程序中完成規(guī)定的操作, 并前往到原來的程序繼續(xù)執(zhí)行下去。 第 4 章 匯編語言程序設計 二、二、 子程序的調用子程序的調用 調用子程序的指令有調用子程序的指令有“ACALL和和“LCALL, 執(zhí)行調用執(zhí)行調用指令時指令時, 先將程序地址指針先將程序地址指針PC改動改動“ACALL加加 2, “LCALL加加 3, 然后然后 PC值壓入堆棧值壓入堆棧, 用新的地址值替代。用新的地址值替代。執(zhí)行前往指令時執(zhí)行前往指令時, 再將再將 PC值彈出。值彈出。 子程序調用中子程序調用中, 主程序應先把有關的參數(shù)存入商定的位置主程序應先把有關的參數(shù)存入商定的位置, 子程序在執(zhí)行時子程

23、序在執(zhí)行時, 可以從商定的位置獲得參數(shù)可以從商定的位置獲得參數(shù), 當子程序執(zhí)行當子程序執(zhí)行完完, 將得到的結果再存入商定的位置將得到的結果再存入商定的位置, 前往主程序后前往主程序后, 主程序可主程序可以從這些商定的位置上獲得需求的結果以從這些商定的位置上獲得需求的結果, 這就是參數(shù)的傳送。這就是參數(shù)的傳送。 第 4 章 匯編語言程序設計 4.3.1 查表程序設計查表程序設計 查表程序是一種常用程序, 它廣泛運用于 LED顯示控制、 打印機打印控制、數(shù)據(jù)補償、數(shù)值計算、轉換等功能程序中, 這類程序具有簡單、執(zhí)行速度快等特點。 所謂查表法, 就是預先將滿足一定精度要求的表示變量與函數(shù)值之間關系的

24、一張表求出, 然后把這張表存于單片機的程序存儲器中, 這時自變量值為單元地址, 相應的函數(shù)值為該地址單元中的內容。查表, 就是根據(jù)變量 X在表格中查找對應的函數(shù)值 Y, 使 Y=f(X)。 第 4 章 匯編語言程序設計 指令系統(tǒng)中, 有兩條查表指令: MOVC A, A+PC MOVC A, A+DPTR 第 4 章 匯編語言程序設計 例例 一個十六進制數(shù)存放在內部一個十六進制數(shù)存放在內部 RAM 的的 HEX單元的低單元的低 4 位中位中, 將其轉換成將其轉換成ASCII碼并送回碼并送回 HEX單元。單元。 十六進制十六進制 09的的ASCII碼為碼為 30H39H, AF的的ASCII碼為

25、碼為41H46H, ASCII碼表格的首地址為碼表格的首地址為ASCTAB。編。編程如下程如下: ORG 1000H HEXASC: MOV A, HEX ANL A, 0FH ADD A, 3; 修正指針 MOVC A, A+PC MOV HEX, A RET 第 4 章 匯編語言程序設計 ASCTAB: DB 30H, 31H, 32H, 33H, 34H DB 35H, 36H, 37H, 38H, 39H DB 41H, 42H, 43H, 44H, 45H DB 46H 在這個程序中, 查表指令MOVC A, A+PC到表格首地址有兩條指令, 占用 3 個字節(jié)地址空間, 故修正指針應

26、加 3。 第 4 章 匯編語言程序設計 例例 設有一個巡回檢測報警安裝設有一個巡回檢測報警安裝, 需對需對 96 路輸入進展控路輸入進展控制制, 每路有一個額定的最大值每路有一個額定的最大值, 是雙字節(jié)數(shù)。當檢丈量大于該是雙字節(jié)數(shù)。當檢丈量大于該路對應的最大值時路對應的最大值時, 就越限報警。假設就越限報警。假設R2 為保管檢測路數(shù)的為保管檢測路數(shù)的存放器存放器, 其對應的最大額定值存放于其對應的最大額定值存放于 31H和和 32H單元中。單元中。 查查找最大額定值的程序如下找最大額定值的程序如下: FMAX: MOV A, R2 ADD A, R2 ; 表中一個額定值為2個字節(jié) MOV 31

27、H, A MOV DPTR, TAB ; 表首址 第 4 章 匯編語言程序設計 MOVC A, A+DPTR; 查表讀取第一個字節(jié) XCH A, 31H ; 第一個字節(jié)內容存入31H INC DPTR MOVC A, A+DPTR; 查表讀取第二個字節(jié) MOV 32H, A ; 第二字節(jié)的內容存入32H TAB: DW 1230H, 1450H, . DW 2230H, 2440H, . DW 3120H, 3300H, . 第 4 章 匯編語言程序設計 例 在一個溫度檢測系統(tǒng)中, 溫度模擬信號由 10 位A/D輸入。將A/D結果轉換為對應溫度值, 可采用查表方法實現(xiàn)。 先由實驗測試出整個溫度

28、量程范圍內的A/D轉換結果, 把A/D轉換結果000H3FFH所對應的溫度值組織為一個表存儲在程序存儲器中, 那么就可以根據(jù)檢測到的模擬量的A/D轉換值查找出相應的溫度值。 設測得的A/D轉換結果已存入 20H, 21H單元中高字節(jié)在20H中, 低字節(jié)在21H中, 查表得到的溫度值存放在22H,23H單元高字節(jié)在 22H中, 低字節(jié)在23H中。 第 4 章 匯編語言程序設計 程序如下: FTMP: MOV DPTR, TAB ; DPTR表首地址 MOVA, 21H ; 20H21H2CLRCRLCAMOV21H, AMOVA, 20HRLCAMOV20H, AMOVA, 21H ; 表首地址

29、+偏移量 ADD A, DPLMOV DPL, A第 4 章 匯編語言程序設計 MOV A, 20HADDC A, DPHMOV DPH, ACLR AMOVC A, A+DPTR; 查表得溫度值高位字節(jié)MOV 22H, ACLRAINC DPTRMOVC A, A+DPTR; 查表得溫度值低位字節(jié)MOV 23H, ARETTAB: DW 第 4 章 匯編語言程序設計 4.3.2數(shù)制轉換數(shù)制轉換 例例 將一個字節(jié)二進制數(shù)轉換成將一個字節(jié)二進制數(shù)轉換成 3 位非緊縮型位非緊縮型BCD碼。碼。 設一個字節(jié)二進制數(shù)在內部設一個字節(jié)二進制數(shù)在內部RAM 40H單元單元, 轉換結果放轉換結果放入內部入內

30、部 RAM 50H, 51H, 52H單元中高位在前單元中高位在前, 程序如下程序如下: HEXBCD: MOV A, 40H MOV B, 100 DIV AB MOV 50H, A MOV A, 10 XCH A, B DIV AB MOV 51H, A MOV 52H, B RET 第 4 章 匯編語言程序設計 例例 設設4位位BCD碼依次存放在內存碼依次存放在內存RAM中中40H43H單元單元的低的低4位位, 高高4位都為位都為0, 要求將其轉換為二進制數(shù)要求將其轉換為二進制數(shù), 結果存入結果存入 R2R3 中。中。 一個十進制數(shù)可表示為一個十進制數(shù)可表示為: Dn10n +Dn-11

31、0n-1 + + D0100 =Dn10+Dn-110+Dn-210+D0當當n=3時時, 上式可表示為上式可表示為: D310+D210+D110+D0 第 4 章 匯編語言程序設計 BCDHEX: MOV R0, 40H ; R0指向最高位地址MOV R1, 03 ; 計數(shù)值送R1MOV R2, 0 ; 存放結果的高位清零MOV A, R0MOV R3, A ;初始化 LOOP: MOV A, R3MOV B, 10MUL ABMOV R3, A ; (R3)10 的低 8 位送R3MOV A, BXCH A, R2 ; (R3)10的高 8 位暫存R2MOV B, 10 第 4 章 匯編語言程序設計 MULAB ADD A, R2 MOV R2, A ; R210+ R310高 8 位送R2 INC R0 ; 取下一個 BCD數(shù) MOV A, R3;加低位 ADD A, R0 MOV R3, A MOV A, R2;處置進位 ADDC A, 0 MOVR2, A DJNZ R1, LOOP RET 第 4 章 匯編語言程序設計 例例 在外部在外部 RAM中中,

溫馨提示

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

評論

0/150

提交評論