ARTS打卡第二周之链表环的检测、gdb中disassemble的使用、底层学习建议、学习分享

Algorithm

题目:链表中环的检测
自己的分析见博客《检测链表中是否存在环》

Review

disassemble command是我读的一篇英语文章,这篇文章主要是介绍gdb反汇编命令的使用和参数。自己为了能够演示这篇文章里边的内容,特意自己使用汇编语言编写代码,然后写了一篇博客。

我这里使用下边的汇编代码进行演示:

# 文件名称:twoNumberPlus.s
.type twoNumberPlus, @function
.section .dataintFormatShow:.ascii "%d\n\0".global main.section .textmain:pushq %rbpmovq %rsp,%rbpmovq $2,%rdimovq $3,%rsicall twoNumberPlusmovq %rax,%rsimovq $intFormatShow,%rdimovq $0,%raxcall printfmovq $60,%raxmovq $0,%rdimovq %rbp,%rsppopq %rbpsyscalltwoNumberPlus:pushq %rbpmovq %rsp,%rbpaddq %rdi,%rsimovq %rsi,%raxmovq %rbp,%rsppopq %rbpret

gcc -g twoNumberPlus.s -static -o twoNumberPlus带有调试信息地进行编译。
gdb -q twoNumberPlus使用安静模式开始调试。
在这里插入图片描述
list可以看一下第1行到第10行代码。
在这里插入图片描述

break 10可以在第10行代码处设置上断点,run可以让gdb开始运行程序,disassemble可以查看当前运行的函数。
在这里插入图片描述

disassemble twoNumberPlus可以看一下twoNumberPlus函数的汇编代码。
在这里插入图片描述

disassemble 0x0000000000401095可以看一下0x0000000000401095地址所在的函数汇编代码。
在这里插入图片描述

disassemble 0x000000000040108e,0x0000000000401095只显示0x000000000040108e0x0000000000401095之间的汇编代码,注意不包括0x0000000000401095
在这里插入图片描述

disassemble twoNumberPlus,+4反汇编函数twoNumberPlus和它加4地址之间的代码,不包括twoNumberPlus+4的代码。
在这里插入图片描述

disassemble 0x000000000040108e,+9,反汇编0x000000000040108e0x000000000040108e+9的地址之间代码,不包括0x000000000040108e+9的代码。
在这里插入图片描述

disassemble /m twoNumberPlus twoNumberPlus函数反汇编出来,也把对应的行数显示出来。
在这里插入图片描述

disassemble /r twoNumberPlus把机器码也反汇编出来。
在这里插入图片描述

Technique/Tip

我最近在学习汇编语言,感觉自己的技术基础有些差,希望程序员朋友还是要把底层知识好好学习一下,争取都能掌握,让我们的技术生命周期更长一些。另外还需把自己的涉及面提升一下,我的意思就是大家的技术既要深,也要博,当然还是要把握两者的平衡点,毕竟一个人的精力有限。这里推荐给大家几本汇编书籍。
intel汇编风格(64位)

Beginning x64 Assembly Programming From Novice to AVX Professional(中文版《x64汇编语言:从新手到AVX专家》)
Low-Level Programming C, Assembly

AT&T汇编风格(64位)

Learn to Program with Assembly Foundational Learning for New Programmers

Share

分享自己对《认知天性》的一些总结。

学习的本质是打造心智模型,将知识条件反射式使用,就是在遇到问题时,能够毫不费力地迅速对问题做出反应。

学习的三步骤:编码、巩固和检索

编码:将材料记到大脑里面,形成短期记忆
巩固:将短期记忆变成长期记忆
检索:将知识从记忆中提取到意识中解决实际问题

学习的提升需要通过合意困难来完成,合意困难有三个要素:

1.有相应的已知做基础
2.能够触发巩固和检索
3.对学习有正面促进作用

学习的八种方法:

1.从记忆中检索新学习的内容,是学习的最好方法。
2.间隔地安排检索练习,需要注意检索知识的时间间隔,在《认知天性》里边只说,根据不同的材料选择不同的间隔时间。根据《考试脑科学》中的说法,在学习之后的一个月内,一定要复习一次,否则可能就是重新学习了。
3.穿插学习各种问题类型
4.细化:为新材料寻找不同层次的意义,比如将刚学习的内容跟已经学习到的知识进行关联。
5.生成:在看到解决方法之前需要自己努力回答问题或者解决难题。
6.反思:将检索和细化进行结合,回顾一下以前学习的知识,看一下自己什么地方做得好,什么地方做得不好。
7.校准: 使用客观评价工具来清除你已经掌握的知识错觉,调整你的认识来更好地反映现实。
8.助记:使用谐音或者顺口溜或者概括进行记忆。

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

word2007的问题,页码怎么从任意页开始到任意页结束、断码问题

WORD文档中插入页码的问题 1.页码从任意页开始 1、将光标定位于需要开始编页码的页首位置。 2、选择“插入-分隔符”,打开“分隔符”对话框,在“分隔符类型”下单击选中“下一页”单选钮。 3、选择“视图-页眉和页脚”,并将光标定位于页脚…

office word 页码从任意页开始

有时候在编写word文档的时候,页码会从封面就开始计算,想象一下如果你的论文封面突然蹦出一个页码,很难受有木有! 解决这个问题很简单,网上教程很多,这里总结一下: 1. 找到你需要从零开始的页面&…

Word 如何从任意页开始显示页码

首先,我们选择鼠标点击封面的最后一行,表示我们想从这页开始分节,让封面和后面的内容成为两节不同的部分。 之后,我们选择“布局” 点击“分隔符”-“下一页”。 于是我们在便在封面与后面的内容之间创建了分节符 不过分节符是无…

