回 帖 发 新 帖 刷新版面

主题:[讨论]32位加法实现程序 高手进来帮忙改一改

DATA  SEGMENT
              DATA1 DB 12H,45H,78H,48H
              DATA2 DB 45H,34H,45H,45H
              DATA3 DB 4 DUP(?)
              DATA  ENDS
              
             CODE   SEGMENT
                    ASSUME CS:CODE,DS:DATA
             AGAIN: MOV CX,2
                    XOR SI,SI
                    MOV AX, WORD PTR DATA1[SI]
                    ADC AX, WORD PTR DATA2[SI]
                    MOV WORD PTR DATA3[SI],AX
                    INC SI
                    INC SI
                    LOOP  AGAIN
              CODE ENDS

回复列表 (共1个回复)

沙发

.data
DATA1 DB 12H,45H,78H,48H
DATA2 DB 45H,34H,45H,45H
DATA3 DB 4 DUP(?) 
.code
start:
    mov ax,@data  ;如果是dos程序,请设置段寄存器
    mov ds,ax

    MOV CX,2
    XOR SI,SI
    clc ;  clc清空CF位标志,
        ;因为你先使用了adc,所以第一次应确保CF为0
            ;注意AGAIN标号的位置
AGAIN:
        MOV AX, WORD PTR DATA1[SI]
        ADC AX, WORD PTR DATA2[SI]
        MOV WORD PTR DATA3[SI],AX
        INC SI
        INC SI
        LOOP  AGAIN

    mov ah,4ch     ;结束,可以修改al设置返回码
    int 21h
end start

我来回复

您尚未登录,请登录后再回复。点此登录或注册