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

📄 02c.asm

📁 录音子程序 mov dx,offset news_2 显示放音提示
💻 ASM
字号:
DATA SEGMENT
H1 DB "The addends all must be two figures, insufficient adds 0 in front.",13,10,'$'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START PROC FAR
STT:PUSH DS
    SUB AX,AX
    PUSH AX
;==============================
    MOV AX,DATA
    MOV DS,AX

    LEA DX,H1   ;打印注释:加数和被加数都必须为两位数,不够的前面补0
    MOV AH,09H
    INT 21H

    SUB CX,CX   ;CX清零
    SUB DX,DX   ;DX清零
    CLC         ;清CF


    MOV AH,1    ;输入第1个数
    INT 21H
    MOV CH,AL   ;放入CH
    SUB CH,30H  ;ASCII码调整

    INT 21H     ;输入第2个数
    MOV CL,AL   ;放入CL
    SUB CL,30H  ;ASCII码调整

    MOV AH,2    ;打印加号
    MOV DL,2BH
    INT 21H

    MOV AH,1    ;输入第3个数
    INT 21H
    MOV DH,AL   ;放入DH
    SUB DH,30H  ;ASCII码调整

    INT 21H     ;输入第4个数
    MOV DL,AL   ;放入DL
    SUB DL,30H  ;ASCII码调整

    ADD CL,DL   ;ASCII码个位加法

    CMP CL,10   ;比较个位数结果是否大于10
    JNC AA      ;大于等于10则跳至AA
    
    ADD CH,DH  ;个位不向十位进位的十位加法

    JMP BB

AA: ADD CH,DH  ;个位向十位有进位的十位加法
    ADD CH,1
    SUB CL,10

BB: MOV DL,3DH  ;打印等号
    MOV AH,2
    INT 21H

    CMP CH,10   ;比较十位数结果是否大于10
    JNC CC

    MOV DL,0    ;打印十位不向百位进位的百位=0
    INT 21H

    JMP CCC

CC: MOV DL,31H  ;打印十位向百位进位的百位=1
    INT 21H
    SUB CH,10

CCC:ADD CH,30H  ;ASCII码调整
    MOV DL,CH   ;打印结果中的十位
    INT 21H

    ADD CL,30H  ;ASCII码调整
    MOV DL,CL   ;打印结果中的个位
    INT 21H

    MOV AH,1    ;暂停
    INT 21H
;==============================
    RET
START ENDP
CODE ENDS
END STT

⌨️ 快捷键说明

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