001微信小程序云开发 API数据库-导入/导出

文章目录 微信小程序云开发 API数据库-导入案例代码微信小程序云开发API数据库-导出案例代码 微信小程序云开发 API数据库-导入 随着移动互联网的普及,微信小程序已经成为一种受欢迎的应用形式。微信小程序云开发 API 数据库是微信小程序的一项重要功能&#xff0c…

单片机TVS/ESD二极管防护

TVS 瞬态电压抑制二极管Transient Voltage Suppressor ESD 静电释放二极管 Electro-Static discharge 这两种本质上都是二极管。都是利用了二极管正向导通、反向截止的特性。二极管在反向截止截止条件下,如果电压继续增大,将会引发雪崩,使得…

CentOS部署Chemex(资产管理系统)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、CentOS部署Chemex1、使用AppNode面板部署(1)、在CentOs中安装AppNode操作面板(2)、使用AppNode安装软件&…

使用开源代码搭建资产管理系统

一、部署AppNode 1.1 AppNode操作系统要求: CentOS 6.x 32/64位,CentOS 7.x 64位,不支持 Ubuntu 1.2 安装命令 使用 SSH 连接工具,如 PuTTY、XShell、SecureCRT 等,连接到您的 Linux 服务器后,执行以下命令开始安装: INSTALL_AGENT=1 INIT_SWAPFILE=1 bash -c &quo…

无形资产计算机软件包括哪些,什么软件属于无形资产

什么软件属于无形资产 答:将外购财务软件计入无形资产是最常见的,并不是所有软件都要计入无形资产. 1、如果软件与实物固定资产一起购入,且密不可分,应当计入固定资产 2、如果单独购入在一定的情况下是可以做为无形资产管理的. 固定资产的有形与形主要是指有没有实物形态. 购买…

开源资产管理系统

真正的大师,永远都怀着一颗学徒的心! 一、项目简介 今天给大家推荐一个开源的资产管理系统。 对于一个公司而言,对资产的记录是一件很重要的事情,短时间你可能知道一个电脑,一个打印机放在什么地方。但是随着时间的推移&#x…

java固定资产设备管理系统(源码开源分享)

推荐两款固定资产管理系统源码,代码完整,功能较完善,适合学习。 源码免费分享,需要源码学习可私信我。 ▶▶▶1:IT设备管理--固定资产管理系统 系统概述 系统对常用资产设备进行信息化管理,包括资产增加…

c++ qt--线程(一)(第八部分)

c qt–线程(一)(第八部分) 一.进程(Process) 在任务管理器中的进程页下,可以看到进程,任务管理器将进程分为了三类,应用、后台进程、window进程 应用: 打开…

LabVIEW开发干扰对无线网络基础设施进行隐蔽影响测试

LabVIEW开发干扰对无线网络基础设施进行隐蔽影响测试 针对各种级别和类型的信息资源的DDoS攻击因其相对容易创建和应用的高效率而最为流行。同时,现有的机制不足以检测它们。因此,防范此类攻击的问题变得越来越紧迫,包括在实施IEEE 802.11标…

<八> objectARX开发:动态拖动Jig创建自定义实体

1、介绍 接上一篇文章,在某些情况下,CAD中的实体对象初始参数并不是固定的,我们需要通过jig动态拖动方式来绘制自定义实体,下面就用一个简单的例子来介绍一下自定义实体动态绘制。   实体形状:包括实体夹点和文字夹点拖动实现。 2、效果 3、源码 static void RYMyGrou…

命令行环境

sleep 20 延迟20秒 这个是操作系统的信号机制 ctrl z ^z可以恢复 jobs 可以查看 终端运行工作列表,bg可以将暂停的作业重新运行 通过kill暂停作业 通过 -KILL 之后才可以将 -HUP 作业悬挂起来 终端复路多用 会话 ^a p 上一个会话 ^ a n 下一个会话 别名 左右不能…

【C++入门到精通】C++入门 —— 多态(抽象类和虚函数的魅力)

阅读导航 前言一、多态的概念1. 概念2. 多态的特点 二、多态的定义及实现1. 多态的构成条件2. 虚函数3. 虚函数的重写⭕虚函数重写的两个例外1.协变(基类与派生类虚函数返回值类型不同)2.析构函数的重写(基类与派生类析构函数的名字不同) 4. override 和 final(C11 …

港联证券|股票涨跌怎么看?什么股票值得投资?

股票是一种常见的理财产品,它可以让投资者分享企业成长带来的收益,但股票市场也充满变数和风险。那么股票涨跌怎么看?什么股票值得投资?港联证券也为大家准备了相关内容,以供参考。 股票涨跌怎么看? 股票涨…

教你炒股票25:每日解盘

每日解盘(2007-01-23 15:28:03 ) 本帖最后由 旁观者 于 2009-12-5 10:05 编辑缠中说禅:2007-01-23 15:28:03 今天的走势没什么特别的,就是回补缺口,由于2870触及,因此还存在继续演化成大级别中枢的情况,明天&#xff0…

股市连续大跌,上证指数创新低,还是安心做工业

4月25日收盘,市场情绪低迷,沪深三大指数低开低走并跌超5%,上证指数报跌5.13%并跌破3000点至2928点且创新低,深证成指跌6.08%至10379点,创业板指跌5.56%至2169点。今日市场各版块略显不振,除了春风动力带动的…

快播创始人王欣再复出,创造新式播放器,看到功能后网友们沸腾了

在互联网高速发展的时代,手机由按键全部换成触屏,各大视频软件也迅速崛起。其中就包括快播,可能很多00后不熟悉快播这个视频播放软件,在前些年,快播一度占据了各大视频播放软件榜首。 快播的创始人王欣因不满国企的氛围…