实验3—字符匹配程序:从键盘上输入一个字符串,回车结束并回显。用串操作指令设计程序,实现在输入的字符串存储区中寻找空格字符,退出时给出是否找到的信息,并给出具体位置。
流程图:三、源**:
datas segment
s1 db 14h,50 dup(0)
d1 db 100,0,100 dup(0)d2 db 0dh,0ah,'$回车换行。
d3 db 'yes location:$'
d4 db 'no $'
d5 dw 0;存放有几个空格。
d6 db 100 dup(0);存放空格的位置信息。
d7 db '
datas ends
codes segment
assume cs:codes,ds:datasstart:
cldmov ax,datas
mov ds,ax
mov es,ax
lea dx,d1
mov ah,0ah;
int 21h
lea dx,d2;回车换行。
mov ah,09h
int 21h
mov si,0
mov ch,0
mov cl,d1[1];字符。
mov bx,2
lea di, offset d1[bx]mov al,' 空格赋给al
lp:repne scasb;不相等时重复扫描字符串。
jnz over;当前字符不为空格时跳转到over程序。
mov bh,0;
mov bl,d1[1]
sub bx,cx
mov d6[si],bl;d6里存着位置的信息。
inc si
inc d5;找到一个空格,d5中存放的空格数量就增加1cmp cx,0;cx=0终未查到。
jne lp;cx不等于0时,继续扫描。
over:cmp d5,0
je noch;若没有扫描到空格,跳转到noch,即显示no,表示没有空格。
lea dx,d3;若扫描到空格,则显示d3中的yes,location
mov ah,09h
int 21h
mov cx,d5;cx中存空格数量。
mov si,0
show显示位置location
mov al,d6[si];将位置的数字置为被除数。
mov ah,0;余数清零。
mov bl,10
div bl
mov bh,ah
cmp al,0;有无进位判断。
je buxian
add al,30h;显示位置。
mov dl,al
mov ah,02h
int 21h
buxian:
mov al,bh
add al,30h
mov dl,al
mov ah,02h
int 21h
inc si
lea dx,d7
mov ah,09h
int 21h
loop show
jmp sto
noch:lea dx,d4;显示没找到空格。
mov ah,09h
int 21h
sto: mov ah,4ch
int 21h
codes ends
end start
三、debug结果:
开始未输入字符串:
输入字符串并回显:
扫描空格期间,数据段一直无变化,最后显示出找到空格,并显示空格位置。
汇编上机作业
微机原理上机实验报告 一 班级 学号姓名 实验目的。掌握汇编语言程序的上机过程与debug调试方法。实验内容。比较两个字符串string1和string2所含的字符是否相同。若相同则显示 match 否则,显示 no match 一 源程序见资料。二 按照上课所讲的操作步骤对以上所给源程序进行调试,...
汇编上机作业
指令系统练习。1.指出下列的错误并更正 very,block均为偏移量 mov ds,very mov very si es bl mov block dx si al mov very,block 2.在指令push ax的执行过程中,要进行的操作是 sp 2 sp sp 1 sp sp 2 sp...
汇编上机作业
计算机学院11级汇编语言程序设计实验。2014.11一 实验环境介绍与演示 3学时 16位程序实验环境。32位程序实验环境。二 实验内容及建议学时分配数 2学时 熟悉dos编程环境 编写一个dos环境的汇编语言程序,要求从键盘输入一串字符,去除连续重复的字符后再显示。如 输入 abbcccba 应该...