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

正文內(nèi)容

80c51的程序設(shè)計(jì)-預(yù)覽頁(yè)

 

【正文】 44H 747F7944 匯編程序能識(shí)別并對(duì)匯編過(guò)程進(jìn)行某種控制的 匯編命令 。 源程序的匯編 匯編語(yǔ)言源程序轉(zhuǎn)換為單片機(jī)能執(zhí)行的機(jī)器碼形式的目標(biāo)程序叫匯編。 十六進(jìn)制數(shù) ,末尾以字母 H 標(biāo)識(shí)。 由 1~ 8個(gè) ASCII字符 第 1個(gè)字符必須是字母 ,其余為字母、數(shù)字或其他特定字符 不使用已定義的符號(hào) 后邊必須跟冒號(hào) 操作數(shù) 給指令的操作提供 數(shù)據(jù) 或 地址 。 避免 “死循環(huán),注意循環(huán) 初值 和 結(jié)束 條件 子程序用到的 寄存器內(nèi)容應(yīng)壓棧 保護(hù),并注意堆棧操作的壓入和彈出的平衡; 中斷處理子程序 除了要保護(hù)程序中用到的寄存器外, 還應(yīng)保護(hù)標(biāo)志寄存器 。 程序編制的方法和技巧 本章內(nèi)容: 基本程序結(jié)構(gòu) 源程序的編輯和匯編 常用程序舉例 第 4章 80C51的程序設(shè)計(jì) 程序編制的方法和技巧 一、預(yù)完成任務(wù)的分析 功能 要求 技術(shù) 指標(biāo) 硬件資源和工作環(huán)境 二、進(jìn)行算法的優(yōu)化 速度 內(nèi)存 使用 清晰的流程圖是正確編制應(yīng)用程序的基礎(chǔ)和條件,是一個(gè)良好的編程習(xí)慣 總流程圖 :程序的 邏輯結(jié)構(gòu) ,各程序 模塊間的相互關(guān)系。 模塊化的優(yōu)點(diǎn) 便于程序設(shè)計(jì)和調(diào)試 便于程序優(yōu)化和分工 提高程序閱讀性和可靠性 二、盡量采用循環(huán)結(jié)構(gòu)和子程序 長(zhǎng)度減少、內(nèi)存空間減少。它是匯編語(yǔ)句中唯一不能空缺的部分。 數(shù)據(jù)的表示形式 二進(jìn)制數(shù),末尾以字母 B 標(biāo)識(shí) 十進(jìn)制數(shù),末尾以字母 D 標(biāo)識(shí)或?qū)⒆帜?D省略。如:‘ AB’,‘ 1245’ 源程序的編輯和匯編 源程序的編輯 據(jù)匯編語(yǔ)言規(guī)則,正確使用匯編命令(即 偽指令 ): ORG 0040H MOV A, 7FH MOV R1, 44H END 源程序的編輯與匯編 ORG和 END是兩條偽指令 以“ . ASM”擴(kuò)展名存盤(pán)。 匯編形成兩個(gè)主要文件為:列表文件和目標(biāo)碼文件。 源程序的開(kāi)始,要設(shè)置一條 ORG偽指令來(lái)指定該程序在存儲(chǔ)器中存放的起始位置。 字節(jié)數(shù)據(jù)定義 [標(biāo)號(hào): ] DB 字節(jié)數(shù)據(jù)表 將字節(jié)數(shù)據(jù)表中的數(shù)據(jù)根據(jù)從左到右的順序依次存放在指定的存儲(chǔ)單元中。 常用于存放數(shù)據(jù)表格。 空間定義 [標(biāo)號(hào): ] DS 表達(dá)式 從標(biāo)號(hào)指定的地址單元開(kāi)始,在程序存儲(chǔ)器中保留由表達(dá)式所指定的個(gè)數(shù)的存儲(chǔ)單元,并都填以零值。 位地址符號(hào)定義 符號(hào)名 BIT 位地址表達(dá)式 將位地址賦給指定的符號(hào)名。 一、數(shù)據(jù)傳送 例:內(nèi)部 RAM的 2AH~ 2EH單元中存儲(chǔ)的數(shù)據(jù)如圖所示。編制一段程序,根據(jù)變量值求其平方值,并存入片內(nèi) RAM的 21H單元。 三、簡(jiǎn)單運(yùn)算 對(duì)于多字節(jié)的相加運(yùn)算必須從低位字節(jié)開(kāi)始分字節(jié)進(jìn)行。(程序見(jiàn)下頁(yè)) MOV R0,# 50H ;被加數(shù)的低字節(jié)地址 MOV R1,# 60H ;加數(shù)的低字節(jié)地址 MOV A, R0 ;取被加數(shù)低字節(jié) ADD A, R1 ;加上加數(shù)低字節(jié) MOV R0, A ;保存低字節(jié)相加結(jié)果 INC R0 ;指向被加數(shù)高字節(jié) INC R1 ;指向加數(shù)高字節(jié) MOV A, R0 ;取被加數(shù)高字節(jié) ADDC A, R1 ;加上加數(shù)高字節(jié)(帶進(jìn)位加) MOV R0, A ;存高字節(jié)相加結(jié)果 MOV 00H, C ;保存進(jìn)位 。編制程序,根據(jù) x 的大小求 y并送回原單元。 若晶振頻率為 12MHz,則一個(gè)機(jī)器周期為 1μs。在片內(nèi) RAM中,起始地址為 30H的 8個(gè)單元中存放有 8個(gè)無(wú)符號(hào)數(shù)。對(duì)于升序排序,通過(guò)這種相鄰數(shù)的互換,使小數(shù)向前移動(dòng), 大數(shù)向后移動(dòng) 。 START: CLR 00H ;互換標(biāo)志清 0 MOV R7, 07H ;各次冒泡比較次數(shù) MOV R0, 30H ;數(shù)據(jù)區(qū)首址 LOOP: MOV A, R0 ;取前數(shù) MOV 2BH, A ;暫存 INC R0 MOV 2AH, R0 ;取后數(shù) CLR C SUBB A, R0 ;前數(shù)減后數(shù) JC NEXT ;前數(shù)小于后數(shù),不互換 MOV R0, 2BH DEC R0 MOV R0, 2AH ;兩數(shù)交換 INC R0 ;準(zhǔn)備下一次比較 SETB 00H ;置互換標(biāo)志 NEXT: DJNZ R7, LOOP ;進(jìn)行下一次比較 JB 00H, START ;進(jìn)行下一輪冒泡 SJMP $ 二、先判斷后執(zhí)行 例 將內(nèi)部 RAM中起始地址為 data的數(shù)據(jù)串傳送到外部RAM中起始地址為 buffer的存儲(chǔ)區(qū)域內(nèi),直到發(fā)現(xiàn)‘ $ ’字符停止傳送。宜將其設(shè)計(jì)成 子程序。而這些單元中的內(nèi)容在調(diào)用結(jié)束后的主程序中仍有用,所以 需要進(jìn)行保護(hù) (即 現(xiàn)場(chǎng)保護(hù) )。 在子程序中實(shí)現(xiàn) SUB1: PUSH PSW ;保護(hù)現(xiàn)場(chǎng) PUSH ACC ; PUSH B ; … … MOV PSW, 10H ;換當(dāng)前工作寄存器組 … … POP B ;恢復(fù)現(xiàn)場(chǎng) POP ACC ; POP PSW ; RET 程序規(guī)范、清晰。設(shè) a, b, c分別存于內(nèi)部 RAM的 30H, 31H, 32H三個(gè)單元中。 例 將 R0和 R1指向的內(nèi)部 RAM 中兩個(gè) 3字節(jié)無(wú)符號(hào)整數(shù)相加,結(jié)果送到由 R0指向的內(nèi)部 RAM中。 例 把內(nèi)部 RAM中 20H單元中的 1個(gè)字節(jié)十六進(jìn)制數(shù)轉(zhuǎn)換為 2位 ASCII碼,存放在 R0指示的兩個(gè)單元中。相加后的結(jié)果要求存放在 DATA2數(shù)據(jù)區(qū)。相減后的結(jié)果要求存放在 DATA2數(shù)據(jù)區(qū) 。 設(shè)地址指針 R0指向十六進(jìn)制數(shù)低位, R2中存放字節(jié)數(shù),轉(zhuǎn)換后地址指針 R0指向十六進(jìn)制數(shù)的高位。 設(shè)( R2R3)為雙字節(jié)二進(jìn)制數(shù),( R4R5R6)為轉(zhuǎn)換完的壓縮型 BCD碼。 編寫(xiě)一段程序,把外部 RAM中 1000H~1030H的內(nèi)容傳送到內(nèi)部 RAM的 30H~60H中。 1編寫(xiě)程序,把累加器 A中的二進(jìn)制數(shù)變換成 3位 BCD碼,并將百、十、個(gè)位數(shù)分別存放在內(nèi)部 RAM的 50H、 51H、 52H
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1