回覆列表
  • 1 # pzyyo24296

    同研究一下,0 addar TmpL,1 btrsc status,C_FLAG inc TmpH,0 ;放入值 高位放入B 低位放入A movar B movr TmpL,02,C_FLAG ,Z_FLAG goto ADD_loop movr TmpH,2 btrsc status,C_FLAG inc TmpH,1 movar TmpL movr TmpH:(相加法) clrr TmpL ;清臨時暫存器 clrr TmpH movar TmpL ;放入初值 movia 3 ;放入計數次數(4-1) movar downcount ADD_star,0ADD_end:3: clrr TmpL ;清臨時暫存器 clrr TmpH mulia a,2 ;C_FLAG 進位標誌 inc TmpH,1 rl TmpL,1 btrss status;放入值 movar B movr TmpL: movr downcount,1 movr TmpH,C_FLAG inc TmpH: ;改為呼叫形式應該更好ADD_loop;乘數過大采用呼叫的形式更好 btrsc status,C_FLAG ;注微控制器”相乘“會影響”進位標誌“ inc TmpH,1 btrsc status,Z_FLAG ;Z_FLAG 零標誌 goto ADD_end movr TmpL,0 ,1 ;這裡沒有考慮溢位問題 decr downcount,1 btrss status,0 movar B movr TmpL,1 mulia a:下面的幾種方法(下面採用彙編的形式寫,可能這樣比C更容易理解一點)1:(移位法) clrr TmpL ,1 ;不帶進位左移(左移兩位相當於*4) btrss status;清臨時暫存器 clrr TmpH movar TmpL rl TmpL

  • 中秋節和大豐收的關聯?
  • 谷歌和Facebook之類的存在會傷害出版業嗎?