zoukankan      html  css  js  c++  java
  • 汇编LODSB/LODSW指令

    字符串操作指令

        汇编语言中,串操作指令LODSB/LODSW块装入指令,其具体操作是把SI指向的存储单元读入累加器,LODSB就读入AL,LODSW就读入AX,然后SI自动增加或减小12.其常常是对数组或字符串中的元素逐个进行处理。
         例如:驻留程序使用 "base memory size in KB" of BIOS Data Area (0040h:0013h)给自己程序开辟2K内存,程序可以这样实现:

    push es
    mov si,0413h
                                             
    ; using "base memory size in KB" of BIOS Data Area (0040h:0013h)
    sub [si],word 2
    lodsw
    shl ax,6
                                                      
    ; * 1024 / 16
    mov es,ax
                                                  ; store segment address

    然后将你的程序拷贝到di处即可!

         又例如:

    【假设以下的array为程序中定义的数组,items为数组长度,那么如下方法遍历此数组.】
    xor di,di
    lea si,array
    cld
    c50:
    lodsd
    inc di
    cmp di,items
    jbe c50

     

    字符串操作指令的实质是对一片连续存储单元进行处理,这片存储单元是由隐含指针DS:SIES:DI来指定的。字符串操作指令可对内存单元按字节、字或双字进行处理,并能根据操作对象的字节数使变址寄存器SI(和DI)增减1、2或4。具体规定如下:

    (1)、当DF=0时,变址寄存器SI(和DI)增加1、2或4;
    (2)、当DF=1时,变址寄存器SI(和DI)减少1、2或4。

    在后面各指令中,有关变址寄存器都按上述规定进行增减,不再一一说明。

    1、取字符串数据指令(Load String Instruction)

    从由指针DS:SI所指向的内存单元开始,取一个字节、字或双字进入ALAXEAX中,并根据标志位DF对寄存器SI作相应增减。该指令的执行不影响任何标志位。

    指令的格式:LODS  地址表达式
    LODSB/LODSW
    LODSD          ;80386+

    在指令LODS中,它会根据其地址表达式的属性来决定读取一个字节、字或双字。即:当该地址表达式的属性为字节、字或双字时,将从指针DS:SI处读一个字节到AL中,或读一个字到AX,或读一个双字到EAX中,与此同时,SI还将分别增减1,2或4。

     

    其它字符串指令中的“地址表达式”作用与此类似,将不再说明。

    2、置字符串数据指令(Store String Instruction)

    该指令是把寄存器ALAXEAX中的值存于以指针ES:DI所指向内存单元为起始的一片存储单元里,并根据标志位DF对寄存器DI作相应增减。该指令不影响任何标志位。

    指令的格式:STOS  地址表达式
    STOSB/STOSW
    STOSD      ;80386+

     

    3、字符串传送指令(Move String Instruction)

    该指令是把指针DS:SI所指向的字节、字或双字传送给指针ES:DI所指向内存单元,并根据标志位DF对寄存器DISI作相应增减。该指令的执行不影响任何标志位。

    指令的格式:MOVS  地址表达式1, 地址表达式2
    MOVSB/MOVSW
    MOVSD      ;80386+

  • 相关阅读:
    Cocos2Dx for XNA类解析(1): CCApplication
    struts2动态调用action的方法
    python导出依赖包
    python 字符串split()方法
    struts2使用通配符调用action
    python3重新编译
    Jquery中html()、text()、val()的使用和区别
    Javascript写在<body>和<head>中的区别
    设计模式Design Pattern(2)单例模式
    设计模式Design Pattern(1)简介
  • 原文地址:https://www.cnblogs.com/johnpher/p/2570662.html
Copyright © 2011-2022 走看看