⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cal.asm

📁 以&#1049307 &#1049319 &#1049287 &#1049289 &#1049317 &#1049301 &#1049288 &#1049283 为核心设计的&#1049320 &#1
💻 ASM
字号:
;   ;;=================================================================
;   ;;a*b
;   ;;INPUT:      A_Cal_H/A_Cal_M/A_Cal_L
;   ;;            B_Cal_H/B_Cal_M/B_Cal_L
;   ; 
;   ;;OUTPUT      B_Cal_H/B_Cal_M/B_Cal_L/.../A_Cal_H/A_Cal_M/A_Cal_L
;   ;;=================================================================
;   ;L_Cal_MUL3x3:
;   ;       MOV    A,24
;   ;       MOV    Mul_Count,A
;   ;      
;   ;       CLR    C_Cal_L
;   ;       CLR    C_Cal_M
;   ;       CLR    C_Cal_H
;   ;       CLR    C
;   ;       
;   ;L_MUL4_LP1:
;   ;       RRC    C_Cal_H
;   ;       RRC    C_Cal_M
;   ;       RRC    C_Cal_L
;   ;
;   ;       RRC    A_Cal_H
;   ;       RRC    A_Cal_M
;   ;       RRC    A_Cal_L
;   ;
;   ;       SNZ     C
;   ;       JMP     L_Skip_ADD_RESULT
;   ;
;   ;;=================================================================
;   ;L_TO_ADD_RESULT:
;   ;       MOV    A,B_Cal_L
;   ;       ADDm   A,C_Cal_L
;   ;
;   ;       MOV    A,B_Cal_M
;   ;       ADCM   A,C_Cal_M
;   ;
;   ;       MOV    A,B_Cal_H
;   ;       ADCM   A,C_Cal_H
;   ;;=================================================================
;   ;
;   ;L_Skip_ADD_RESULT:       
;   ;       SDZ    Mul_Count
;   ;       JMP    L_MUL4_LP1       
;   ; 
;   ;
;   ;       RRC    C_Cal_H
;   ;       RRC    C_Cal_M
;   ;       RRC    C_Cal_L
;   ;
;   ;       RRC    A_Cal_H
;   ;       RRC    A_Cal_M
;   ;       RRC    A_Cal_L
;   ;
;   ;       MOV    A,C_Cal_L       ;C to B
;   ;       MOV    B_Cal_L,A
;   ;       MOV    A,C_Cal_M
;   ;       MOV    B_Cal_M,A
;   ;       MOV    A,C_Cal_H
;   ;       MOV    B_Cal_H,A    
;   ;       RET  
;   ;;=================================================================





;=================================================================
;a*b
;INPUT:      A_Cal_M/A_Cal_L
;            B_Cal_M/B_Cal_L
 
;OUTPUT      B_Cal_M/B_Cal_L/A_Cal_M/A_Cal_L
;=================================================================
L_Cal_MUL2x2:
       MOV    A,16
       MOV    Mul_Count,A
      
       CLR    C_Cal_L
       CLR    C_Cal_M
       CLR    C
       
L_MUL4_LP1:
       RRC    C_Cal_M
       RRC    C_Cal_L

       RRC    A_Cal_M
       RRC    A_Cal_L

       SNZ     C
       JMP     L_Skip_ADD_RESULT

;=================================================================
L_TO_ADD_RESULT:
       MOV    A,B_Cal_L
       ADDm   A,C_Cal_L

       MOV    A,B_Cal_M
       ADCM   A,C_Cal_M
;=================================================================

L_Skip_ADD_RESULT:       
       SDZ    Mul_Count
       JMP    L_MUL4_LP1       
 

       RRC    C_Cal_M
       RRC    C_Cal_L

       RRC    A_Cal_M
       RRC    A_Cal_L

       MOV    A,C_Cal_L       ;C to B
       MOV    B_Cal_L,A
       MOV    A,C_Cal_M
       MOV    B_Cal_M,A
       RET  
;=================================================================














;=================================================================
; IN:    A_Cal_3,A_Cal_2,A_Cal_1,A_Cal_0
;        B_Cal_1,B_Cal_0
;
;OUT:   shang --  A_Cal_1(high 8BIT),A_Cal_0(low 8BIT)
;       yu shu--  DIV_BUF_H,DIV_BUF_L               
;
;BUFFER:       DIV_BUF_H  ,DIV_BUF_L   ,Div_Count
;              DIV_TEMP_H ,DIV_TEMP_L
;=================================================================
L_Cal_DIV3d2:
       MOV    A,24;   32
       MOV    Div_Count,A
      
       CLR    DIV_BUF_H
       CLR    DIV_BUF_L
        
DIV4_LP:
;--------------------------------------------------
;--------------------------------------------------

       CLR    C
       RLC    A_Cal_0
       RLC    A_Cal_1
       RLC    A_Cal_2

       RLC    DIV_BUF_L
       RLC    DIV_BUF_H

;--------------------------------------------------
;--------------------------------------------------

       MOV    A,DIV_BUF_L
       SUB    A,B_Cal_0
       MOV    DIV_TEMP_L,A    

       MOV    A,DIV_BUF_H
       SBC    A,B_Cal_1
       MOV    DIV_TEMP_H,A    
    
       SNZ    C
       JMP    GO_ON_DO          

       MOV    A,DIV_TEMP_L
       MOV    DIV_BUF_L,A  

       MOV    A,DIV_TEMP_H
       MOV    DIV_BUF_H,A  
  
       INC    A_Cal_0
  
        
GO_ON_DO:
       SDZ    Div_Count
       JMP    DIV4_LP       
       RET
;==================================================








 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -