[汇编] lodsb 和 stosb的缩写 和 使用说明

文本摘录自chatGPT, 笔者负责排版校正和润色

在汇编语言中,lodsbstosb 是两个字符串操作指令,分别表示 “load string byte” 和 “store string byte”。它们的功能如下:

lodsb (Load String Byte):

  • 缩写:LOaD String Byte
  • 功能:从源地址(由ESI 寄存器指向的地址)中加载一个字节到累加器 AL 寄存器中。
  • 操作过程:AL = [ESI]
  • 使用时会自动递增ESI 寄存器,根据方向标志(DF)决定递增或递减。
    • 如果 DF 复位(方向标志为0 cld),ESI 递增
    • 如果 DF 置位(方向标志为1 std), ESI 递减

stosb (Store String Byte):

  • 缩写:STOre String Byte
  • 功能:将累加器 AL 寄存器中的一个字节存储到目的地址(由 EDI 寄存器指向的地址)。
  • 操作过程: [EDI] = AL
  • 使用时也会自动递增 DI 或 EDI 寄存器,同样根据方向标志(DF)决定递增或递减。
    • 如果 DF 复位(方向标志为0 cld),DI 或 EDI 递增;
    • 如果 DF 置位(方向标志为1 std),DI 或 EDI 递减。

总结

这两个指令通常用于字符串或数组操作,可以配合 REP(repeat)前缀进行多次重复操作,比如复制或初始化内存区域。

其他链接

汇编指令lodsb和stosb、lodsd和stosd

lodsb指令,将esi指向的地址处的数据取出来赋给AL寄存器,esi=esi+1;
lodsw指令则取得是一个字。
lodsd指令,取得是双字节,即mov eax,[esi],esi=esi+4;

stosb指令,将AL寄存器的值取出来赋给edi所指向的地址处。mov [edi],AL;edi=edi+1;
stosw指令去的是一个字。
stosd指令,取得是双字节,mov [edi],eax;edi=edi+4;

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值