mov
简而言之:
- 带个$符号——一个数字
- 带%——寄存器
- %+‘()’——主存(内存)(地址)
即——不能从(%eax)–(%ebp)这样的
8(%ebp,%ebx,4) —— ebp+4*ebx+8
lea
mul、imul是乘法的意思
作业
寻址(mov、lea之类的)
目的、源 —— 概念看题目就懂了
第5个的目的是栈
判断对错
机器级代码表示
实在没看懂(老师好像没讲助记符吧🍳🍳🍳)
当窄数据类型为:有符号数据类型时,扩展为宽数据类型时,使用符号扩展。
当窄数据类型为:无符号数据类型时,扩展为宽数据类型时,使用零扩展。
第6个应该是错了,问了chatgpt了
sbl符号拓展
zbl零拓展
翻译汇编语言
注意要R[……]
其余的倒是比较简单
没答案🧇🧇🧇
反汇编
数组
注意一下 int 的那一行的答案
需要知道哪个是 i ,j
ecx——i,edx——j
第一个M:需要先跨过所有的行才能访问到该行的那个 j 列(每行有N列)
第2个同理
所以,M=5,N=7
ecx=i
edx=j,edx=9j
eax=i<<6-i=63i
edx=9j+63i+k
eax=a+4*(63i+9j+k)
结构体
寄存器