• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            newplan

            阿基米德在洗澡時發(fā)現(xiàn)浮力原理,高興得來不及穿上褲子,跑到街上大喊:Eureka(我找到了)。
            posts - 39, comments - 26, trackbacks - 0, articles - 4
              C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理
            datarea segment
             keyword      db    
            5,?,5 dup(?)
             sentence     db    
            50,?,50 dup(?)
             accesstalk1  db    
            'Enter keyword:','$'
             accesstalk2  db    13,10,'Enter Sentence:','$'
             answer1      db    13,10,'Match At location:','$'
             answer3      db    'H of the sentence.','$'
             answer4      db    13,10,'No Macthed!','$'
            datarea ends
            ;
            ****************************************************
            codearea segment
                assume  cs:codearea , ds:datarea , es:datarea
            main  proc far

                  push ds
                  
            sub ax,ax
                  push ax
                  mov ax,datarea
                  mov ds,ax
                  mov es,ax
                  ;
                  lea dx,accesstalk1
                  mov ah,09h
                  
            int 21h
                  ;
                  lea dx,keyword
                  mov ah, 0ah
                  
            int 21h
                  ;
             start:
                  lea dx,accesstalk2
                  mov ah, 09h
                  
            int 21h
                  ;
                  lea dx ,sentence
                  mov ah, 0ah
                  
            int 21h
                  ;
                  lea si ,sentence
            +2;這里是被比較的句子的起始位置,之所以要+2,是因?yàn)榇娣啪渥拥目臻g中第一位存放的是句子可輸入的最大長度,      ;第二位存放的是有效實(shí)際長度,從sentence+2開始才是實(shí)際的要比較的字符串
                  mov dl, sentence
            +1;注意了,這里sentence+1中的內(nèi)容是字節(jié)類型的,DL是字節(jié)類型的,DX是字類型的,因?yàn)轭愋鸵ヅ?,所以DL
                  mov dh, 
            0
                  mov cl, keyword
            +1;這里面存放的是關(guān)鍵字的有效長度
                  mov ch,
            0
                  
            sub dx,cx;見實(shí)驗(yàn)指導(dǎo)書中最多需要比較的次數(shù)
                  inc dx
                  lea bx,sentence
            +2;bx里面放的是被比較句子的開始位置
                  ; 
             
            next:
                  mov si ,bx;從這里開始循環(huán)比較,每次回過來的時候都要把si的值變成新的下一個字符的位置,見下面的BX,每次循環(huán)都要被加一
                  lea di ,keyword
            +2
                  mov cl ,keyword
            +1
                  mov ch ,
            0
                  cld
                  repz cmpsb;循環(huán)比較字符串是否匹配
                  jz compare;當(dāng)找到相同的字符串的時候時跳到compare里面
                  dec dx;循環(huán)次數(shù)減一
                  jz allover;當(dāng)循環(huán)次數(shù)被減到等于零的時候呢,就要跳到allover里面去了,就是找遍了整個句子還是沒有找到匹配的,跳轉(zhuǎn)
                  inc bx ;這邊就是對BX加一,使得地址不斷的往前移動
                  jmp 
            next;這邊是循環(huán)的實(shí)現(xiàn),跳到上面的next
                  ;
            compare:
                 
                  lea dx,answer1
                  mov ah,09h
                  
            int 21h
                  ; 
                  lea si ,sentence
            +2
                  
            sub bx,si
                  inc bx;這里的bx等于bx比較完的時候的值,也就是地址,減去sentence
            +2的標(biāo)注的地址,得到的數(shù)值加上1就是第一個匹配位置
                  
            call change;調(diào)用子函數(shù),十進(jìn)制到十六進(jìn)制的轉(zhuǎn)化
                  lea dx,answer3
                  mov ah,09h
                  
            int 21h
                  jmp start 
                 ;      
            allover:
                  lea dx ,answer4;小心使用的寄存器必須是DX,此次實(shí)驗(yàn)失敗的原因是這里使用SI寄存器了!FUCK
                  mov ah ,09h
                  
            int 21h
                  jmp start
             ret
             main    endp
            change  proc  near
                    push  ax
                    push  bx
                    push  cx
                    push  dx
                    mov   ch,
            4
            rotate:
                    mov   cl,
            4
                    rol   bx,cl
                    mov   al,bl
                    
            and   al,0fh
                    add   al,30h
                    cmp   al,3ah
                    jl    print
                    add   al,7h
            print:
                    mov   dl,al
                    mov   ah,
            2
                    
            int   21h
                    dec   ch
                    jnz   rotate
                    pop   dx
                    pop   cx
                    pop   bx
                    pop   ax
                    ret
            change  endp
                    codearea ends
                    
            end main
            ;
            ****************************************************
            久久久久久国产精品免费无码| 久久只有这里有精品4| 久久综合久久自在自线精品自 | 久久精品18| 区久久AAA片69亚洲| 久久99热只有频精品8| 久久精品国产秦先生| 一本久久综合亚洲鲁鲁五月天亚洲欧美一区二区 | 国产 亚洲 欧美 另类 久久| 久久久久亚洲av综合波多野结衣| 久久精品成人国产午夜| 久久精品桃花综合| 国产免费福利体检区久久| 无码人妻精品一区二区三区久久久 | 久久亚洲欧洲国产综合| 精品久久久久久久| 伊人久久久AV老熟妇色| 中文成人久久久久影院免费观看 | 久久精品综合网| 久久精品成人免费观看97| 国产精品美女久久久久| 伊人久久大香线蕉亚洲| 一97日本道伊人久久综合影院| 久久99国产精品久久99| 久久久久久午夜成人影院| 久久精品国产2020| 婷婷久久综合九色综合九七| 国产高潮国产高潮久久久91| 99久久婷婷免费国产综合精品| 日本久久久久亚洲中字幕| 久久久久久国产精品美女| 久久久久久国产a免费观看不卡| 久久精品国产亚洲欧美| 久久免费高清视频| 国产精品久久毛片完整版| 久久丫精品国产亚洲av| 99久久久国产精品免费无卡顿 | 亚洲中文字幕伊人久久无码| 久久综合鬼色88久久精品综合自在自线噜噜 | 久久精品中文字幕久久| 欧美激情精品久久久久|