最新内容

原来汇编中的循环是这么玩儿的(汇编的循环语句)

汇编系列其实也在一直更新,只不过更新的频率会挺慢的。。。由于白天一直忙于工作,空闲时间还要看书、学习各种技术栈,早上也要抽时间早期健身,晚上回家还要陪家人 + 学习,时间安排的满满当当,所以我就慢慢写,各位读者也别太着急,我其实真想再分一个自己出来。之前的文章中介绍过 [0] 表示的是内存单元,它一般存储在 ds 寄存器中,偏移地址为 0 。比如下面的指令m …

汇编学习-17除法&转移&标号指令

div指令div提供除法能力,除法中有除数和被被除数,例如:AB,A是除数,B是被除数。在汇编指令中被除数默认保存在AX或者DX,除数可以保存在寄存器或者内存中8位除数,被除数AX,商AL,余数AH16位除数,被除数AX或者DX,商AX,余数DX除数中需要注意的就是几位数的除法,它们运算后保留的位置不一样,除法不做练习了,后面在实际场景中练dup功能dup主 …

想做外挂?先把汇编学好吧(汇编软件哪个好)

今天,我们来通过反汇编看一下函数调用的过程(顺便学习下汇编),如下图,为一个函数调用的例子。主函数里面调用了test()函数。在X86环境下,进入调试模式,反汇编代码。然后我们从主函数看起,前面一些汇编代码都是编译器在调试模式下自动生成的调试信息代码,我们主要看画红线的两句代码。哦,首先要看一下此时的栈空间状况,此时的栈空间由EBP和ESP两个寄存器来决定, …

雷军1994年写的老代码曝光,被称像诗一样优雅(附完整代码)

整理:程序员的那些事(id:iProgrammer)雷军的代码像诗一样优雅↓↓↓有些网友在评论中质疑,说雷军代码不会是「屎」一样优雅吧。说这话的网友,也许是开玩笑的,也许是真没看过雷军写过的代码。在 2011 年的时候,我们在微博转过雷军在 1994 年写的一段完整的汇编代码。雷军这段汇编代码,有程序员评价「如今能写出这么高质量的代码的程序员恐怕也不多」。后 …

汇编指令集(汇编指令集有哪几种)

一、数据传输指令───────────────────────────────────────它们在存贮器和寄存器、寄存器和输入输出端口之间传送数据.1. 通用数据传送指令.MOV 传送字或字节.MOVSX 先符号扩展,再传送.MOVZX 先零扩展,再传送.PUSH 把字压入堆栈.POP 把字弹出堆栈.PUSHA 把AX,CX,DX,BX,SP,BP,SI, …

C# 基础知识系列- 4 面向对象(c#面向对象是什么)

面向对象面向对象是一个抽象的概念,其本质就是对事物以抽象的方式建立对应的模型。 简单来讲,比如我有一只钢笔,那么我就可以通过分析,可以得到 这只钢笔的材第是塑料,品牌是个杂牌 ,里面装的墨是黑色的,可以用。这时候就能建立一个钢笔的模型,它在这里应该有这些属性:图是一个不正确的UML类图,但是可以简单的概述一下我们抽象的结果。这个图就描述了一个我们抽象出来的钢 …

c++虚函数与纯虚函数(c++纯虚函数例子)

虚函数与纯虚函数的定义虚函数是在基类中声明为虚函数的函数,它使得派生类可以对其进行重写(覆盖),并且在运行时调用相应的重写函数。我们通过在函数前加virtual关键字来声明一个虚函数,例如: 基类 Shapeclass Shape {public:virtual void draw() {声明虚函数 具体实现待派生类重写}}; 派生类 Circleclass …

解决虚函数性能问题,选择模板还是继承?

根据上篇文章《C++虚函数会导致性能开销大?》,我们了解了虚函数的机制,以及虚函数对性能的影响。只能在运行期间解析的虚函数调用是不允许使用内联的。这往往会造成性能问题,该问题我们必须解决。因为函数调用的动态绑定是继承的结果,所以消除动态绑定的一种方法是用基于模板的设计来替代继承。模板把解析的步骤从运行期间提前到编译期间,从这个意义上说,模板提高了性能。而对于 …

C++虚函数(c 虚函数)

一、定义在类中定义为virtual的成员函数二、原理编译器编译时遇到指针指向虚函数,会使用晚绑定,即由指针指向类的类信息来决定是哪个函数,即运行时动态绑定。三、作用1、实现多态功能 …

C++基础语法梳理:inline 内联函数!虚函数可以是内联函数吗?

上节我们分析了C++基础语法的const,static以及 this 指针,那么这节内容我们来看一下 inline 内联函数吧!inline 内联函数特征相当于把内联函数里面的内容写在调用内联函数处;相当于不用执行进入函数的步骤,直接执行函数体;相当于宏,却比宏多了类型检查,真正具有函数特性;编译器一般不内联包含循环、递归、switch 等复杂操作的内联函数 …