單片機匯編程序(算術邏輯運算).ppt
《單片機匯編程序(算術邏輯運算).ppt》由會員分享,可在線閱讀,更多相關《單片機匯編程序(算術邏輯運算).ppt(23頁珍藏版)》請在裝配圖網(wǎng)上搜索。
16 43 第5講 指令系統(tǒng) 知識目標 掌握算術邏輯運算技能目標 對P1口LED燈操作 16 43 3 3 2算術運算指令 1 不帶進位加法指令 四條 2 帶進位加法指令 四條 3 帶借位減法指令 四條 4 乘法指令 1條 5 除法指令 1條 6 加1指令 5條 7 減1指令 4條 8 十進制調(diào)整指令 1條 Back 16 43 1 不帶進位加法指令 四條 16 43 說明 上述指令的執(zhí)行將影響標志位AC Cy OV P 當 和 的第3位或第7位有進位時 分別將AC CY標志位置1 否則為0 溢出標志位OV C7 C6 異或 該標志位只有帶符號數(shù)運算時才有用 例 若 A 78H R0 64H執(zhí)行ADDA R0后 結(jié)果及PSW A 78H 01111000B R0 64H 01100100B A DCH 11011100B標志位 CY 0 AC 0 OV 1 P 1 即 PSW 05H結(jié)果 A DCH R0 64H Back 16 43 2 帶進位加法指令 四條 16 43 說明 本組指令的功能是同時把源操作數(shù)所指出的內(nèi)容和進位標志未CY都加到累加器A中 結(jié)果存放到A中 其余的功能和上面的ADD指令相同 本組指令常用于多字節(jié)加法 例 設 A 0C3H R0 0AAH CY 1 執(zhí)行指令 ADDCA R0 后的結(jié)果及標志位如何 解 A C3H 11000011 CY 1 0000000111000100 R0 AAH 10101010 A 6EH 01101110標志位 CY 1 OV 1 AC 0 結(jié)果 A 6EH R0 0AAH 16 43 例 編程 將 30H 31H 單元中的數(shù)與 40H 41H 單元中的數(shù)相加 結(jié)果存于 30H 31H 單元中 解 MOVA 30HADDA 40HMOV30H AMOVA 31HADDCA 41HMOV31H A Back 16 43 3 帶借位減法指令 四條 16 43 說明 這組指令的功能是從累加器A中減去源操作數(shù)所指出的數(shù)及進位位CY的值 差保留在累加器A中 由于89C51指令系統(tǒng)中沒有不帶借位的減法指令 如需要的話 可以在 SUBB 指令前用 CLRC 指令將Cy清0 這一點必須注意 16 43 例 設 A 0C9H R2 54H Cy 1 執(zhí)行指令 SUBBA R2 的結(jié)果如何 解 A 0C9H 11001001B Cy 1 00000001B11001000B R2 54H 01010100B A 74H 01110100B結(jié)果為 A 74H標志位為 Cy 0AC 0OV 1P 0 Back 16 43 4 乘法指令 1條 該指令若乘積大于0FFH 則OV置1 否則OV清0 Cy位總是被清0 該指令將累加器A和寄存器B中兩個無符號數(shù)相乘 所得16位積的低字節(jié)存放在A中 高字節(jié)存放中B中 例 A 4EH B 5DH 執(zhí)行指令 MULAB 后結(jié)果如何 解 結(jié)果為 B 1CH A 56H 表示積 BA 1C56H OV 1 Back 16 43 5 除法指令 1條 例 A BFH B 32H 執(zhí)行指令 DIVAB 后 結(jié)果為 A 03H B 29H 標志位CY 0 OV 0 A中內(nèi)容除以B中內(nèi)容 整數(shù)商存于A中 余數(shù)存于B中 該指令執(zhí)行后 CY和OV均被清0 若原 B 00H 則結(jié)果無法確定 用OV 1表示 CY仍為0 Back 16 43 6 加1指令 5條 該組指令的操作不影響PSW 若原單元內(nèi)容為FFH 加1后溢出為00H 也不影響PSW標志 例 比較指令 INCA 和 ADDA 01H 的結(jié)果 解 INCA 指令只將A的內(nèi)容加1 標志位沒有變化 而 ADDA 01H 指令不僅將A的內(nèi)容加1 還影響標志位變化 16 43 例 若 R1 30H 30H 11H求執(zhí)行下面指令后的結(jié)果 INC R1 30H 12HINCR1 R1 31H 解 結(jié)果為 30H 12H R1 31H 不影響PWS Back 16 43 7 減1指令 4條 該組指令的操作不影響PSW Back 16 43 8 十進制調(diào)整指令 1條 該指令調(diào)整累加器內(nèi)容為BCD碼 這條指令跟在ADD或ADDC指令后 將相加后存放在累加器中的結(jié)果進行十進制調(diào)整 完成十進制加法運算功能 必須注意 本指令不能簡單地把累加器A的16進制數(shù)變換成BCD碼 也不能用于十進制減法的調(diào)整 16 43 例 設累加器A內(nèi)容為 01010110B 即為56的BCD碼 寄存器R3的內(nèi)容為01100111B 即67的BCD碼 CY內(nèi)容為1 求執(zhí)行下列指令后的結(jié)果 ADDCA R3 DAA 解 先執(zhí)行ADDCA R3 A 01010110BCD 56 R3 01100111BCD 67 CY 00000001BCD 01和 10111110即 A 10111110且影響標志位CY 0 AC 0 再執(zhí)行DAA 因為A中的高四位值為11 大于9 低四位值為14 也大于9 所以內(nèi)部調(diào)整自動進行加66H的操作 10111110調(diào)整 01100110100100100BCD 124即 A 00100100 24BCD CY 1 AC 1 Back 16 43 3 3 3邏輯操作指令 邏輯操作指令包括 與 或 異或 清除 求反 移位等操作 該指令組全部操作數(shù)都是8位25條指令 1 簡單操作指令 2條 2 移位指令 4條 3 邏輯 與 指令 6條 4 邏輯 或 指令 6條 5 邏輯 異或 指令 6條 Back 16 43 1 簡單操作指令 2條 Back 16 43 2 移位指令 4條 我們通常用RLCA指令將累加器A的內(nèi)容做乘2運算 例如 無符號8位二進制數(shù) A 10111101B BDH CY 0 將 A 乘2 執(zhí)行指令 RLCA 后結(jié)果 A 01111010B 7AH CY 1 而17AH正是BDH的2倍 Back 16 43 3 邏輯 與 指令 6條 這組指令中前四條指令是將累加器A的內(nèi)容和操作數(shù)所指出的內(nèi)容按位進行邏輯 與 結(jié)果存放在A中 后兩條指令是將直接地址單元中的內(nèi)容和操作數(shù)所指出的單元的內(nèi)容按位進行邏輯 與 結(jié)果存入直接地址單元中 若直接地址正好是I O端口 則為 讀 改 寫 操作 Back 16 43 4 邏輯 或 指令 6條 這組指令的功能是將兩個指定的操作數(shù)按位進行邏輯 或 前四條指令的操作結(jié)果存放在累加器A中 后兩條指令的操作結(jié)果存放在直接地址單元中 Back 16 43 5 邏輯 異或 指令 6條 這組指令的功能是將兩個指定的操作數(shù)按位進行 異或 前四條指令的結(jié)果存放在累加器A中 后兩條指令的操作結(jié)果存放在直接地址單元中這類指令的操作均只影響標志位P Back- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設計者僅對作品中獨創(chuàng)性部分享有著作權。
- 關 鍵 詞:
- 單片機 匯編程序 算術 邏輯運算
裝配圖網(wǎng)所有資源均是用戶自行上傳分享,僅供網(wǎng)友學習交流,未經(jīng)上傳用戶書面授權,請勿作他用。
鏈接地址:http://m.jqnhouse.com/p-6352879.html