2013-06-25 47 views
0

我需要在给定的地址(从esi索引)上减少堆栈上的一些字节。ASM:减少特定地址的内容

pop esi ; 

现在改变将不会是一个问题,我根本就做

mov [esi+13], al ; 

存储来自人在ESI + 13的内容。

但我该如何减少“esi + 13”中的内容。

E.g. esi + 13的值= 0xFF→esi的新值+ 13 = 0xFE。

我尝试不同的东西像

dec [esi+13] ; 
sub [esi+13], 1; 
dec esi+13; 

等等,但我没有找到一个解决方案。

我不知道哪些字节将在“esi + 13”中,所以我不能将“结果” 移动到地址,我真的必须减少它。

谢谢!

+0

你什么意思,你不能因此移动到您拥有在ESI指针的位置?我可以理解为什么你不想*在婴儿步骤中做到这一点,但它应该*可能*。 –

回答

0

我认为这应该工作:

dec byte ptr [esi+13] 
+0

感谢您的想法。 使用nasm它只是“dec byte [esi + 13]”:) – CFP