CSAPP BOMB LAB part2

bomb lab part2

phase3

汇编语法

switch 汇编版本

switch 例子:
在这里插入图片描述
switch 使用 jump table
在这里插入图片描述
在这里插入图片描述

movl 指令

cmpl指令是x86汇编语言中的一个比较指令,用于比较两个操作数的值。cmpl指令的格式如下:

cmpl source, destination

sourcedestination可以是寄存器、内存地址或立即数。指令执行后,会将sourcedestination进行比较,并根据比较结果设置标志寄存器中的相应标志位。

cmpl指令的比较结果会影响以下标志位:

  • ZF(Zero Flag):如果两个操作数相等,则ZF标志位被设置为1,否则为0。
  • SF(Sign Flag):如果结果为负数,则SF标志位被设置为1,否则为0。
  • CF(Carry Flag):如果source小于destination,则CF标志位被设置为1,否则为0。
  • OF(Overflow Flag):如果有符号操作数溢出,则OF标志位被设置为1,否则为0。

以下是一些示例,演示了cmpl指令的使用:

movl $10, %eax    # 将10存储到eax寄存器
cmpl $5, %eax     # 比较eax和5

在这个例子中,我们首先将立即数10存储到eax寄存器中。然后,我们使用cmpl指令将eax和立即数5进行比较。比较结果会根据eax和5的大小关系设置相应的标志位。

cmpl指令可以与条件跳转指令(如jejnejl等)结合使用,用于根据比较结果执行不同的代码路径。

请注意,cmpl指令只比较操作数的值,并不修改操作数的内容。如果需要根据比较结果进行其他操作,可以使用条件跳转指令或其他指令来实现。

工具介绍

参考链接

https://www.cs.cmu.edu/afs/cs/academic/class/15213-f15/www/lectures/05-machine-basics.pdf
https://www.cs.cmu.edu/afs/cs/academic/class/15213-f15/www/lectures/06-machine-control.pdf
https://www.cs.cmu.edu/afs/cs/academic/class/15213-f15/www/lectures/07-machine-procedures.pdf

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/157732.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RT-Thread 9. VS2012下仿真RT-Thread 和LVGL

1. 在ENV中添加组件 2. 下载组件 3. 生成代码 4. 打开代码 双击project.vcxproj 编译 5. 运行

国际物流常见风险如何规避_箱讯科技

外贸物流是国际贸易的重要环节,其管理和效率的高低直接影响着贸易的成本和效益。因此,外贸企业应该重视物流的组织和管理,提高物流运作的效率。 国际物流基础知识 01什么是“双清包税”和“双清不包税” 双清包税上门又叫双清包税到门&…

新体验:万圣节夜晚的新游戏!--愤怒的南瓜

引言: Chatgpt4.0 所带来的冲击似乎远超出人们想象,网页小游戏《愤怒的南瓜》在昨日(万圣节夜晚)火爆了外网。一位名为 Javi Lopez 的外国小哥使用 Midjourney、DALL•E 3 和 GPT-4 打开了一个无限可能的世界,重新演绎…

ARL灯塔安装与使用

ARL灯塔安装与使用 1. 系统要求2. ARL灯塔安装2.1. docker环境安装2.1.1. 更新yum包2.1.2. 卸载老版docker2.1.3. 安装docker所需要的依赖包2.1.4. 设置yum源2.1.5. 查看仓库中docker版本2.1.6. 安装docker最新版2.1.7. docker设置2.1.8. docker其它命令 2.2. 安装docker-compo…

爬虫 | 【实践】百度搜索链接爬取,生成标题词云 | 以“AI换脸”为例

目录 📚链接爬取 🐇流程梳理 🐇代码实现 🐇结果 📚词云生成 🐇代码实现 🐇结果 📚链接爬取 🐇流程梳理 总体流程是:构建搜索链接 -> 发送HTTP请求…

每日自动化提交git

目前这个功能,有个前提: 这个git代码仓库,是一个人负责,所以不存在冲突问题 我这个仓库地址下载后的本地路径是:D:\Projects\Tasks 然后我在另外一个地方新建了一个bat文件: bat文件所在目录为&#xff1a…

中心线提取的全卷积网络【IPMI 2019】

论文地址:Excellent-Paper-For-Daily-Reading/medicine at main 类别:医学 时间:2023/11/02 摘要 论文提出了一种将端到端可训练多任务全卷积网络(FCN)与最小路径提取器相结合的中心线提取框架。FCN同时计算中心线距离图和检测分支端点。…

mmcv安装失败

MMCV官网有教程 需要和你的cuda、torch版本相对应 不知道版本可以直接在你的vscode里查看 新建个py文件:import torch;print(torch.version);print(torch.version.cuda) 安装成功

Unity Shader Graph HDRP Reflections Cubemap

主贴图 与 反射 过渡 可调节 因为shader graph 版本原因,略微跟教程不太一样 教程链接: https://www.youtube.com/watch?v943P0dGR4rQ

uniapp循环列表单选框实现单选

目录 图片源码参考最后 图片 源码 参考 大佬 最后 感觉文章好的话记得点个心心和关注和收藏,有错的地方麻烦指正一下,如果需要转载,请标明出处,多谢!!!

【Python基础】变量基本使用

变量 1.变量定义02. 变量的类型2.1 变量类型的演练 —— 个人信息2.2 变量的类型2.3转义字符 3.变量输入输出3.1变量格式化输出 4.变量命名 1.变量定义 变量定义 • 在 Python 中,每个变量 在使用前都必须赋值 在使用前都必须赋值,变量 赋值以后 该变量…