汇编语言 替换字符(注意:是用汇编语言!)
在数据区定义一串字符,要求在字符串中搜索字符A。如果找到该字符,则用字符B替代字符A;如果未找到该字符,则在字符串后插入字符B,试编写此程序。...
在数据区定义一串字符,要求在字符串中搜索字符A。如果找到该字符,则用字符B替代字符A;如果未找到该字符,则在字符串后插入字符B,试编写此程序。
展开
2个回答
展开全部
;字符串扫描,查找字符
data segment
str1 db 'ASDFGHJKIGKLMNOPQRST$'
count equ $-str1-1
str2 db count dup(?),'$'
data ends
code segment
assume ds:data,cs:code
start:
mov ax,data
mov ds,ax
mov di,0
mov cx,count
mov bx,0
a0001: cmp byte ptr str1[di],'A'
je a0002
mov al,str1[di]
mov str2[di],al
inc bx
jmp a0003
a0002: mov byte ptr str2[di],'B'
a0003:
inc di
loop a0001
mov ah,09h
lea dx,str1
int 21h
mov ah,02h
mov dl,0dh
int 21h
mov dl,0ah
int 21h
cmp bx,count
jne a0004
mov al,'B'
xchg str2[di],al
mov str2[di+1],al
a0004:
mov ah,09h
lea dx,str2
int 21h
mov ah,4ch
int 21h
code ends
end start
data segment
str1 db 'ASDFGHJKIGKLMNOPQRST$'
count equ $-str1-1
str2 db count dup(?),'$'
data ends
code segment
assume ds:data,cs:code
start:
mov ax,data
mov ds,ax
mov di,0
mov cx,count
mov bx,0
a0001: cmp byte ptr str1[di],'A'
je a0002
mov al,str1[di]
mov str2[di],al
inc bx
jmp a0003
a0002: mov byte ptr str2[di],'B'
a0003:
inc di
loop a0001
mov ah,09h
lea dx,str1
int 21h
mov ah,02h
mov dl,0dh
int 21h
mov dl,0ah
int 21h
cmp bx,count
jne a0004
mov al,'B'
xchg str2[di],al
mov str2[di+1],al
a0004:
mov ah,09h
lea dx,str2
int 21h
mov ah,4ch
int 21h
code ends
end start
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询