北理工汇编上机实验

发布 2023-05-20 22:15:28 阅读 5813

实验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 应该...