HOLTEK 指令集說明 指令集說明 注由于資源大小問題其中以下幾款MCU 只有62 條指令其余均為63 條指令 HT48CA0/HT48RA0A 無RETI 指令 HT48R05A-1 無TABRDL 指令 指令尋址方式有下面5 種 .. 立即尋址 此一尋址法是將立即的常數(shù)值緊跟在運(yùn)算碼 (opcode) 后例如 MOV A, 33H ADD A, 33H .. 直接尋址 直接尋址的情況只允許在存儲(chǔ)器之間作數(shù)據(jù)傳送例如 MOV [33H], A CLR [33H] .. 間接尋址 在間接尋址方式中必定要使用到間接尋址暫存器(R0 R1) 例如 MOV R0, A MOV A, R0 .. 特殊暫存器尋址 此一尋址方式完全是針對(duì)某一暫存器作運(yùn)算例如 CLR WDT CLR WDT1 .. 指針尋址 指針尋址只適用在配合做查表指令例如 MOV A, 02H MOV TBLP, A HOLTEK 指令集說明 2 指令集摘要 助記符 說明 指令 周期 影響標(biāo)志位 算術(shù)運(yùn)算 ADD A, [m] 累加器與數(shù)據(jù)存儲(chǔ)器相加結(jié)果放入累加器 1 Z,C,AC,OV ADDM A, [m] 累加器與數(shù)據(jù)存儲(chǔ)器相加結(jié)果放入數(shù)據(jù)存儲(chǔ)器 11 Z,C,AC,OV ADD A, x 累加器與立即數(shù)相加結(jié)果放入累加器 1 Z,C,AC,OV ADC A, [m] 累加器與數(shù)據(jù)存儲(chǔ)器進(jìn)位標(biāo)志相加結(jié)果放入累加器 1 Z,C,AC,OV ADCM A, [m] 累加器與數(shù)據(jù)存儲(chǔ)器進(jìn)位標(biāo)志相加結(jié)果放入數(shù)據(jù)存儲(chǔ)器 1 1 Z,C,AC,OV SUB A, x 累加器與立即數(shù)相減結(jié)果放入累加器 1 Z,C,AC,OV SUB A, [m] 累加器與數(shù)據(jù)存儲(chǔ)器相減結(jié)果放入累加器 1 Z,C,AC,OV SUBM A, [m] 累加器與數(shù)據(jù)存儲(chǔ)器相減結(jié)果放入數(shù)據(jù)存儲(chǔ)器 11 Z,C,AC,OV SBC A, [m] 累加器與數(shù)據(jù)存儲(chǔ)器進(jìn)位標(biāo)志相減結(jié)果放入累加器 1 Z,C,AC,OV SBCM A, [m] 累加器與數(shù)據(jù)存儲(chǔ)器進(jìn)位標(biāo)志相減結(jié)果放入數(shù)據(jù)存儲(chǔ)器 1 1 Z,C,AC,OV DAA [m] 將加法運(yùn)算后放入累加器的值調(diào)整為十進(jìn)制數(shù)并將結(jié)果放 入數(shù)據(jù)存儲(chǔ)器 1 1 C 邏輯運(yùn)算 AND A, [m] 累加器與數(shù)據(jù)存儲(chǔ)器做與運(yùn)算結(jié)果放入累加器 1 Z OR A, [m] 累加器與數(shù)據(jù)存儲(chǔ)器做或運(yùn)算結(jié)果放入累加器 1 Z XOR A, [m] 累加器與數(shù)據(jù)存儲(chǔ)器做異或運(yùn)算結(jié)果放入累加器 1 Z ANDM A, [m] 累加器與數(shù)據(jù)存儲(chǔ)器做與運(yùn)算結(jié)果放入數(shù)據(jù)存儲(chǔ)器 11 Z ORM A, [m] 累加器與數(shù)據(jù)存儲(chǔ)器做或運(yùn)算結(jié)果放入數(shù)據(jù)存儲(chǔ)器 11 Z XORM A, [m] 累加器與數(shù)據(jù)存儲(chǔ)器做異或運(yùn)算結(jié)果放入數(shù)據(jù)存儲(chǔ)器 1 1 Z AND A, x 累加器與立即數(shù)做與運(yùn)算結(jié)果放入累加器 1 Z OR A, x 累加器與立即數(shù)做或運(yùn)算結(jié)果放入累加器 1 Z XOR A, x 累加器與立即數(shù)做異或運(yùn)算結(jié)果放入累加器 1 Z CPL [m] 對(duì)數(shù)據(jù)存儲(chǔ)器取反結(jié)果放入數(shù)據(jù)存儲(chǔ)器 11 Z CPLA [m] 對(duì)數(shù)據(jù)存儲(chǔ)器取反結(jié)果放入累加器 1 Z 遞增和遞減 INCA [m] 數(shù)據(jù)存儲(chǔ)器的內(nèi)容加1 結(jié)果放入累加器 1 Z INC [m] 數(shù)據(jù)存儲(chǔ)器的內(nèi)容加1 結(jié)果放入數(shù)據(jù)存儲(chǔ)器 11 Z DECA [m] 數(shù)據(jù)存儲(chǔ)器的內(nèi)容減1 結(jié)果放入累加器 1 Z DEC [m] 數(shù)據(jù)存儲(chǔ)器的內(nèi)容減1 結(jié)果放入數(shù)據(jù)存儲(chǔ)器 11 Z 移位 RRA [m] 數(shù)據(jù)存儲(chǔ)器右移一位結(jié)果放入累加器 1 無 RR [m] 數(shù)據(jù)存儲(chǔ)器右移一位結(jié)果放入數(shù)據(jù)存儲(chǔ)器 11 無 RRCA [m] 帶進(jìn)位將數(shù)據(jù)存儲(chǔ)器右移一位結(jié)果放入累加器 1 C RRC [m] 帶進(jìn)位將數(shù)據(jù)存儲(chǔ)器右移一位結(jié)果放入數(shù)據(jù)存儲(chǔ)器 11 C RLA [m] 數(shù)據(jù)存儲(chǔ)器左移一位結(jié)果放入累加器 1 無 RL [m] 數(shù)據(jù)存儲(chǔ)器左移一位結(jié)果放入數(shù)據(jù)存儲(chǔ)器 11 無 RLCA [m] 帶進(jìn)位將數(shù)據(jù)存儲(chǔ)器左移一位結(jié)果放入累加器 1 C RLC [m] 帶進(jìn)位將數(shù)據(jù)存儲(chǔ)器左移一位結(jié)果放入數(shù)據(jù)存儲(chǔ)器 11 C 數(shù)據(jù)傳送 MOV A, [m] 將數(shù)據(jù)存儲(chǔ)器送至累加器 1 無 MOV [m], A 將累加器送至數(shù)據(jù)存儲(chǔ)器 11 無 MOV A, x 將立即數(shù)送至累加器 1 無 位運(yùn)算 CLR [m]. i 將數(shù)據(jù)存儲(chǔ)器的第i 位清0 11 無 SET [m]. i 將數(shù)據(jù)存儲(chǔ)器的第i 位置1 11 無 HOLTEK 指令集說明 3 助記符 說明 指令 周期 影響標(biāo)志位 轉(zhuǎn)移 JMP addr 無條件跳轉(zhuǎn) 2 無 SZ [m] 如果數(shù)據(jù)存儲(chǔ)器為0 則跳過下一條指令 12 無 SZA [m] 數(shù)據(jù)存儲(chǔ)器送至累加器如果內(nèi)容為0 則跳過下一條指 令 1 2 無 SZ [m]. i 如果數(shù)據(jù)存儲(chǔ)器的第i 位為0 則跳過下一條指令 12 無 SNZ [m]. i 如果數(shù)據(jù)存儲(chǔ)器的第i 位不為0 則跳過下一條指令 12 無 SIZ [m] 數(shù)據(jù)存儲(chǔ)器加1 如果結(jié)果為0 則跳過下一條指令 13 無 SDZ [m] 數(shù)據(jù)存儲(chǔ)器減1 如果結(jié)果為0 則跳過下一條指令 13 無 SIZA [m] 數(shù)據(jù)存儲(chǔ)器加1 將結(jié)果放入累加器如果結(jié)果為0 則跳 過下一條指令 1 2 無 SDZA [m] 數(shù)據(jù)存儲(chǔ)器減1 將結(jié)果放入累加器如果結(jié)果為0 則跳 過下一條指令 1 2 無 CALL addr 子程序調(diào)用 2 無 RET 從子程序返回 2 無 RET A, x 從子程序返回并將立即數(shù)放入累加器 2 無 RETI 從中斷返回 2 無 查表 TABRDC [m] 讀取當(dāng)前頁的ROM 內(nèi)容并送至數(shù)據(jù)存儲(chǔ)器和TBLH 2 1 無 TABRDL [m] 讀取最后頁的ROM 內(nèi)容并送至數(shù)據(jù)存儲(chǔ)器和TBLH 2 1 無 其它指令 NOP 空指令 1 無 CLR [m] 清除數(shù)據(jù)存儲(chǔ)器 11 無 SET [m] 置位數(shù)據(jù)存儲(chǔ)器 11 無 CLR WDT 清除看門狗定時(shí)器 1 TO,PD CLR WDT1 預(yù)清除看門狗定時(shí)器 1 TO 4 ,PD 4 CLR WDT2 預(yù)清除看門狗定時(shí)器 1 TO 4 ,PD 4 SWAP [m] 交換數(shù)據(jù)存儲(chǔ)器的高低字節(jié)結(jié)果放入數(shù)據(jù)存儲(chǔ)器 11 無 SWAPA [m] 交換數(shù)據(jù)存儲(chǔ)器的高低字節(jié)結(jié)果放入累加器 1 無 HALT 進(jìn)入暫停模式 1 TO,PD 注 x 立即數(shù) m 數(shù)據(jù)存儲(chǔ)器地址 A 累加器ACC i 第0~7 位 addr 程序存儲(chǔ)器地址 影響標(biāo)志位 不影響標(biāo)志位 1 如果數(shù)據(jù)是加載到PCL 寄存器則指令執(zhí)行周期會(huì)被延長一個(gè)指令周期四個(gè)系統(tǒng)時(shí)鐘 2 如果滿足跳躍條件則指令執(zhí)行周期會(huì)被延長一個(gè)指令周期四個(gè)系統(tǒng)時(shí)鐘否則指令執(zhí)行周期不會(huì)被延長 3 1 和2 4 如果執(zhí)行CLW WDT1 或CLR WDT2 指令后看門狗定時(shí)器被清除則會(huì)影響TO 和PD 標(biāo)志位否則不會(huì)影響 TO 和PD 標(biāo)志位 HOLTEK 指令集說明 4 ADC A, [m] 累加器與數(shù)據(jù)存儲(chǔ)器進(jìn)位標(biāo)志相加結(jié)果放入累加器 說明 本指令把累加器數(shù)據(jù)存儲(chǔ)器值以及進(jìn)位標(biāo)志相加結(jié)果存放到累加器 運(yùn)算過程 ACC..ACC+[m]+C 影響標(biāo)志位 TC2 TC1 TO PD OV Z AC C ADCM A, [m] 累加器與數(shù)據(jù)存儲(chǔ)器進(jìn)位標(biāo)志相加結(jié)果放入數(shù)據(jù)存儲(chǔ)器 說明 本指令把累加器數(shù)據(jù)存儲(chǔ)器值以及進(jìn)位標(biāo)志相加結(jié)果存放到存儲(chǔ)器 運(yùn)算過程 [m]..ACC+[m]+C 影響標(biāo)志位 TC2 TC1 TO PD OV Z AC C ADD A, [m] 累加器與數(shù)據(jù)存儲(chǔ)器相加結(jié)果放入累加器 說明 本指令把累加器數(shù)據(jù)存儲(chǔ)器值相加結(jié)果存放到累加器 運(yùn)算過程 ACC..ACC+[m] 影響標(biāo)志位 TC2 TC1 TO PD OV Z AC C ADD A, x 累加器與立即數(shù)相加結(jié)果放入累加器 說明 本指令把累加器值和立即數(shù)相加結(jié)果存放到累加器 運(yùn)算過程 ACC..ACC+X 影響標(biāo)志位 TC2 TC1 TO PD OV Z AC C ADDM A, [m] 累加器與數(shù)據(jù)存儲(chǔ)器相加結(jié)果放入數(shù)據(jù)存儲(chǔ)器 說明 本指令把累加器數(shù)據(jù)存儲(chǔ)器值相加結(jié)果放到數(shù)據(jù)存儲(chǔ)器 運(yùn)算過程 [m]..ACC+[m] 影響標(biāo)志位 TC2 TC1 TO PD OV Z AC C AND A, [m] 累加器與數(shù)據(jù)存儲(chǔ)器做與運(yùn)算結(jié)果放入累加器 說明 本指令把累加器值數(shù)據(jù)存儲(chǔ)器值做邏輯與結(jié)果存放到累加器 運(yùn)算過程 ACC..ACC “AND” [m] 影響標(biāo)志位 TC2 TC1 TO PD OV Z AC C HOLTEK 指令集說明 5 AND A, x 累加器與立即數(shù)做與運(yùn)算結(jié)果放入累加器 說明 本指令把累加器值立即數(shù)做邏輯與結(jié)果存放到累加器 運(yùn)算過程 ACC..ACC “AND” X 影響標(biāo)志位 TC2 TC1 TO PD OV Z AC C ANDM A, [m] 累加器與數(shù)據(jù)存儲(chǔ)器做與運(yùn)算結(jié)果放入數(shù)據(jù)存儲(chǔ)器 說明 本指令把累加器值數(shù)據(jù)存儲(chǔ)器值做邏輯與結(jié)果放到數(shù)據(jù)存儲(chǔ)器 運(yùn)算過程 ACC..ACC “AND” [m] 影響標(biāo)志位 TC2 TC1 TO PD OV Z AC C CALL addr 子程序調(diào)用 說明 本指令直接調(diào)用地址所在處的子程序此時(shí)程序計(jì)數(shù)器加一將此程序計(jì)數(shù)器值存到堆 棧寄存器中再將子程序所在處的地址存放到程序計(jì)數(shù)器中 運(yùn)算過程 Stack..PC+1 PC .. addr 影響標(biāo)志位 TC2 TC1 TO PD OV Z AC C CLR [m] 清除數(shù)據(jù)存儲(chǔ)器 說明 本指令將數(shù)據(jù)存儲(chǔ)器內(nèi)的數(shù)值清零 運(yùn)算過程 [m] ..00H 影響標(biāo)志位 TC2 TC1 TO PD OV Z AC C CLR [m] . i 將數(shù)據(jù)存儲(chǔ)器的第i 位清0 說明 本指令將數(shù)據(jù)存儲(chǔ)器內(nèi)第i 位值清零 運(yùn)算過程 [m].i ..0 影響標(biāo)志位 TC2 TC1 TO PD OV Z AC C CLR WDT 清除看門狗定時(shí)器 說明 本指令清除WDT 計(jì)數(shù)器從0 開始重新計(jì)數(shù)暫停標(biāo)志位PD 和看門狗溢出標(biāo)志 位TO 也被清零 運(yùn)算過程 WDT .. 00H PD&TO .. 0 影響標(biāo)志位 TC2 TC1 TO PD OV Z AC C 0 0 HOLTEK 指令集說明 6 CLR WDT1 預(yù)清除看門狗定時(shí)器 說明 必須搭配CLR WDT2 一起使用才可清除WDT 計(jì)時(shí)器從0 開始重新計(jì)數(shù)當(dāng)程序 只執(zhí)行過該指令沒有執(zhí)行CLR WDT2 時(shí)系統(tǒng)只會(huì)不會(huì)將暫停標(biāo)志位PD 和計(jì)數(shù) 溢出位TO 清零PD 與TO 保留原狀態(tài)不變 運(yùn)算過程 WDT .. 00H* PD&TO .. 0* 影響標(biāo)志位 TC2 TC1 TO PD OV Z AC C 0* 0* CLR WDT2 預(yù)清除看門狗定時(shí)器 說明 必須搭配CLR WDT1 一起使用才可清除WDT 計(jì)時(shí)器從0 開始重新計(jì)數(shù)當(dāng)程序 只執(zhí)行過該指令沒有執(zhí)行CLR WDT1 時(shí)系統(tǒng)只會(huì)不會(huì)將暫停標(biāo)志位PD 和計(jì)數(shù) 溢出位TO 清零PD 與TO 保留原狀態(tài)不變 運(yùn)算過程 WDT .. 00H* PD&TO .. 0* 影響標(biāo)志位 TC2 TC1 TO PD OV Z AC C 0* 0* CPL [m] 對(duì)數(shù)據(jù)存儲(chǔ)器取反結(jié)果放入數(shù)據(jù)存儲(chǔ)器 說明 本指令是將數(shù)據(jù)存儲(chǔ)器內(nèi)保存的數(shù)值取反 運(yùn)算過程 [m] .. [m ] 影響標(biāo)志位 TC2 TC1 TO PD OV Z AC C CPLA [m] 對(duì)數(shù)據(jù)存儲(chǔ)器取反結(jié)果放入累加器 說明 本指令是將數(shù)據(jù)存儲(chǔ)器內(nèi)保存的值取反后結(jié)果存放在累加器中 運(yùn)算過程 ACC .. [m ] 影響標(biāo)志位 TC2 TC1 TO PD OV Z AC C HOLTEK 指令集說明 7 DAA [m] 將加法運(yùn)算后放入累加器的值調(diào)整為十進(jìn)制數(shù)并將結(jié)果放入數(shù)據(jù)存儲(chǔ)器 說明 本指令將累加器高低四位分別調(diào)整為BCD 碼如果低四位的值大于9 或AC=1 那 么BCD 調(diào)整就執(zhí)行對(duì)原值加6 并且內(nèi)部進(jìn)位標(biāo)志AC1=AC 即AC 求反否則原 值保持不變?nèi)绻咚奈坏闹荡笥? 或C=1 那么BCD 調(diào)整就執(zhí)行對(duì)原值加6 再加AC1 并把C 置位否則BCD 調(diào)整就執(zhí)行對(duì)原值加AC1 C 的值保持不變結(jié)果 存放到數(shù)據(jù)存儲(chǔ)器中只有進(jìn)位標(biāo)志位C 受影響 操作 如果ACC.3~ACC.0 > 9 或AC=1 那么 [m].3~[m].0 .. ACC.3~ACC.0 +6 AC1= AC 否則 [m].3~[m].0 .. ACC.3~ACC.0 AC1=0 并且 如果ACC.7~ACC.4+AC1 > 9 或C=1 那么 [m].7~[m].4 .. ACC.7~ACC.4 +6+ AC1 C=1 否則 [m].7~[m].4 .. ACC.7~ACC.4 + AC1 C=C 影響標(biāo)志位 TC2 TC1 TO PD OV Z AC C DEC [m] 數(shù)據(jù)存儲(chǔ)器的內(nèi)容減1 結(jié)果放入數(shù)據(jù)存儲(chǔ)器 說明 本指令將數(shù)據(jù)存儲(chǔ)器內(nèi)的數(shù)值減一再放回?cái)?shù)據(jù)存儲(chǔ)器 運(yùn)算過程 [m] .. [m]-1 影響標(biāo)志位 TC2 TC1 TO PD OV Z AC C DECA [m] 數(shù)據(jù)存儲(chǔ)器的內(nèi)容減1 結(jié)果放入累加器 說明 本指令將存儲(chǔ)器內(nèi)的數(shù)值減一,再放到累加器 運(yùn)算過程 ACC .. [m]-1 影響標(biāo)志位 TC2 TC1 TO PD OV Z AC C HALT 進(jìn)入暫停模式 說明 本指令終止程序執(zhí)行并關(guān)掉系統(tǒng)時(shí)鐘RAM 和寄存器內(nèi)的數(shù)值保持原狀態(tài)WDT 計(jì)數(shù) 器清0 暫停標(biāo)志位PD 被設(shè)為1 WDT 計(jì)數(shù)溢出位TO 被清為0 運(yùn)算過程 PC .. PC+1 PD .. 1 TO .. 0 影響標(biāo)志位 TC2 TC1 TO PD OV Z AC C 0 1 HOLTEK 指令集說明 8 INC [m] 數(shù)據(jù)存儲(chǔ)器的內(nèi)容加1 結(jié)果放入數(shù)據(jù)存儲(chǔ)器 說明 本指令將數(shù)據(jù)存儲(chǔ)器內(nèi)的數(shù)值加一,結(jié)果放回?cái)?shù)據(jù)存儲(chǔ)器 運(yùn)算過程 [m] .. [m]+1 影響標(biāo)志位 TC2 TC1 TO PD OV Z AC C INCA [m] 數(shù)據(jù)存儲(chǔ)器的內(nèi)容加1 結(jié)果放入數(shù)據(jù)存儲(chǔ)器 說明 本指令是將存儲(chǔ)器內(nèi)的數(shù)值加一,結(jié)果放到累加器 運(yùn)算過程 ACC .. [m]+1 影響標(biāo)志位 TC2 TC1 TO PD OV Z AC C JMP addr 無條件跳轉(zhuǎn) 說明 本指令是將要跳到的目的地直接放到程序計(jì)數(shù)器內(nèi) 運(yùn)算過程 PC .. addr 影響標(biāo)志位 TC2 TC1 TO PD OV Z AC C MOV A, [m] 將數(shù)據(jù)存儲(chǔ)器送至累加器 說明 本指令是將數(shù)據(jù)存儲(chǔ)器內(nèi)的數(shù)值送到累加器內(nèi) 運(yùn)算過程 ACC .. [m] 影響標(biāo)志位 TC2 TC1 TO PD OV Z AC C MOV A, x 將立即數(shù)送至累加器 說明 本指令是將立即數(shù)送到累加器內(nèi) 運(yùn)算過程 ACC .. X 影響標(biāo)志位 TC2 TC1 TO PD OV Z AC C MOV [m], A 將累加器送至數(shù)據(jù)存儲(chǔ)器 說明 本指令是將累加器值送到數(shù)據(jù)存儲(chǔ)器內(nèi) 運(yùn)算過程 [m] .. ACC 影響標(biāo)志位 TC2 TC1 TO PD OV Z AC C HOLTEK 指令集說明 9 NOP 空指令 說明 本指令不作任何運(yùn)算而只將程序計(jì)數(shù)器加一 運(yùn)算過程 PC .. PC+1 影響標(biāo)志位 TC2 TC1 TO PD OV Z AC C OR A, [m] 累加器與數(shù)據(jù)存儲(chǔ)器做或運(yùn)算結(jié)果放入累加器 說明 本指令是把累加器數(shù)據(jù)存儲(chǔ)器值做邏輯或結(jié)果放到累加器 運(yùn)算過程 ACC..ACC “OR” [m] 影響標(biāo)志位 TC2 TC1 TO PD OV Z AC C OR A, x 累加器與立即數(shù)做或運(yùn)算結(jié)果放入累加器 說明 本指令是把累加器值立即數(shù)做邏輯或結(jié)果放到累加器 運(yùn)算過程 ACC..ACC “OR” X 影響標(biāo)志位 TC2 TC1 TO PD OV Z AC C ORM A, [m] 累加器與數(shù)據(jù)存儲(chǔ)器做或運(yùn)算結(jié)果放入數(shù)據(jù)存儲(chǔ)器 說明 本指令是把累加器值存儲(chǔ)器值做邏輯或結(jié)果放到數(shù)據(jù)存儲(chǔ)器 運(yùn)算過程 ACC..ACC “OR” [m] 影響標(biāo)志位 TC2 TC1 TO PD OV Z AC C RET 從子程序返回 說明 本指令是將堆棧寄存器中的程序計(jì)數(shù)器值送回程序計(jì)數(shù)器 運(yùn)算過程 PC .. Stack 影響標(biāo)志位 TC2 TC1 TO PD OV Z AC C RET A, x 從子程序返回并將立即數(shù)放入累加器 說明 本指令是將堆棧寄存器中的程序計(jì)數(shù)器值送回程序計(jì)數(shù)器并將立即數(shù)送回累加器 運(yùn)算過程 PC .. Stack ACC .. X 影響標(biāo)志位 TC2 TC1 TO PD OV Z AC C HOLTEK 指令集說明 10 RETI 從中斷返回 說明 本指令是將堆棧寄存器中的程序計(jì)數(shù)器值送回程序計(jì)數(shù)器與RET 不同的是它使用在 中斷程序結(jié)束返回時(shí)它還會(huì)將中斷控制寄存器INTC 的0 位EMI 中斷允許位置1 允許中斷服務(wù) 運(yùn)算過程 PC .. Stack EMI .. 1 影響標(biāo)志位 TC2 TC1 TO PD OV Z AC C RL [m] 數(shù)據(jù)存儲(chǔ)器左移一位結(jié)果放入數(shù)據(jù)存儲(chǔ)器 說明 本指令是將數(shù)據(jù)存儲(chǔ)器內(nèi)的數(shù)值左移一位第7 位移到第0 位結(jié)果送回?cái)?shù)據(jù)存儲(chǔ)器 運(yùn)算過程 [m].0 ..[m].7, [m]. i+1 ..[m].i :i=0~6 影響標(biāo)志位 TC2 TC1 TO PD OV Z AC C RLA [m] 數(shù)據(jù)存儲(chǔ)器左移一位結(jié)果放入累加器 說明 本指令是將存儲(chǔ)器內(nèi)的數(shù)值左移一位第7 位移到第0 位結(jié)果送到累加器而數(shù)據(jù)存 儲(chǔ)器內(nèi)的數(shù)值不變 運(yùn)算過程 ACC.0 ..[m].7, ACC. i+1 ..[m].i :i=0~6 影響標(biāo)志位 TC2 TC1 TO PD OV Z AC C RLC [m] 帶進(jìn)位將數(shù)據(jù)存儲(chǔ)器左移一位結(jié)果放入數(shù)據(jù)存儲(chǔ)器 說明 本指令是將存儲(chǔ)器內(nèi)的數(shù)值與進(jìn)位位左移一位第7 位取代進(jìn)位標(biāo)志進(jìn)位標(biāo)志移到第 0 位結(jié)果送回?cái)?shù)據(jù)存儲(chǔ)器 運(yùn)算過程 [m]. i+1 ..[m].i :i=0~6 [m].0 ..C C .. [m].7 影響標(biāo)志位 TC2 TC1 TO PD OV Z AC C RLCA [m] 帶進(jìn)位將數(shù)據(jù)存儲(chǔ)器左移一位結(jié)果放入累加器 說明 本指令是將存儲(chǔ)器內(nèi)的數(shù)值與進(jìn)位位左移一位第七位取代進(jìn)位標(biāo)志進(jìn)位標(biāo)志移到第 0 位結(jié)果送回累加器 運(yùn)算過程 ACC. i+1 ..[m].i :i=0~6 ACC.0 ..C C .. [m].7 影響標(biāo)志位 TC2 TC1 TO PD OV Z AC C HOLTEK 指令集說明 11 RR [m] 數(shù)據(jù)存儲(chǔ)器右移一位結(jié)果放入數(shù)據(jù)存儲(chǔ)器 說明 本指令是將存儲(chǔ)器內(nèi)的數(shù)值循環(huán)右移第0 位移到第7 位結(jié)果送回?cái)?shù)據(jù)存儲(chǔ)器 運(yùn)算過程 [m].7 ..[m].0, [m].i ..[m]. i+1 : i=0~6 影響標(biāo)志位 TC2 TC1 TO PD OV Z AC C RRA [m] 數(shù)據(jù)存儲(chǔ)器右移一位結(jié)果放入累加器 說明 本指令是將數(shù)據(jù)存儲(chǔ)器內(nèi)的數(shù)值循環(huán)右移第0 位移到第7 位結(jié)果送回累加器而數(shù) 據(jù)存儲(chǔ)器內(nèi)的數(shù)值不變 運(yùn)算過程 ACC.7 ..[m].0, ACC.i ..[m]. i+1 :i=0~6 影響標(biāo)志位 TC2 TC1 TO PD OV Z AC C RRC [m] 帶進(jìn)位將數(shù)據(jù)存儲(chǔ)器右移一位結(jié)果放入數(shù)據(jù)存儲(chǔ)器 說明 本指令是將存儲(chǔ)器內(nèi)的數(shù)值加進(jìn)位位循環(huán)右移第0 位取代進(jìn)位標(biāo)志進(jìn)位標(biāo)志移到第 7 位結(jié)果送回存儲(chǔ)器 運(yùn)算過程 [m].i ..[m]. i+1 :i=0~6 [m]. 7 ..C C .. [m].0 影響標(biāo)志位 TC2 TC1 TO PD OV Z AC C RRCA [m] 帶進(jìn)位將數(shù)據(jù)存儲(chǔ)器右移一位結(jié)果放入累加器 說明 本指令是將數(shù)據(jù)存儲(chǔ)器內(nèi)的數(shù)值加進(jìn)位位循環(huán)右移第0 位取代進(jìn)位標(biāo)志進(jìn)位標(biāo)志移 到第7 位結(jié)果送回累加器數(shù)據(jù)存儲(chǔ)器內(nèi)的數(shù)值不變 運(yùn)算過程 ACC.i ..[m]. i+1 i=0~6 ACC.7 ..C C .. [m].0 影響標(biāo)志位 TC2 TC1 TO PD OV Z AC C SBC A,[m] 累加器與數(shù)據(jù)存儲(chǔ)器進(jìn)位標(biāo)志相減結(jié)果放入累加器 說明 本指令是把累加器值減去數(shù)據(jù)存儲(chǔ)器值以及進(jìn)位標(biāo)志的取反結(jié)果放到累加器 運(yùn)算過程 ACC..ACC+[m ]+ C 影響標(biāo)志位 TC2 TC1 TO PD OV Z AC C HOLTEK 指令集說明 12 SBCM A,[m] 累加器與數(shù)據(jù)存儲(chǔ)器進(jìn)位標(biāo)志相減結(jié)果放入數(shù)據(jù)存儲(chǔ)器 說明 本指令是把累加器值減去數(shù)據(jù)存儲(chǔ)器值以及進(jìn)位標(biāo)志取反結(jié)果放到數(shù)據(jù)存儲(chǔ)器 運(yùn)算過程 [m]..ACC+[m]+C 影響標(biāo)志位 TC2 TC1 TO PD OV Z AC C SDZ [m] 數(shù)據(jù)存儲(chǔ)器減1 如果結(jié)果為0 則跳過下一條指令 說明 本指令是把數(shù)據(jù)存儲(chǔ)器內(nèi)的數(shù)值減1 判斷是否為0 若為0 則跳過下一條指令即如 果結(jié)果為零放棄在目前指令執(zhí)行期間所取得的下一條指令并插入一個(gè)空周期用以取 得正確的指令二個(gè)指令周期否則執(zhí)行下一條指令一個(gè)指令周期 運(yùn)算過程 如果[m]-1=0 跳過下一條指令執(zhí)行再下一條 影響標(biāo)志位 TC2 TC1 TO PD OV Z AC C SDZA [m] 數(shù)據(jù)存儲(chǔ)器減1 將結(jié)果放入累加器如果結(jié)果為0 則跳過下一條指令 說明 本指令是把數(shù)據(jù)存儲(chǔ)器內(nèi)的數(shù)值減1 判斷是否為0, 為0 則跳過下一行指令并將減完后 數(shù)據(jù)存儲(chǔ)器內(nèi)的數(shù)值送到累加器,而數(shù)據(jù)存儲(chǔ)器內(nèi)的值不變即若結(jié)果為0 放棄在目前 指令執(zhí)行期間所取得的下一條指令并插入一個(gè)空周期用以取得正確的指令二個(gè)指令 周期否則執(zhí)行下一條指令一個(gè)指令周期 運(yùn)算過程 如果[m]-1=0 跳過下一條指令執(zhí)行再下一條 ACC .. [m]-1 影響標(biāo)志位 TC2 TC1 TO PD OV Z AC C SET [m] 置位數(shù)據(jù)存儲(chǔ)器 說明 本指令是把存儲(chǔ)器內(nèi)的數(shù)值每個(gè)位置為1 運(yùn)算過程 [m] .. FFH 影響標(biāo)志位 TC2 TC1 TO PD OV Z AC C SET [m]. i 將數(shù)據(jù)存儲(chǔ)器的第i 位置1 說明 本指令是把存儲(chǔ)器內(nèi)的數(shù)值的第i 位置為1 運(yùn)算過程 [m].i ..1 影響標(biāo)志位 TC2 TC1 TO PD OV Z AC C HOLTEK 指令集說明 13 SIZ [m] 數(shù)據(jù)存儲(chǔ)器加1 如果結(jié)果為0 則跳過下一條指令 說明 本指令是把數(shù)據(jù)存儲(chǔ)器內(nèi)的數(shù)值加1 判斷是否為0 若為0 跳過下一條指令即放棄 在目前指令執(zhí)行期間所取得的下一條指令并插入一個(gè)空周期用以取得正確的指令二 個(gè)指令周期否則執(zhí)行下一條指令一個(gè)指令周期 運(yùn)算過程 如果 [m]+1=0 跳過下一行指令[m] ..[m]+1 影響標(biāo)志位 TC2 TC1 TO PD OV Z AC C SIZA 數(shù)據(jù)存儲(chǔ)器加1 將結(jié)果放入累加器如果結(jié)果為0 則跳過下一條指令 說明 本指令是把數(shù)據(jù)存儲(chǔ)器內(nèi)的數(shù)值加1 判斷是否為0, 若為0 跳過下一條指令即放棄在 目前指令執(zhí)行期間所取得的下一條指令并插入一個(gè)空周期用以取得正確的指令二個(gè) 指令周期并將加完后存儲(chǔ)器內(nèi)的數(shù)值送到累加器而數(shù)據(jù)存儲(chǔ)器的值保持不變否 則執(zhí)行下一條指令一個(gè)指令周期 運(yùn)算過程 如果[m]+1=0 跳過下一行指令A(yù)CC .. [m]+1 影響標(biāo)志位 TC2 TC1 TO PD OV Z AC C SNZ [m]. i 如果數(shù)據(jù)存儲(chǔ)器的第i 位不為0 則跳過下一條指令 說明 本指令是判斷數(shù)據(jù)存儲(chǔ)器內(nèi)的數(shù)值的第i 位, 若不為0 則程序計(jì)數(shù)器再加1, 跳過下一 行指令放棄在目前指令執(zhí)行期間所取得的下一條指令并插入一個(gè)空周期用以取得正 確的指令二個(gè)指令周期否則執(zhí)行下一條指令一個(gè)指令周期 運(yùn)算過程 如果 [m].i≠0 跳過下一行指令 影響標(biāo)志位 TC2 TC1 TO PD OV Z AC C SUB A, [m] 累加器與數(shù)據(jù)存儲(chǔ)器相減結(jié)果放入累加器 說明 本指令是把累加器值數(shù)據(jù)存儲(chǔ)器值相減結(jié)果放到累加器 運(yùn)算過程 ACC..ACC+[m ]+1 影響標(biāo)志位 TC2 TC1 TO PD OV Z AC C SUB A, x 累加器與立即數(shù)相減結(jié)果放入累加器 說明 本指令是把累加器值立即數(shù)相減結(jié)果放到累加器 運(yùn)算過程 ACC..ACC+ X +1 影響標(biāo)志位 TC2 TC1 TO PD OV Z AC C HOLTEK 指令集說明 14 SUBM A, [m] 累加器與數(shù)據(jù)存儲(chǔ)器相減結(jié)果放入數(shù)據(jù)存儲(chǔ)器 說明 本指令是把累加器值存儲(chǔ)器值相減結(jié)果放到存儲(chǔ)器 運(yùn)算過程 [m]..ACC+[m ]+1 影響標(biāo)志位 TC2 TC1 TO PD OV Z AC C SWAP [m] 交換數(shù)據(jù)存儲(chǔ)器的高低字節(jié)結(jié)果放入數(shù)據(jù)存儲(chǔ)器 說明 本指令是將數(shù)據(jù)存儲(chǔ)器的低四位和高四位互換,再將結(jié)果送回?cái)?shù)據(jù)存儲(chǔ)器 運(yùn)算過程 [m].7~[m].4<-V1 . [m].3~[m].0 影響標(biāo)志位 TC2 TC1 TO PD OV Z AC C SWAPA [m] 交換數(shù)據(jù)存儲(chǔ)器的高低字節(jié)結(jié)果放入累加器 說明 本指令是將數(shù)據(jù)存儲(chǔ)器的低四位和高四位互換再將結(jié)果送回累加器 運(yùn)算過程 ACC.3~ACC.0.. [m].7~[m].4 ACC.7~ACC.4.. [m].3~[m].0 影響標(biāo)志位 TC2 TC1 TO PD OV Z AC C SZ [m] 如果數(shù)據(jù)存儲(chǔ)器為0 則跳過下一條指令 說明 本指令是判斷數(shù)據(jù)存儲(chǔ)器內(nèi)的數(shù)值是否為0 為0 則跳過下一行指令即放棄在目前指 令執(zhí)行期間所取得的下一條指令并插入一個(gè)空周期用以得正確的指令二個(gè)指令周 期否則執(zhí)行下一條指令一個(gè)指令周期 運(yùn)算過程 如果 [m] = 0, 跳過下一行指令 影響標(biāo)志位 TC2 TC1 TO PD OV Z AC C SZA [m] 數(shù)據(jù)存儲(chǔ)器送至累加器如果內(nèi)容為0 則跳過下一條指令 說明 本指令是判斷存儲(chǔ)器內(nèi)的數(shù)值是否為0 若為0 則跳過下一行指令即放棄在目前指令 執(zhí)行期間所取得的下一條指令并插入一個(gè)空周期用以得正確的指令二個(gè)指令周期 并把存儲(chǔ)器內(nèi)值送到累加器而存儲(chǔ)器的值保持不變否則執(zhí)行下一條指令一個(gè)指令 周期 運(yùn)算過程 如果[m] = 0 跳過下一行指令并ACC.. [m] 影響標(biāo)志位 TC2 TC1 TO PD OV Z AC C HOLTEK 指令集說明 15 SZ [m]. i 如果數(shù)據(jù)存儲(chǔ)器的第i 位為0 則跳過下一條指令 說明 本指令是判斷存儲(chǔ)器內(nèi)第i 位值是否為0 若為0 則跳過下一行指令即放棄在目前指 令執(zhí)行期間所取得的下一條指令并插入一個(gè)空周期用以得正確的指令二個(gè)指令周 期否則執(zhí)行下一條指令一個(gè)指令周期 運(yùn)算過程 如果 [m].i = 0 跳過下一行指令 影響標(biāo)志位 TC2 TC1 TO PD OV Z AC C TABRDC [m] 讀取ROM 當(dāng)前頁的內(nèi)容并送至數(shù)據(jù)存儲(chǔ)器和TBLH 說明 本指令是將表格指針指向程序寄存器當(dāng)前頁將低位送到存儲(chǔ)器高位直接送到TBLH 寄存器內(nèi) 運(yùn)算過程 [m] ..程序存儲(chǔ)器低四位 TBLH..程序存儲(chǔ)器高四位 影響標(biāo)志位 TC2 TC1 TO PD OV Z AC C TABRDL [m] 讀取ROM 最后一頁的內(nèi)容并送至數(shù)據(jù)存儲(chǔ)器和TBLH 說明 本指令是將TABLE 指針指向程序寄存器最后頁將低位送到存儲(chǔ)器高位直接送到 TBLH 寄存器內(nèi) 運(yùn)算過程 [m] ..程序存儲(chǔ)器低四位 TBLH..程序存儲(chǔ)器高四位 影響標(biāo)志位 TC2 TC1 TO PD OV Z AC C XOR A, [m] 累加器與立即數(shù)做異或運(yùn)算結(jié)果放入累加器 說明 本指令是把累加器值 數(shù)據(jù)存儲(chǔ)器值做邏輯異或結(jié)果放到累加器 運(yùn)算過程 ACC..ACC “XOR” [m] 影響標(biāo)志位 TC2 TC1 TO PD OV Z AC C XORM A, [m] 累加器與數(shù)據(jù)存儲(chǔ)器做異或運(yùn)算結(jié)果放入數(shù)據(jù)存儲(chǔ)器 說明 本指令是把累加器值數(shù)據(jù)存儲(chǔ)器值做邏輯異或結(jié)果放到數(shù)據(jù)存儲(chǔ)器 運(yùn)算過程 [m]..ACC “XOR” [m] 影響標(biāo)志位 TC2 TC1 TO PD OV Z AC C XOR A, x 累加器與數(shù)據(jù)存儲(chǔ)器做異或運(yùn)算結(jié)果放入累加器 說明 本指令是把累加器值與立即數(shù)做邏輯異或結(jié)果放到累加器 運(yùn)算過程 ACC..ACC “XOR” X 影響標(biāo)志位 TC2 TC1 TO PD OV Z AC C |