loopjud jmp print1 print1: mov ah,09h lea dx,va1 int 21h ret print2: mov ah,09h lea dx,va2 int 21h ret judgeendp
crlf proc near mov dl,0dh mov ah,2h int 21h mov dl,0ah mov ah,02h int 21h
ret ;返回 crlfendp
code ends
end start
三、 结果演示
实验二、判断单词个数
一、 实验内容
给定句子,编写程序判断句子中单词的个数。
二、 算法分析
设置bl标志位,当bl为1时表示当前元素是字母。设置循环判断每一位的元素是否在二十六个字母的大小写范围内。利用si确定到每一位元素,设置多个跳转条件。每判断一次就让si加一。
三、 源代码
.model small .data
stringdb \endstringdb ? .code main proc far movax,@data movds,ax
mov cx,(offset endstring-offset string) mov dl,0
mov bl,0;标志位为1是字母 movsi, offset string again:
cmp bl,0
jnz l1;zf 不为1跳转 mov al,[si] cmpal,'A' jb l4 cmpal,'Z' ja l3 mov bl,1 inc dl jmp l4 l3: cmpal,'a' jb l4 cmpal,'z' ja l4 mov bl,1 inc dl jmp l4 l1: mov al,[si] cmpal,'A' jae l5