写在汇编语言开课之前

同学们好,这一学期,我将陪伴大家学习汇编语言程序设计。   说到汇编语言,大家都知道它是一门低级语言。有多低级呢?计算机直接执行的是机器指令,就是二进制0、1序列,汇编语言使用一些助记符号代表这些指令。用汇编语言编程,直接操纵CPU中的寄存器,直接控制内存空间,可以说是直接操纵了计算机最底层的硬件。而我们现在,在绝大多数的情况下,都是在用高级语言编程解决问题,是不会接触计算机的底层的。
阅读本文

由浅至深,谈谈.NET混淆原理

呵呵,跑题了。。。   好,回到正题上,也许有很多人已经了解什么是混淆了,也知道混淆原理,不过我想应该有更多的人不知道,我们因为知道别人是怎么来处理混淆的,以及对混淆进行反向操作的,这样,我们才能更好的保护自己的知识产权。 我打算分为这么几个部分来试着谈谈.NET混淆原理   1.        IL 基础,什么是IL 2.        最简单的混淆 3.        什么是流程
阅读本文

大数据技术

一、大数据技术的发展的三个阶段 1.存起来-等待机遇       2009年开始BAT大力发展Hadoop技术,这个期间主要解决海量数据的存储与简单分析问题。       既然大数据有价值,那么就先将数据存起来。要发挥数据的价值,我们先要有数据。 n网站浏览点击行为日志存储 n简单的PV与UV统计,满足基本需求 n更注重存储能力、集群规模、扩展能力 2.用起来-市场化 开始注重对大数据的整合,构
阅读本文

编程珠玑记录(一)

