汇编字符串转小写

指令说明:

cmp:比较两个数的大小,逻辑减操作,不影响结果,只影响标志位,标志位如下:

      CF:是否有进位或者借位,有进位CF=1,否则CF=0

      ZF:0标志位,就是结果是否为0,结果为则0,ZF=1,否则ZF=0

      OF:溢出标志位,是否计算机结果溢出了,溢出OF=1,否则OF=0

      SF:符号位,0为正,1为负

or:异或操作

jz:ZF=0,上一步结果等于0

jb:cf=1 and zf=0,上一步结果a

ja:cf=0 and zf=0,上一步结果a>b

inc:值加1,如inc bx,表示bx=bx+1

ASII码:

        A:41h        a:61h

        B:42h        a:62h

        C:43h        a:63h

string db 41h,42h,0h;0h表示字符串结尾,41h表示A,42h表示B
mov    bx,offset string
again: mov al,[bx];取一个字符
       or al,al   ;或操作,有一个1则为1,是否为结尾符0,小写字符的结尾为0,大写为1
       jz done    ;是结尾为0,退出循环,jz,zf=0,上一步的结果等于0
       cmp al,'A' ;逻辑减操作,只影响cf(是否借位)和zf(结果不为0则zf=0),如果ab 大小写字母仅仅D5位不同
       or al,20h  ;al=al+20h,大写与小写之间相差20h,所以小写转大写,加上20h
       ;是,转换为小写字母(使D5=1)
       mov [bx],al;仍保存在原来的位置
next:  inc bx;bx=bx+1,只向下一个字符
       jmp again;继续循环
done:

你可能感兴趣的:(汇编,笔记,汇编)