要求
提示:用A号功能调用输入数字串。
例如:
输入:12459703 经计算,1+2+4+5+9+7+0+3=31
输出:31
代码
data segment
str db 30,?,30 dup(?)
data ends
code segment
assume ds:data,cs:code
main proc far
start:
mov ax,data
mov ds,ax
mov cx,0
mov si,1 ;数据段第一个字节是实际输入字符个数
lea dx,str
mov ah,0ah ;A号功能调用
int 21h
mov cl,str[si] ;个数放在cx中
mov bx,0
accum:
inc si ;si每次加1
mov dl,str[si]
mov dh,0
sub dl,30h ;从字符转为数字
add bx,dx
loop accum
mov dl,0ah ;换行
mov ah,02h
int 21h
;mov cx,0
;输入一些东西
push_sth:
inc cx
mov dl,10
mov ax,bx
div dl ;商在al里,余数在ah里
mov dl,ah
mov dh,0
push dx
mov ah,0
mov bx,ax
cmp al,0
jnz push_sth
pop_sth:
pop dx
mov dh,0
add dl,30h
mov ah,02h
int 21h
loop pop_sth
mov ax,4c00h
int 21h
main endp
code ends
end start