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

📄 3bcd码相乘.asm

📁 BCD码相乘
💻 ASM
字号:
DATAS  SEGMENT
       X   DB   55H
       Y   DB   24H
       Z   DB   5H DUP(?)
       P   DB   '55*24='
       Q   DB   6H DUP(?)
DATAS  ENDS

STACKS SEGMENT
       DB  20H DUP(?)
STACKS ENDS

CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,SS:STACKS
MAIN  PROC  FAR
START:
    MOV  AX,DATAS
    MOV  DS,AX
    MOV  AX,STACKS
    MOV  SS,AX
    MOV  AX,0
    MOV  DX,0
    MOV  SI,0
    MOV  BX,0
    MOV  CX,0
    
    MOV  BL,Y
    AND  BL,0F0H
    MOV  AL,BL
    MOV  CL,4
    SHR  AL,CL
    MOV  BH,6H
    MUL  BH
    MOV  BL,Y
    SUB  BL,AL
    MOV  CL,BL
    
    PUSH CX
    
    MOV  BL,X
    PUSH BX
    AND  BL,0FH
    MOV  AL,BL
    POP  BX
    AND  BL,0F0H
    MOV  AH,BL
    MOV  CL,4
    SHR  AH,CL
   
    POP  CX
L1: PUSH AX
    CALL DOUT
    POP  AX
    LOOP L1
    MOV  BX,DX
    MOV  SI,0
    MOV  CX,BX
    INC  CX
L4 :MOV  AL,Z[BX]
    AND  AL,0FH
    OR   AL,30H
    MOV  Q[SI],AL
    INC  SI
    DEC  BX
    LOOP L4
    MOV  Q[SI],'$'
    MOV  DX,OFFSET P
    MOV  AH,9
    INT  21H
    
    MOV AH,4CH
    INT 21H
    RET
MAIN ENDP
DOUT   PROC  NEAR
       PUSH  SI
L3 :   ADD  AL,Z[SI]
       AAA
       MOV  Z[SI],AL
       MOV  AL,AH
       XOR  AH,AH
       AAA
       CMP  DX,SI
       JA   NEXT
       MOV  DX,SI
NEXT:  INC  SI
       CMP  AL,0
       JNZ   L3
       POP  SI
       RET
DOUT   ENDP
    
CODES ENDS
    END START

⌨️ 快捷键说明

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