汇编语言实现SRC处100字节无符号数累加(结果不超过1个字节),和送到DEN?

如题所述

assume cs:code,ds:data
data segment
data1 db 12h,34h,56h ;按照高高低低的顺序保存在内存中的,所以是563412h,下同
data2 db 0abh,0cdh,0efh
ans dd ?
data ends
code segment
start:
mov ax,data
mov ds,ax
mov bx,offset ans
mov di,offset data1
mov si,offset data2
mov ax,[di]
add ax,[si]
mov [bx],ax
mov ax,[di+1]
adc ax,[si+1] ;用adc带进位加法就能算高位的值了
mov [bx+1],ax
mov ax,[di+2]
adc ax,[si+2]
mov [bx+2],ax
mov ax,0
adc ax,0 ;3字节的值加上有进位,所以要算第4字节的
mov [bx+3],ax
mov ah,4ch
int 21h
code ends
end start

计算的是563412h+efceabh的值,结果是14602bdh,结果无误。可以自己用debug试试
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-12-28
CODE SEGMENT
ASSUME CS:CODE
SRC DB 100 DUP(?)
DEN DB 0
START: PUSH CS
POP DS
PUSH CS
POP ES
LEA SI,SRC
MOV CX,100
MOV BL,0
CLD
@1:
LODSB
ADD BL,AL
LOOP @1
MOV DEN,BL
MOV AH,4CH
INT 21H
CODE ENDS
END START
相似回答