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

正文內(nèi)容

[計算機(jī)]第4章80c51的指令系統(tǒng)與匯編語言程序設(shè)計(完整版)

2024-11-21 23:03上一頁面

下一頁面
  

【正文】 Ri ; ( A) ←→ (( Ri)) 2 半字節(jié)交換指令 XCHD A, Ri ; ( A) 3~0←→ (( Ri)) 3~0 3 累加器高低半字節(jié)交換指令 SWAP A ; ( A) 7~4←→ ( A) 3~0 第 4章 80C51的指令系統(tǒng)與匯編語言程序設(shè)計 例 試編程 , 將外部 RAM1000H單元中的數(shù)據(jù)與內(nèi)部 RAM 6AH單元中的數(shù)據(jù)相互交換 。 第 4章 80C51的指令系統(tǒng)與匯編語言程序設(shè)計 前一條指令是采用 DPTR作為基址寄存器 。 第 4章 80C51的指令系統(tǒng)與匯編語言程序設(shè)計 第 4章 80C51的指令系統(tǒng)與匯編語言程序設(shè)計 A 累加器Dire ct直接尋址Rn寄存器 Data立即數(shù) Ri間接尋址圖 80C51的數(shù)據(jù)傳送方式 訪問外部 RAM的數(shù)據(jù)傳送指令 CPU與外部 RAM或 I/O口進(jìn)行數(shù)據(jù)傳送 , 必須采用寄存器間接尋址的方法 , 并通過累加器 A來傳送 。 如 PSW中的 D3, 又可表示為 。 位地址的表示方式: ( 1) 直接使用位地址 。 第 4章 80C51的指令系統(tǒng)與匯編語言程序設(shè)計 SJMP 54H 無條件相對轉(zhuǎn)移指令 , 是雙字節(jié)指令 。 ( 1) 內(nèi)部 RAM的低 128個單元采用 R0、 R1作為間址寄存器 , 可尋址范圍為 00H~ 7FH單元 。 MOV A, R0 ; ( A) ← ( R0) MOV R2, A ; ( R0) ← ( A) 前一條指令是將 R0寄存器的內(nèi)容傳送到累加器 A, 后一條是把累加器 A中的內(nèi)容傳送到 R2寄存器中 。 Ri:地址指針的寄存器 R0、 R1; data: 8位立即數(shù); data16: 16位立即數(shù); direct:內(nèi)部 RAM的 8位地址; addr11: 11位目的地址; addr16: 16位目的地址; 第 4章 80C51的指令系統(tǒng)與匯編語言程序設(shè)計 rel:補(bǔ)碼形式表示的 8位地址偏移量; bit:位尋址區(qū)或特殊功能寄存器的位地址; :間接尋址方式中間址寄存器的前綴標(biāo)志; C:進(jìn)位標(biāo)志位; ( x) :由 x指定的寄存器或地址單元中的內(nèi)容; (( x)) :由 x寄存器的內(nèi)容作為地址的存儲單元的內(nèi)容; $:當(dāng)前指令的地址; ← :指令操作流程 , 將箭頭右邊的內(nèi)容送到箭頭左邊的單元中 。 以助記符表示的指令就是計算機(jī)的匯編語言指令 。 熟悉 80C51的指令 , 掌握使用匯編語言進(jìn)行程序設(shè)計 。 80C51指令系統(tǒng)概述 指令概述 指令是規(guī)定計算機(jī)進(jìn)行某種操作的命令 。 第 4章 80C51的指令系統(tǒng)與匯編語言程序設(shè)計 指令格式 80C51系列單片機(jī)匯編語言的指令格式如下: [標(biāo)號: ] 操作碼 [操作數(shù) ] [;注釋 ] 標(biāo)號:指令的起始地址 。 第 4章 80C51的指令系統(tǒng)與匯編語言程序設(shè)計 80C51的尋址方式 80C51的指令系統(tǒng)共使用了七種尋址方式: 寄存器尋址 直接尋址 立即尋址 寄存器間址 變址尋址 相對尋址 位尋址 第 4章 80C51的指令系統(tǒng)與匯編語言程序設(shè)計 立即尋址 操作數(shù)在指令中直接給出 。 能實現(xiàn)寄存器尋址方式的寄存器有: R0~RA、 B寄存器和數(shù)據(jù)指針 DPTR。 ( 2) 外部 RAM的寄存器間接尋址有兩種形式:一是采用 R0、 R1作為間址寄存器 , 可尋址范圍為00H~ FFH單元;二是采用 16位的 DPTR作為間址寄存器 , 可尋址外部 RAM的全部 64KB地址空間 。 現(xiàn)假設(shè)此指令所在地址為 2021H, 執(zhí)行此指令時 , PC當(dāng) 前 值 為 2021H+02H , 則 轉(zhuǎn) 移 地 址 為2021H+02H+54H= 2056H。 對于 20H~2FH共 16個單元的 128位 。 數(shù)據(jù)傳送類指令 數(shù)據(jù)傳送類指令的一般功能是把源操作數(shù)傳送到目的操作數(shù),指令執(zhí)行后,源操作數(shù)不變,目的操作數(shù)被源操作數(shù)所代替。 MOVX A, DPTR ; ( A) ← (( DPTR)) MOVX DPTR, A ; (( DPTR)) ← ( A) MOVX A, Ri ; ( A) ← (( Ri)) MOVX Ri, A ; (( Ri)) ← ( A) 前兩條指令是以 DPTR作為間址寄存器 , 其功能是將 DPTR所指定的外部 RAM單元與累加器 A之間傳送數(shù)據(jù) 。 在使用前 , 表格首地址送入 DPTR, 實現(xiàn)在整個 64KB ROM空間向累加器A的數(shù)據(jù)傳送 。 解:數(shù)據(jù)交換指令只能完成累加器 A和內(nèi)部 RAM單元之間的數(shù)據(jù)交換 , 要完成外部 RAM與內(nèi)部RAM之間的數(shù)據(jù)交換 , 需先把外部 RAM中的數(shù)據(jù)取到 A中 , 交換后再送回到外部 RAM中 。 利用進(jìn)位 ( 借位 ) 標(biāo)志 CY, 可進(jìn)行多字節(jié)無符號整數(shù)的加 、 減運(yùn)算 , 利用溢出標(biāo)志可對帶符號數(shù)進(jìn)行補(bǔ)碼運(yùn)算 ,輔助進(jìn)位標(biāo)志則用于 BCD碼運(yùn)算的調(diào)整 。無符號數(shù)用 CY位表示進(jìn)位、溢出(不考慮 ov位),有符號數(shù)用 OV位表示溢出(不考慮 CY位)。 解:由于不存在 16位數(shù)的加法指令 , 所以只能先加低 8位 , 后加高 8位 , 而在加高 8位時要連低位相加的進(jìn)位一起相加 , 編程如下: MOV A, 30H ;取一個加數(shù)的低字節(jié)送 A中 ADD A, 40H ;兩個低字節(jié)數(shù)相加 MOV 50H, A ;結(jié)果送 50H單元 MOV A, 31H ;取一個加數(shù)的高字節(jié)送 A中 ADDC A, 41H ;高字節(jié)數(shù)相加 , 同時加低字節(jié)產(chǎn)生的進(jìn)位 MOV 51H, A ;結(jié)果送 51H單元 第 4章 80C51的指令系統(tǒng)與匯編語言程序設(shè)計 第 4章 80C51的指令系統(tǒng)與匯編語言程序設(shè)計 帶借位減法指令 SUBB A, data SUBB A, direct SUBB A, Rn SUBB A, Ri 功能是將累加器 A中的數(shù)減去源操作數(shù)所指出的數(shù)和進(jìn)位位 CY,其結(jié)果存放在累加器 A中。 本組指令除“ INC A”指令影響 P標(biāo)志外 , 其余指令均不影響PSW標(biāo)志 。 該指令只影響進(jìn)位標(biāo)志 CY。 第 4章 80C51的指令系統(tǒng)與匯編語言程序設(shè)計 例 試編寫程序 , 實現(xiàn) 95+59的 BCD碼加法 、 并將結(jié)果存入 30H、 31H單元 。 第 4章 80C51的指令系統(tǒng)與匯編語言程序設(shè)計 例 A的低 4位送到 P1門的低 4位輸出 ,而 P1的高 4位保持不變 。 ( 1) RL A; A的內(nèi)容左移一位 , 結(jié)果 ( A) =10H RL A ; A的內(nèi)容左移一位 , 結(jié)果 ( A) =20H RL A ; A的內(nèi)容左移一位 , 結(jié)果 ( A) =40H 即左移一位 , 相當(dāng)于原數(shù)乘 2( 原數(shù)小于 80H時 ) 。 第 4章 80C51的指令系統(tǒng)與匯編語言程序設(shè)計 2 絕對轉(zhuǎn)移指令 AJMP addr11 這是一條兩字節(jié)指令 , 其指令格式為: 指令中提供了 11位目的地址 , 其中位 a7a0在第二字節(jié) , a10a8則占據(jù)第一字節(jié)的高 3位 , 而00001是這條指令特有的操作碼 , 占據(jù)第一字節(jié)的低 5位 。 第 4章 80C51的指令系統(tǒng)與匯編語言程序設(shè)計 第 4章 80C51的指令系統(tǒng)與匯編語言程序設(shè)計 RO MA JM PA ddr 11PCPC + 1PC + 22 K 轉(zhuǎn)移范圍( PC + 2 ) 15 ~ 11( PC + 2 ) 15 ~ 11 0000000000011111111111 圖 AJMP指令轉(zhuǎn)移范圍 例 分析下面絕對轉(zhuǎn)移指令的執(zhí)行情況 。 即:目的地址= ( PC) +2+rel rel是一個帶符號的相對偏移量 , 其范圍為 128+127,負(fù)數(shù)表示向后轉(zhuǎn)移 , 正數(shù)表示向前轉(zhuǎn)移 。 JPTAB: AJMP KPRG0 JPTAB: AJMP KPRG0 AJMP KPRG1 AMP KPRG2 AJMP KPRG3 KPRG0: … KPRG1: … HPRG2: … KPRG3: … 第 4章 80C51的指令系統(tǒng)與匯編語言程序設(shè)計 條件轉(zhuǎn)移指令 條件轉(zhuǎn)移指令是指當(dāng)某種條件滿足時 , 轉(zhuǎn)移才進(jìn)行;而條件不滿足時 , 程序就按順序往下執(zhí)行 。 通常在該組指令之后 , 選用以 CY為條件的轉(zhuǎn)移指令 , 則可以判別兩個數(shù)的大小 。 第 4章 80C51的指令系統(tǒng)與匯編語言程序設(shè)計 第 4章 80C51的指令系統(tǒng)與匯編語言程序設(shè)計 例 414試編寫程序 , 將內(nèi)部 RAM從 DATA為起始地址的 10個單元中的數(shù)據(jù)求和 , 并將結(jié)果送入SUM單元 。 絕對調(diào)用指令的功能是:先將 PC加 2, 指向下條指令地址 ( 即斷點(diǎn)地址 ) , 然后將斷點(diǎn)地址壓入堆棧 , 再把指令中提供的子程序低 11位入口地址裝入 PC的低 11位上 , PC的高 5位保持不變 。 位操作類指令的操作對象;一是內(nèi)部 RAM中的位尋址區(qū) , 即 20H~2FH中的 128位 ( 位地址 00H~7FH) ;二是特殊功能寄存器中可以進(jìn)行位尋址的各位 。 后兩條指令的功能是把位累加器 CY或位地址中的內(nèi)容取反 。 可以將操作數(shù)和立即數(shù) 80H相與 , 若結(jié)果為零 , 則為正數(shù) , 否則 , 就為負(fù)數(shù) 。 5 空間定義偽指令 DS 格式: [標(biāo)號: ] DS 表達(dá)式 功能:從標(biāo)號指定的地址單元開始 , 由表達(dá)式指定 。 ( 2) 根據(jù)算法和解題思路畫出程序流程圖 。 例 將 20H中存放的壓縮 BCD數(shù)轉(zhuǎn)換成二進(jìn)制數(shù)存放在累加器 A中 。 第 4章 80C51的指令系統(tǒng)與匯編語言程序設(shè)計 圖 第 4章 80C51的指令系統(tǒng)與匯編語言程序設(shè)計 開 始循 環(huán) 結(jié) 束 ?置 循 環(huán) 初 值循 環(huán) 處 理循 環(huán) 修 改結(jié) 束 處 理結(jié) 束開 始置 循 環(huán) 初 值循 環(huán) 結(jié) 束 ?循 環(huán) 處 理循 環(huán) 修 改結(jié) 束 處 理結(jié) 束YNYN( a ) 先 執(zhí) 行 后 判 斷 ( b ) 先 判 斷 后 執(zhí) 行第 4章 80C51的指令系統(tǒng)與匯編語言程序設(shè)計 例 RAM 2021H單元開始存放有 20個無符號數(shù) , 找出其最大值 ,把它放在內(nèi)部 RAM30H單元中 。 依此類推 , 完成由小到大的排序 。 延時 50 ms需用雙重循環(huán) , 源程序如下: DEL: MOV R7, 125;執(zhí)行時需 1個機(jī)器周期 DELI: MOV R6, 200 DEL2: DJNZ R6DEL2; 200 2=400μs( 內(nèi)循環(huán)時間 ) DJNZ R7 DEL1 ; ms 125=50ms( 外循環(huán)時間 ) RET 第 4章 80C51的指令系統(tǒng)與匯編語言程序設(shè)計 第 4章 80C51的指令系統(tǒng)與匯編語言程序設(shè)計 查表程序 程序設(shè)計中 , 有時會遇到比較復(fù)雜的運(yùn)算或轉(zhuǎn)換過程 , 直接編程的困難較大 , 采用查表的方法使解決這種問題的有效涂徑 。 子程序調(diào)用 , 就是暫時中斷主程序的執(zhí)行 , 而轉(zhuǎn)到子程序的入口地址去執(zhí)行子程序 , 執(zhí)行完畢后 , 自動返回主程序 , 主程序再繼續(xù)向下執(zhí)行 。 恢復(fù)現(xiàn)場是保護(hù)現(xiàn)場的逆操作 。 平方表子程序的入口參數(shù)和出口參數(shù)都是 A。 對于具體指令 , 應(yīng)通過上機(jī)練習(xí)程序設(shè)計時 , 多了解指令涉及的內(nèi)容 , 需要在編程實踐上多下功夫 。 并通過對這幾種結(jié)構(gòu)進(jìn)行了匯編語言編程的舉例 。 其功能是從堆棧中自動取出斷點(diǎn)地址送入程序計數(shù)器 PC, 使程序返回到主程序斷點(diǎn)處繼續(xù)往下執(zhí)行 。 2 參數(shù)的傳遞 參數(shù)傳遞是指主程序與子程序之何相關(guān)信息或數(shù)據(jù)的傳遞 。 指令中的地址為子程序的入口地址 , 在實際的程序中通常用標(biāo)號來代表 。 用于查表的指令有兩條: MOVC A, A+DPTR MOVC A, A+PC 使用 DPTR作為基地址查表比較簡單 , 可通過三步操作來完成: 將所查表格的首地址存入 DPTR數(shù)據(jù)指針寄存器; 將所查表的項數(shù) ( 即在表中的位置是第幾項 ) 送到累加器; 執(zhí)行查表指令 MOVC A, A+DPTR, 進(jìn)行讀數(shù) , 查表的結(jié)果送回累加器 A。 ( 00H) = 1, 表明有互換發(fā)生 。 假設(shè)在片內(nèi) RAM中 , 起始地址為 40H的 10個單元中存放有 10個無符號數(shù) 。例 X存放于 VAR單元,函數(shù)值 Y存放在 FUNC單元。 ( 4) 程序調(diào)試 , 找出錯誤更正后再調(diào)試直至通過 。對于比較復(fù)雜的問題可以先根據(jù)題目的要求做出流程圖,然后再根據(jù)流程圖來編寫
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1