assembly 如何在这里确定汇编语言中的寄存器[已关闭]

6jjcrrmo  于 2022-11-13  发布在  其他
关注(0)|答案(1)|浏览(147)

已关闭。此问题需要更多的focused。当前不接受答案。
**想要改进此问题吗?**更新问题,使其仅关注editing this post的一个问题。

9天前关闭。
Improve this question
使用以下变量定义
章节数据
变量1数据库-4、-2、3、1
变量2 DW 1000小时、2000小时、3000小时、4000小时
变量3 DW -16、-42
变量4 DW 1、2、3、4、5
按顺序执行以下每条指令后,目标操作数的值是什么?
移动EDX,变量4;一种
Movzx版本2; B
移动edx,[变量4 +4]; C语言
Movsx版本号1;日
d. FFFFFFFCh
c. 00000002h
B. 00001000小时
a. 00000001h
我不知道如何解决这个问题。

qij5mzcb

qij5mzcb1#

我不知道如何解决这个问题。
1.动动脑筋:
1.拿一张纸。
1.画一条长方形,每个长方形代表一个字节,并在上面贴上标签。
| X| | | |Y个| |
| - -|- -|- -|- -|- -|- -|
| | | | | | |
这是你的记忆;右边是升序地址。XY是一些示例标签。现在用你认为正确的值填充下面的框。最好先将所有内容转换为十六进制,因为答案会预期到这一点。这也使得“拆分”存储所需的字节序列(例如值-42)更容易。
1.为所用的寄存器画一些方框,并给它们贴上标签。(好的,这里只是edx。)
1.然后“运行”程序,即罢工和取代的值,因为你认为手头的指令执行。

  • 然而,“懒惰”的学生会这样做:
  • 在Stackoverflow或其他网站上发布一个问题,希望有人能给出答案。
  • 用这里使用的汇编程序(可能是MASM,我不知道)写一个程序,然后用调试器单步调试。

相关问题