设有一字符串存放在以 BUF 为首址的数据区中,其最后一字符‘$’作为结束标志,计算该字符串的长度并输出
DATAS SEGMENT
BUF DB 20,?,20 DUP('$')
DATAS ENDS
STACKS SEGMENT
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
MOV ES,AX
LEA DX,BUF
MOV AH,10 ;输入
INT 21H
mov dl,0ah ;换行
mov ah,2
int 21h
mov dl,0dh
mov ah,2
int 21h
MOV BX,OFFSET BUF[2]
MOV AL,0
MOV CL,0
L:
MOV AL,BUF[BX]
CMP AL,'$'
JE OVER
INC BX
INC CL
JMP L
OVER:
MOV DL,CL
ADD DL,30H
MOV AH,02
INT 21H
MOV AH,4CH
INT 21H
CODES ENDS
END START
结果图示例: