当前位置:  开发笔记 > 编程语言 > 正文

汇编 - 应该是什么输出

如何解决《汇编-应该是什么输出》经验,为你挑选了1个好方法。

在集会方面,我是一个绝对的主人.我试着弄清楚以下内容的输出:

Jan dd 255,256
Feb dw 16, 17, 18, 19
Mar db 8, 9, 10, 11

Sub edi, Mar - Feb
mov ebx, Jan[edi]
add bl, Mar

因此,Sub edi, Mar - Feb将减去第一要素MarFeb阵列赋予的价值-8edi...那么是什么将被移动到Jan[edi]?什么将被添加Mar

你能解释一下这个练习的答案吗?请原谅我缺乏基本的装配知识.



1> harold..:

Sub edi, Mar - Feb将从MarFeb数组中减去第一个元素

它不能那样做.汇编程序不允许在汇编时计算它(内存中的东西是可变的,因此结果会变化),并且没有可以"双减"的指令.它实际上做的是

    作为汇编时间,计算地址 Mar(地址,不是一堆数字,只是它们开始的地方)和地址之间的差异Feb.中间有4个单词,总共大小为8,因此汇编程序将为其发出机器代码sub edi, 8.

    在运行时,将减去8 edi.

是什么在edi关系吗?谁知道呢.但现在它减少了8个.mov ebx, Jan[edi]顺便提一下mov ebx, [edi + Jan],所以希望edi是明智的,0或4会最有意义.

推荐阅读
手机用户2402851335
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有