标题:小白求助 关于汇编指令 stos的问题
只看楼主
d7se123
Rank: 2
等 级:论坛游民
帖 子:65
专家分:14
注 册:2020-3-13
结帖率:50%
 问题点数:0 回复次数:1 
小白求助 关于汇编指令 stos的问题
问题描述:
mov al,0xff
mov edi,0x12ffdc
stos byte ptr es:[edi]  //将al 寄存器中的数据拷贝到edi(12ffdc)后   edi的值 会增加或者减少

然后再次执行
mov ax,0xAAAA
stos word ptr es:
[edi] //为啥还是往12ffdc中拷贝数据 前面的edi的值不是变化了吗?
搜索更多相关主题的帖子: 数据 汇编 指令 mov 拷贝 
2020-05-18 16:08
Valenciax
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:11
帖 子:337
专家分:2462
注 册:2016-5-15
得分:0 


12ffdc从何而来,和图中所见数值不同,没法回答你的问题.

倒是图中箭咀所指的EDI,和右边画线的EDI,其间变化是相符的.
看不出EDI的增加,是因为反汇编不到位,下面是正确的反汇编

B0FF              MOV     AL,FF
BFC8FD0703        MOV     EDI,0307FDC8
AA                STOSB   ;EDI +1   
66B8BBBB          MOV     AX,BBBB  ;在32模式下操作16bit暂存器要加66h作前置指令
66AB              STOSW   ;理由同上,66h为前置指令,;EDI + 2   
B878563412        MOV     EAX,12345678
AB                STOSD   ;EDI+4  
B878563412        MOV     EAX,12345678
AB                STOSD      ;EDI+4

EDI一共加了11(0BH)
307FDC8H + 0BH = 307FDD3
2020-05-18 19:29



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-501668-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016109 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved