字符串存储指令 STOS
STOS 指令用于将寄存器 AL、AX 或 EAX 中的数据存储到目标字符串中,目标字符串地址由 DI 或 EDI 寄存器指定。
指令格式:
- STOSB:存储字节
- STOSW:存储字(两个字节)
- STOSD:存储双字(四个字节)
操作过程:
- 根据操作数大小,将 AL、AX 或 EAX 中的数据存储到内存地址 (DI) 或 (EDI) 处。
- 根据方向标志 DF 的设置,自动递增或递减 DI 或 EDI 寄存器的值:
- DF = 0:DI 或 EDI 递增,每次递增的大小由操作数大小决定(字节操作递增 1,字操作递增 2,双字操作递增 4)。
- DF = 1:DI 或 EDI 递减,每次递减的大小由操作数大小决定。
示例:
; 将附加段中的 5 个字节缓冲区置为 20H
lea di, mess2 ; 将缓冲区地址加载到 DI
mov al, 20H ; 将要存储的值 20H 放入 AL
mov cx, 5 ; 设置循环次数为 5
cld ; 设置方向标志 DF 为 0,使 DI 递增
rep stosb ; 重复执行 STOSB 指令 5 次,将 5 个字节都设置为 20H
暂无评论