美文网首页
8086汇编(33)串传送指令

8086汇编(33)串传送指令

作者: 迷心迷 | 来源:发表于2019-04-04 18:01 被阅读0次

    串传送指令

    格式:movsb

    功能:执行movsb指令相当于进行下面几步操作。

    1. ((es)16+(di)) = ((ds)16+(si))

    2. 如果df=0 则 (si)=(si)+1 (di)=(di)+1

    如果df=1则: (si)=(si)-1 (di)=(di)-1

    当然也可以传送一个字

    格式:movsw

    功能:将ds:si指向的内存单元中的字送入es:di中,然后根据标志寄存器df位的值,将si和di递增2或递减2.

    movsb和movsw进行的是串传送操作中的一个步骤,一般来说,movsb和movsw都和rep配合使用,格式如下:

    rep movsb

    rep功能:根据cx的值,重复执行后面的串传送指令。由于每执行一次movsb指令si和di都会递增或递减指向后一个单元或前一个单元,则rep movsb就可以循环实现(cx)个字符的传送。

    8086CPU提供下面两条指令对df位进行设置。

    cld指令: 将标志寄存器的df位置0

    std指令: 将标志寄存器的df位置1

    1)编程,用串传送指令,将data段中的第一个字符串复制到它后面的空间中。

    data segment
         db  'welcome to masm!'
         db 16 dup (0)
    data ends
    
    code segment
    
           mov ax,data
           mov ds,ax
           mov si, 0
           mov es,ax
           mov di,16
           mov cx,16
           cld
           rep  movsb
    
    code ends
    
    end
    

    2)编程,用串传送指令,将F000段中的最后16个字符复制到data段中。

    data segment
             db  16  dup  (0)
    data ends
    
    code segment 
               mov ax,0f000h
               mov ds,ax
               mov si, 0ffffh
               mov ax,data
               mov es,ax
               mov di, 15
               mov cx, 16
               std
               rep  movsb
        
    code ends
    end
    

    相关文章

      网友评论

          本文标题:8086汇编(33)串传送指令

          本文链接:https://www.haomeiwen.com/subject/rsvqiqtx.html