bcd.asm

来自「BCD相乘的一个小程序!!!!第一次上载请见谅」· 汇编 代码 · 共 94 行

ASM
94
字号
DISPL   MACRO
        ADD     DL,30H
        MOV     AH,02H
        INT     21H
        ENDM
CRLF    MACRO
        MOV DL,0DH
        MOV AH,02H
        INT 21H
        MOV DL,0AH
        MOV AH,02H
        INT 21H
        ENDM
DATA    SEGMENT
DATA1   DB      01001000B       ;48H
DATA2   DB      01110101B       ;75H
RESULT  DW      ?
DATA    ENDS
STACK   SEGMENT
STA     DB      20      DUP (?)
TOP     EQU     LENGTH STA 
STACK   ENDS
CODE    SEGMENT
ASSUME  CS:CODE,DS:DATA,SS:STACK,ES:DATA
START:  MOV     AX,DATA
        MOV DS,AX
        MOV AX,STACK
        MOV SS,AX
        MOV AX,TOP
        MOV SP,AX
        MOV DI,OFFSET RESULT
        MOV SI,OFFSET DATA1
        MOV AH,[SI]
        MOV CL,04
        SHR AH,CL
        MOV DL,AH
        DISPL
        MOV AL,[SI]
        MOV BL,AL
        AND AL,00001111B
        MOV DL,AL
        DISPL
        CRLF
        MOV SI,OFFSET DATA2
        MOV AH,[SI]
        MOV CL,04
        SHR AH,CL
        MOV DL,AH
        DISPL
        MOV AL,[SI]
        AND AL,00001111B
        MOV DL,AL
        DISPL
        CRLF
        XOR DX,DX
S1:     CMP BL,0
        JZ S2
        CLC
        MOV AL,[SI]
        ADC AL,DL
        DAA
        MOV DL,AL
        MOV AL,00H
        ADC AL,DH
        DAA
        MOV DH,AL
        MOV AL,BL
        DEC AL
        DAS
        MOV BL,AL
        JMP S1
S2:     MOV [RESULT],DX
        MOV SI,DX
        MOV CL,04
        SHR DH,CL
        MOV DL,DH
        DISPL
        MOV DX,SI
        AND DH,00001111B
        MOV DL,DH
        DISPL
        MOV DX,SI
        MOV CL,04
        SHR DL,CL
        DISPL
        MOV DX,SI
        AND DL,00001111B
        DISPL
        CRLF
S3:     MOV AX,4C00H
        INT 21H
CODE ENDS
END START

⌨️ 快捷键说明

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