该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
这是我自己找的代码,一直有错,不知道怎么改
DATA SEGMENT
BUFF1 DB "Please enter BCD code:$"
BUFF2 DB 50
DB ?
DB 50 DUP(0)
BUFF3 DB 50
DB ?
DB 50 DUP(0)
DATA ENDS
SSTACK SEGMENT STACK
DW 64 DUP(?)
SSTACK ENDS
CODE SEGMENT
ASSUME CS:CODE
START: MOV AX,DATA
MOV DS,AX
MOV DX,OFFSET BUFF1
MOV AH,9H
INT 21H
XOR AX, AX ;1、将AX清零;
; 2、将CF标志位也清零。
;也就是说相当于以下两条指令:
; MOV ax,0
; CLC
MOV CX, 0004H ;输入数据长度。[4000]:01,02..?
MOV SI, 3500H
MOV DI, 3510H
MOV DX,OFFSET BUFF2
MOV AH,0AH
INT 21H
LEA SI,BUFF2
A1: MOV AL, [SI]
ADD AL, AL ;*2
MOV BL, AL
ADD AL, AL ;*2
ADD AL, AL ;*2
ADD AL, BL ;*10
INC SI
ADD AL, [SI] ;BCD 个位,十位相加
MOV [DI], AL ;存结果
INC SI
INC DI
LOOP A1 ;cx不为零继续
MOV DX,OFFSET BUFF3
MOV AH,0AH
INT 21H
MOV AH,4CH
INT 21H ;程序终止
CODE ENDS
END START