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

📄 plus.asm

📁 两个数相乘的汇编源码 微机原理课程设计 差不多就是学汇编
💻 ASM
字号:
DATA SEGMENT
DATA1 DB 33H,39H,31H,37H,38H,30H      ;第一个数据(作为被加数)
DATA2 DB 36H,35H,30H,38H,32H,30H      ;第二个数据(作为加数)
MES1   DB '+','$'
MES2   DB '=','$'
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     ES,AX
        MOV     AX,STACK
        MOV     SS,AX
        MOV     AX,TOP
        MOV    SP,AX
        MOV    SI,OFFSET DATA1
        MOV    BX,05
        CALL    DISPL             ;显示被加数
        MOV    AH,09H
        LEA     DX,MES1
        INT     21H
        MOV    SI,OFFSET DATA2
        MOV    BX,05               ;显示加数
        CALL    DISPL
        MOV    AH,09H
        LEA     DX,MES2
        INT     21H
        MOV    SI,OFFSET DATA1
        MOV    DI,OFFSET DATA2
        CALL    SUBA               ;加法运算
        MOV    SI,OFFSET DATA1
        MOV    BX,06               ;显示结果
        CALL    DISPL
        MOV    DL,0DH
        MOV    AH,02H
        INT     21H
        MOV    DL,0AH
        MOV    AH,02H
        INT     21H
        INT     21H
        MOV    AX,4C00H
        INT     21H
DISPL   PROC   NEAR                ;显示子功能
DSI:    MOV    AH,02
        MOV    DL,[SI+BX-1]         ;显示字符串中一字符
        INT     21H
        DEC     BX                  ;修改偏移量
        JNZ     DSI
        RET
DISPL   ENDP
SUBA    PROC    NEAR
        MOV     DX,SI
        MOV     BP,DI
        MOV     BX,06
SU1:    SUB      BYTE PTR[SI+BX-1],30H
        SUB      BYTE PTR[DI+BX-1],30H
        DEC     BX                          ;将ASCII 码表示的数字串 
        JNZ     SU1                          ;转化为十六进制的数字串
        MOV     SI,DX
        MOV     DI,BP
        MOV     CX,06                        ;包括进位,共6位
        CLC                                   ;清进单位
SU2:    MOV     AL,[SI]
        MOV     BL,[DI]
        ADC     AL,BL                        ;带进位相加
        AAA                                  ;非组合BCD码的加法调整
        MOV     [SI],AL                      ;结果送被加数区
        INC     SI
        INC     DI                           ;指向下一位
        LOOP    SU2                         ;循环
        MOV     SI,DX
        MOV     DI,BP
        MOV     BX,06
SU3:    ADD     BYTE PTR [SI+BX-1],30H
        ADD     BYTE PTR [DI+BX-1],30H
        DEC     BX       ;十六进制的数字串转化ASCII码表示的数字串
        JNZ     SU3
        RET     
SUBA   ENDP
CODE   ENDS
   END     START

⌨️ 快捷键说明

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