使用8086汇编语言输入一个字符串,将该字符串中的数字进行累加,将累加结果显示输出。
时间: 2023-06-11 08:07:34 浏览: 110
8086对字符串的处理和显示
下面是一个简单的8086汇编程序,可以实现输入字符串并将其中的数字累加并输出:
```
DATA SEGMENT
MSG DB 'Enter a string: $'
DIG SUM DW 0
STR DB 80 DUP('$')
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA
MAIN PROC
MOV AX, DATA
MOV DS, AX
; 输出提示消息
MOV AH, 09H
LEA DX, MSG
INT 21H
; 读取输入字符串
XOR SI, SI
XOR CX, CX
MOV AH, 0AH
LEA DX, STR
INT 21H
; 将字符串中的数字累加
XOR BX, BX
MOV CX, WORD PTR [STR+1]
ADD CX, 1
ADD DX, WORD PTR [STR+1]
MOV DI, DX
ADD DI, CX
MOV DL, 0AH
ADD DI, 1
MOV DH, '$'
MOV WORD PTR [DI], DH
DEC DI
MOV AH, 02H
MOV CX, 10
ADD DX, CX
XOR CX, CX
LEA SI, [STR+3]
REP LOOP1
MOV AX, SUM
; 输出累加结果
MOV CX, 4
MOV BX, 10
LOOP2:
XOR DX, DX
DIV BX
PUSH DX
INC CX
CMP AX, 0
JNZ LOOP2
MOV AH, 02H
MOV DL, ' '
INT 21H
LOOP3:
POP DX
ADD DL, '0'
MOV AH, 02H
INT 21H
LOOP LOOP3
MOV AH, 4CH
INT 21H
MAIN ENDP
LOOP1:
MOV AL, [SI]
CMP AL, '0'
JB SKIP
CMP AL, '9'
JA SKIP
SUB AL, '0'
ADD SUM, AX
SKIP:
INC SI
LOOP LOOP1
CODE ENDS
END MAIN
```
这个程序中,首先输出提示消息,然后读取用户输入的字符串。接着,程序会遍历字符串中的每个字符,如果是数字,则将其累加到 `SUM` 变量中。最后,程序将累加结果输出。
这只是一个简单的例子,实际应用中可能需要更复杂的逻辑来处理不同的情况。
阅读全文