字符串逆序,字符查找
- 格式:docx
- 大小:15.29 KB
- 文档页数:3
第四次作业
1.编写程序,在数据段中定义一串字符串如“abcdefg”,将该字
符串逆向存储,即变为“gfedcba”,并输出到屏幕上。
思路:利用movsb指令将abcdefg存储到新地址,再逐个字符逆向存储到原地址。
代码:
data segment
X db 'abcdefg$'
data ends
code segment 'code'
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
lea si,X
mov es,ax
mov di,si
add di,8
mov cx,7
loop1: ;将string存到es:di
movsb
loop loop1
sub di,1
lea si,X
mov cx,7
loop2: ;将string逆向存回原地址
mov ax,[di]
mov [si],ax
sub di,1
add si,1
loop loop2
mov ax,24h ;添加终止符$
mov [si],ax
lea dx,X ;打印结果
mov ah,9
int 21h
mov ax,4c00h
int 21h
code ends
end start
结果:
2.如上题的字符串,编写程序,在字符串中查找字符“d”所在
的位置。
思路:利用scasb指令诸位比较是否是制定字符,通过标志位比较命令jnz控制是否继续进行比对,找到指定字符后,存储其位置。
代码:
data segment
X db 'abcdefg$'
data ends
code segment
assume cs:code,ds:data
start:
mov ax,data
mov es,ax
lea di,X
mov al,'d'
mov cx,7
loop1: ;寻找字母d repnz scasb
jnz loop1
sub di,offset X ;记录d所处的位置mov ax,4c00h
int 21h
code ends
end start。