将内存first区多字节10进制数与second区相同10进制数相加,结果保存到dest区
DATA SEGMENT
FIRST DB 11H, 22H, 33H, 44H, 55H, 66H, 77H, 88H, 99H, 00H,
SECOND DB 88H, 77H, 66H, 55H, 44H, 33H, 22H, 11H, 00H, 99H,
DEST DB 10 DUP (?)
DATA ENDS
STACK SEGMENT PARA STACK 'STACK'
STAPN DW 50 DUP(?)
TOP EQU LENGTH STAPN
STACK ENDS
COSEG SEGMENT
ASSUME CS: COSEG, DS: DATA, ES: DATA, SS: STACK
FENG: MOV AX, DATA
MOV ES, AX
MOV DS, AX
MOV AX, STACK
MOV SS, AX
MOV AX, TOP
MOV SP, AX
MOV SI, OFFSET FIRST
MOV DI, OFFSET DEST
MOV BX, OFFSET SECOND
MOV CX, LENGTH DEST
CLD
CLC
ADDIT: LODS FIRST
ADC AL, [BX]
DAA
STOS DEST
INC BX
LOOP ADDIT
MOV AH, 4CH
INT 21H
COSEG ENDS
END FENG
该程序使用汇编语言实现两个多字节10进制数数组的逐位相加,并将结果存储到第三个数组中。通过LODS指令加载操作数并利用ADC指令进行加法运算,同时使用DAA指令确保十进制数的正确性。
3938

被折叠的 条评论
为什么被折叠?