编程珠玑第二部分 性能(效率) 第六章 程序性能分析 第七章 粗略估算 第八章 算法设计技术 第九章 代码调优 第十章 节省空间 第六章 程序性能分析 提高程序性能的方法有 算法和数据结构:选择合适的算法和数据结构表示当前情况的数据,使得算法得到优化,运算速度加快,例如:二叉树、列表。 算法调优:通过一个特殊函数来识别并处理这样的数据,使其(使用较大的时间步,或者实
阅读本文

Python3 标准库

Python3标准库文本 string:通用字符串操作 re:正则表达式操作 difflib:差异计算工具 textwrap:文本填充 unicodedata:Unicode字符数据库 stringprep:互联网字符串准备工具 readline:GNU按行读取接口 rlcompleter:GNU按行读取的实现函数 二进制数据 struct:将字节解析为打包的二进制数据 codec
阅读本文

五大存储区域

一. 在c中分为这几个存储区1.栈 - 由编译器自动分配释放2.堆 - 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收3.全局区(静态区),全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。- 程序结束释放4.另外还有一个专门放常量的地方。- 程序结束释放
阅读本文

Go语言汇编

Go语言的汇编基于Plan 9的汇编,但是有一些不同。最主要的一个区别是,Go语言的汇编指令不一定直接对应机器表示。有一些直接对应,有一些则不是。Go语言的汇编和Plan 9的另一个不同是操作符的优先级。比如3&1DATA symbol+offset(SB)/width, valueGLOBAL指令定义一个符号是全局的GLOBL divtab<>(SB), RODATA, $64 GL
阅读本文

CLR IN C# 笔记 类型和成员基础

一个进程有多个线程,线程创建时会占用1MB的栈,栈空间用于向方法传递实参,方法内部定义的局部变量也在栈上,栈从高位内存地址向低位内存地址构建CLR其实允许定义一个同名、同参的方法,但是除了汇编,其他实现了CLR的语言都不允许这么干。这是为毛呢?CLR调用虚方法和非虚方法,CLR提供两个方法指令call、callvirtcall用来调用静态方法,如果是值类型定义的方法,那么CLR将以call来调用非
阅读本文

多线程中注意事项

1、多线程有什么用?一个可能在很多人看来很扯淡的一个问题:我会用多线程就好了,还管它有什么用?在我看来,这个回答更扯淡。所谓”知其然知其所以然”,”会用”只是”知其然”,”为什么用”才是”知其所以然”,只有达到”知其然知其所以然”的程度才可以说是把一个知识点运用自如。OK,下面说说我对这个问题的看法:(1)发挥多核CPU的优势随着工业的进步,现在的笔记本、台式机乃至商用的应用服务器至少也都是双
阅读本文

Python自动化开发 - 函数式编程

本节内容一、函数式编程二、高阶函数  1、变量可以指向函数  2、函数名也是变量  3、传入函数三、返回函数  1、函数作为返回值  2、闭包特性  一、函数式编程   函数是Python内建支持的一种封装,我们通过把大段代码拆成函数,通过一层一层的函数调用,就可以把复杂任务分解成简单的任务,这种分解可以称之为面向过程的程序设计。函数就是面向过程的程序设计的基本单元。我们首先要搞明白计算机(C
阅读本文

面向对象编程

对于高级编程语言(区别于C和汇编),动不动就有人说面向对象编程,OOP各种封装,继承,多态就出来。但是实际开发中我们还是写的一个个方法一个个函数,还是顺序,分支,循环的面向过程的代码开发,面向对象编程与我们有何意义?开发久了就让我们忘记了当初完成一个“hello,world!”的兴奋和喜悦。或许你会说开发中大量的复制和粘贴消磨了我们对编程的热情,变成了机械的劳动和无尽的BUG修复。但是编程不只是复
阅读本文

【java技术栈】总序

技术栈(technology stack)常被用来指代某项工作或某个职位需要掌握的一系列技能的总和。一门语言的学习是一个复杂的系统工程,作为非科班出身的开发菜鸟,面对庞大的计算机知识系统,常常感到无从下手。我尝试从零开始整理java这门语言的全部知识点,在横向上将其分门别类,在纵向上以学习路径区别其先后顺序,希望能更清晰的看出知识里面的脉络和联系,助人助己。  首先声明,”java技术栈“系列
阅读本文

汇编语言DosBox下在64位上运行实现编译(masm)与调试即debug命令。

据我所知有两种方法实现masm:找到asm文件右击选择默认打开方式,然后将方式改为dosbox就可以了:接下来就是: masm    ****.asm(无错误提示的话,连续按三个回车)link ****.obj*****.exe这样就可以了。第二种方法有点麻烦:首先得通过mount命令将你源文件所在位置转化为c盘; 然后masm(同上):DEBUG.EXE程序是专门为分析、研制和开发汇编语言程序
阅读本文

王爽《汇编语言》第三版 第十五章 外中断

引言  CPU 除了有运算能力外,还要有 I/O( Input/Output ,输入/输出)能力。 15.1 接口芯片和端口  在PC系统的接口卡和主板上,装有各种接口芯片。这些外设接口芯片的内部有若干寄存器,CPU将这些寄存器当作端口来访问。  外设的输入不直接送入内存和CPU ,而是送入相关的接口芯片的端口中。  CPU向外设的输出也不是直接送入外设,而是先送入端口中,再由相关的芯片送到外设。
阅读本文

王爽《汇编语言》第三版 第十四章 端口

端口的读写  端口的读写指令只有两条:in 和 out分别用于从端口读取数据和往端口写入数据。  在in和out指令中,只能使用ax或al来存放从端口中读入的数据或要发送到端口中的数据。访问8位端口时用al,访问16 位端口时用ax。  对256~65535的端口进行读写时,端口号放在dx中。CMOS RAM 芯片  CMOS RAM芯片包含一个实时钟和一个有128个存储单元的RAM存储器。  该
阅读本文

计算机硬件和软件基础

什么是计算机?计算机(Computer)全称:电子计算机,俗称电脑。是一种能够按照程序运行,自动、高速处理海量数据的现代化智能电子设备。由硬件和软件所组成,没有安装任何软件的计算机称为裸机。常见的形式有台式计算机、笔记本计算机、大型计算机等。应用举例  1:科学计算 2、数据处理 3、自动控制 4、计算机辅助设计 5、人工智能 6、多媒体应用 7、计算机网络 什么是硬件?计算机硬件
阅读本文

Delphi接口的底层实现

引言       接口是面向对象程序语言中一个很重要的元素,它被描述为一组服务的集合,对于客户端来说,我们关心的只是提供的服务,而不必关心服务是如何实现的;对于服务端的类来说,如果它想实现某种服务,实现与该服务相关的接口即可,它也不必与使用服务的客户端进行过多的交互。这种良好的设计方式已经受到很广泛的应用。    早在Delphi 3的时候就引入了接口的概念,当时完全是因为COM的出现而诞生的,但
阅读本文

符号修饰与函数签名

约在20世纪70年代以前,编译器编译源代码产生目标文件时,符号名与相应的变量和函数的名字是一样的。比如一个汇编源代码里面包含了一个函数foo,那么汇编器将它编译成目标文件以后,foo在目标文件中的相对应的符号名也是foo。当后来UNIX平台和C语言发明时,已经存在了相当多的使用汇编编写的库和目标文件。这样就产生了一个问题,那就是如果一个C程序要使用这些库的话,C语言中不可以使用这些库中定义的函数和
阅读本文

linux c编程(一)

1 常用系统环境配置2 使用g++编译连接,使用gdb调试3 使用makefile组织目标文件的依赖关系4 使用git 1 常用系统环境配置输入法Download setup file for sogou input method (a deb file)sudo dpkg -i sogou_pinyin_linux_1.0.0.0033_amd64.debsudo apt-get install
阅读本文

【.Net Framework 体积大?】不安装.net framework 也能运行!?原理简介-2(补充)

看完点推荐,推荐数目超过100,打包脚本+工具+运行时 全部分享哈。。。。。(无公司争议,请放心) 接上一篇 下一篇   昨天写了一个引子,还是有读者对这套“小把戏”感兴趣。那么不辜负大家的希望,争取博主不做太监........  注意:笔者不想谈Link的方式,虽然很爽,但是不靠谱。毕竟解析翻译到原生的应用,微软到现在也就敢在Xaml系的应用做尝试,不知道是微软的策略,还是自身都信心不大....
阅读本文