计算机系统基础·第3章【程序的转换及机器级表示】

mov

在这里插入图片描述
简而言之:

  • 带个$符号——一个数字
  • 带%——寄存器
  • %+‘()’——主存(内存)(地址)
    在这里插入图片描述
    即——不能从(%eax)–(%ebp)这样的

在这里插入图片描述

8(%ebp,%ebx,4) —— ebp+4*ebx+8

lea

在这里插入图片描述

mul、imul是乘法的意思

在这里插入图片描述

作业

寻址(mov、lea之类的)

在这里插入图片描述
在这里插入图片描述

目的、源 —— 概念看题目就懂了
第5个的目的是

判断对错

在这里插入图片描述
在这里插入图片描述

机器级代码表示

在这里插入图片描述
在这里插入图片描述
实在没看懂(老师好像没讲助记符吧🍳🍳🍳)

当窄数据类型为:有符号数据类型时,扩展为宽数据类型时,使用符号扩展。
当窄数据类型为:无符号数据类型时,扩展为宽数据类型时,使用零扩展。
第6个应该是错了,问了chatgpt了
sbl符号拓展
zbl零拓展

翻译汇编语言

在这里插入图片描述
在这里插入图片描述
注意要R[……]
其余的倒是比较简单

在这里插入图片描述

没答案🧇🧇🧇

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

反汇编

在这里插入图片描述
在这里插入图片描述

数组

在这里插入图片描述
在这里插入图片描述

注意一下 int 的那一行的答案

在这里插入图片描述
在这里插入图片描述

需要知道哪个是 i ,jecx——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)

结构体

在这里插入图片描述
在这里插入图片描述

寄存器

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值