当前位置:软件学习 > 其它软件 >>

x86汇编学习 ----- 四

 

;将data段中的每个单词的第一个字母改成大写 

;2011-9-27     YoungWei 

 

assume cs:code,ds:data 

 

data segment 

    db '1.  file        ' 

    db '2.  edit        ' 

    db '3.  search      ' 

    db '4.  view        ' 

    db '5.  options     ' 

    db '6.  help        ' 

data ends 

 

code segment 

    start:  mov ax,data 

            mov ds,ax     ;将data段与数据段相关联 

             

            mov cx,6     ;由于改6个单词,故设置循环次数6 

            mov bx,4      ;每个需要修改的字母位于每个数据块的第4个位置 

             

              

        S0: mov al,[bx] 

            and al,11011111B 

            mov [bx],al 

            add bx,16 

            loop S0 

             

            mov ax,4c00h 

            int 21h 

code ends 

end start 

首先debug改程序

E:\SourceCode\Assemble\Masm615>debug code75.exe

-r

AX=0000  BX=0000  CX=007B  DX=0000  SP=0000  BP=0000  SI=0000  DI=0000

DS=141F  ES=141F  SS=142F  CS=1435  IP=0000   NV UP EI PL NZ NA PO NC

1435:0000 B82F14        MOV     AX,142F

-d 142f:0

142F:0000  31 2E 20 20 66 69 6C 65-20 20 20 20 20 20 20 20   1.  file

142F:0010  32 2E 20 20 65 64 69 74-20 20 20 20 20 20 20 20   2.  edit

142F:0020  33 2E 20 20 73 65 61 72-63 68 20 20 20 20 20 20   3.  search

142F:0030  34 2E 20 20 76 69 65 77-20 20 20 20 20 20 20 20   4.  view

142F:0040  35 2E 20 20 6F 70 74 69-6F 6E 73 20 20 20 20 20   5.  options

142F:0050  36 2E 20 20 68 65 6C 70-20 20 20 20 20 20 20 20   6.  help

142F:0060  B8 2F 14 8E D8 B9 06 00-BB 04 00 8A 07 24 DF 88   ./...........$..

142F:0070  07 83 C3 10 E2 F5 B8 00-4C CD 21 00 00 00 00 00   ........L.!.....

查看数据,其中数据全部写入,并且每个单词以及其编号和所带空格占了16个字节

所以每次bx要增加16(10H)。

debug运行程序最终结果

-d 142f:0

142F:0000  31 2E 20 20 46 69 6C 65-20 20 20 20 20 20 20 20   1.  File

142F:0010  32 2E 20 20 45 64 69 74-20 20 20 20 20 20 20 20   2.  Edit

142F:0020  33 2E 20 20 53 65 61 72-63 68 20 20 20 20 20 20   3.  Search

142F:0030  34 2E 20 20 56 69 65 77-20 20 20 20 20 20 20 20   4.  View

142F:0040  35 2E 20 20 4F 70 74 69-6F 6E 73 20 20 20 20 20   5.  Options

142F:0050  36 2E 20 20 48 65 6C 70-20 20 20 20 20 20 20 20   6.  Help

142F:0060  B8 2F 14 8E D8 B9 06 00-BB 04 00 8A 07 24 DF 88   ./...........$..

142F:0070  07 83 C3 10 E2 F5 B8 00-4C CD 21 00 00 00 00 00   ........L.!.....

符合程序要求。

 

作者:VI_Young

补充:软件开发 , 其他 ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,