汇编语言——实验十二
Posted 大灬白
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了汇编语言——实验十二相关的知识,希望对你有一定的参考价值。
实验3
定义:
BUFF DB ‘ABCD E F G H I J K EFGHIJK EFGHIJK’
STR1 DB 12 DUP(?)
LEN DB ?
用串指令结合子过程的概念,编写程序完成以下操作:
(1)特定赋值子过程, 对字符串STR1全部置‘*’符。
(2)拷贝子过程,参数包括方向:
如,(1)从左到右把BUFF中的字符串传送到STR1。
(2)从右到左把BUFF中的字符串传送到STR1。
(3)字符串比较子过程:
比较BUFF与STR1两个字符串是否相等,如相等则DX=1,
否则DX=0。
(4)匹配算法子过程:
查找BUFF中有无字符 , 此 外 , 把 字 符 ,此外,把字符 ,此外,把字符出现的次数计入
BX寄存器。
(1)特定赋值子过程,对字符串STR1全部置‘*’符。
代码:
data segment
buff db 'abcd$efghijk$'
str1 db 12 dup(?)
len db ?
data ends
code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
mov cx,12
mov bx,0
mov dl,'*'
kk: mov str1[bx],dl
inc bx
loopne kk
mov ah,4ch
int 21h
code ends
end start
运行结果:
str1字符串的地址是000D+BX,
赋值完之后:
(2)拷贝子过程,参数包括方向: 如,
1.从左到右把BUFF中的字符串传送到STR1。
代码:
data segment
buff db 'abcd$efghijk$'
str1 db 12 dup(?)
len db ?
data ends
code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
mov es,ax
lea si,buff
lea di,str1
mov cx,12
cld
rep movsb
mov ah,4ch
int 21h
code ends
end start
运行结果:
buff的地址0000,str1的地址000D
2.从右到左把BUFF中的字符串传送到STR1。
代码:
data segment
buff db 'abcd$efghijk$'
str1 db 12 dup(?)
len db ?
data ends
code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
mov es,ax
mov cx,13
lea si,buff
add si,12
lea di,str1
kk:
mov bl,ds:[si]
mov es:[di],bl
inc di
dec si
loop kk
mov ah,4ch
int 21h
code ends
end start
运行结果:
buff的地址0000,str1的地址000D
(3)字符串比较子过程: 比较BUFF与STR1两个字符串是否相等,如相等则DX=1, 否则DX=0。
代码:
data segment
buff db 'abcd$efghijk$'
str1 db 'abcd$eeghij$'
len db ?
data ends
code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
mov es,ax
lea si,buff
lea di,str1
mov cx,12
cld
mov cx,13
repe movsb
mov dx,1
jnz no
jmp exit
no:
mov dx,0
exit:
mov ah,4ch
int 21h
code ends
end start
运行结果:
(4)匹配算法子过程: 查找BUFF中有无字符 , 此 外 , 把 字 符 ,此外,把字符 ,此外,把字符出现的次数计入 BX寄存器
data segment
buff db 'abcd$efghijk$'
str1 db 12 dup(?)
len db ?
data ends
code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
mov es,ax
lea si,buff
mov cx,13
mov bx,0
mov dl,'$'
kk:
cmp dl,ds:[si]
inc si
inc bx
jc no
jmp next
no:
dec bx
next:
loop kk
exit:
mov ah,4ch
int 21h
code ends
end start
运行结果:
以上是关于汇编语言——实验十二的主要内容,如果未能解决你的问题,请参考以下文章