4 串操作指令【操作系统】
原创
©著作权归作者所有:来自51CTO博客作者日星月云的原创作品,请联系作者获取转载授权,否则将追究法律责任
串操作指令
串操作指令
例
例4.11
将数据段中首地址为BUFFER1的200个字节传送到附加数据段首地址为
BUFFER2的内存区中。使用字节串传送指令的程序段如下
mov ax,data
mov ds,ax
LEA SI, BUFFERI ;(SI)<-源串首地址指针
LEA DI, BUFFER2 ;(DI)<-目的串首地址指针
MOV CX,200 ;(CX)-字节串长度
CLD ;清方向标志DF
REP MOVSB ;传送200个字节
HLT
例4.14
一个数据块由大写或小写的英文字母、数字和各种其他符号组成,其结束符 基回车符CR(ASCII码为0DH),数据块的首地址为BLOCK1。将数据块传送到以BLOCK 为首地址的内存区,并将其中所用的英文小写字母(az)转换成相应的大写字母(AZ,其 余不变。
前面已经讨论过英文小写字母与相应的大写字母的ASCII码之间有一定的关系,即只 需将小写字母的ASCII码减20H,即可得到相应大写字母的ASCII码。程序加下
LEA SI, BLOCK1 ;(SI)<-源地址指针
LEA DI, BLOCK2 ;(DI)<-目标地址指针
CLD ;清方向标志DF
NEXT: LODSB ;取一个字符到AL
CMP AL, 0DH ;是否回车符
JZ DONE ;是,则转DONE
CMP AL, 61H ;否则,是否小于'a'
JC OK ;是,则转OK↵
CMP AL, 78H ;是否大于'z
JNC OK ;是,转OK
SUB AL,20H ;否则,AL减20H
OK:
STOSB ;送存
JMP NEXT ;转移到NEXT
DONE:
HLT