X86汇编指令movsb、cmpsb、scasb、stosb、lodsb等简介 您所在的位置:网站首页 汇编语言lodsb是什么意思 X86汇编指令movsb、cmpsb、scasb、stosb、lodsb等简介

X86汇编指令movsb、cmpsb、scasb、stosb、lodsb等简介

2024-01-28 17:34| 来源: 网络整理| 查看: 265

movsb指令将esi的值按照字节(byte)为单位将数据传送到edi的内存地址上。 当DF =0时ESI和EDI的值增加1,DF=1时ESI和EDI的值减少1

; 代码示例 .386 .model flat, stdcall .stack 4096 ExitProcess PROTO, dwExitCode:DWORD Include Irvine32.inc ; .data str1 byte "abc", 0 ;定义字符串str1 str2 byte 3 dup(?), 0 ;定义字符串str2 .code main PROC mov esi, offset str1 ; 将str1的首地址赋值给esi mov edi, offset str2 ; 将str2的首地址赋值给edi movsb ; 将esi地址指向的值以字节为单位赋值给edi指向的内存地址空间, ; 在当前例子就是将 str1中的第一个字符传送到str2的首地址, 执行完指令之后 esi的值+1, edi的值+1 ; 为什么是+1而不是-1, 原因是标志寄存器中的DF位的值为0,表示地址由低到高 std ; 将DF位置为1, 表示地址由高到低 movsb ; 执行movsb, 将 str1中的第二个字符b传送到str2的第二个地址, 执行完指令之后 esi的值-1, edi的值-1 call Crlf exit main ENDP END main

movsw指令将esi的值按照字(word)为单位将数据传送到edi的内存地址上。 当DF =0



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有