zoukankan      html  css  js  c++  java
  • 串操作指令

    1. movs

    ;字符串传送  movs
    ;1.  ds   es
    ;2.  si   di 
    ;3.  ctd   std
    ;4.  cl
    ;5.  rep  
    data  sesment
    mess1 db 'personal_computer'
    data  ends
    extra sesment
    mess2 db sizeof mess1 dup(?)
    extra ends
    code sesment
    ....
    lea si, mess1
    lea di, mess2
    mov cl, sizeof mess1
    cld
    rep movsb
    ....
    
    code ends
    enter code here
    

    2 stosb

    ;把附加段中的5个字节缓冲区设置为20H
    ;使用的指令为stos   把AL或者AX送入指定区域   ES:DI 
    ; 1. 设置ES 设置AX
    ; 2. 设置si
    ; 3. 设置cl
    ; 4. rep
    lea di,buffer
    mov al,20h
    mov cl,5
    rep stos
    enter code here
    

    3 lodsb

    ;从字符串block中取正数存入字节串dplus中   都在ds
    ;1.  ds   es
    ;2.  si   di
            mov ax,ds       ;
            mov es,ax       ;seg之前不可以直接操作  
            lea si,block    ;源
            lea di,dplus    ;目的
            mov cx,count    ;字符串数目
            cld             ;设置df=0
    go_on:  lodsb          
            test al,80h     ;符号测试
            jnz again       ;负数
            stosb           ;整数  很巧妙
    again:  dec cx
            loop go_on
    
    enter code here
    

    4 cmps

    ;比较等长俩个字符串,判断他们是否相等
            lea si,string1
            lea di,string2
            mov cx,lengthof string1
            cld
            repe cmpsb
            jnz  no
            mov  dl,'y'   ;相等
            jmp output    
    no:     mov  dl,'n'   ;不相等
    output: mov  ah,2     ;输出一个字符
            int 21h
    

    5 scas

    ;从一个字符串中查找一个指定字符
            lea di,string
            mov al,	''      ;20h 空格
            mov cl, sizeof string
            cld             ;设置方向
            repnz scasb
            jz        found
            .....
            
    found:....
    enter code here
    

    6 总结

     1. 串操作,确定指令
     2. 根据串的位置准备ds,es(ds可超越,但是es不可以)
     3. 利用了lea,或者 设置offset si,di
     4. 利用 sizeof lenghof 设置cx
     5. 选择合适的rep 
     6. 设置不同分支程序(针对repz或者repnz)
  • 相关阅读:
    shell 脚本学习笔记1
    手把手教你uiautomator_android自动化测试第一个示范
    ubuntu设置环境变量
    albert1017 Linux下压缩某个文件夹(文件夹打包)
    /proc/sysrq-trigger详解
    Android攻城狮学习笔记—入门篇二
    Android攻城狮学习笔记—入门篇一
    《移动App测试实战》读书笔记
    Linux-Ubuntu
    Android-应用性能测试
  • 原文地址:https://www.cnblogs.com/Howbin/p/9945396.html
Copyright © 2011-2022 走看看