
笔记
文章平均质量分 61
apkjdk
45274245
展开
-
补码原理
首先,在有限且循环的计数系统中,模M是确定的,那(a-x) mod M == a+(M-x) mod M,即 a-x ≡ a+(M-x) (mod M),满足同余定理,x与M-x互补,有减法变为加法的数学基础,而且ALU的门电路设计成了可以对有限位进行循环的加操作,并且丢弃溢出位,也就是有规律的overflow(类似于指针表盘),那么减法变为加法也有了物理基础.在此种计数系统中 : a-x == a+(M-x) == a+(M-1-x+1)a+(M-x) :还有减法M-x,而且无法化简,无法施行.a+原创 2020-11-22 01:25:04 · 189 阅读 · 0 评论 -
使用自定义的静态链接库.
首先,一个.c程序经过只经过编译而没有链接,则就是对应实现的函数的集合,默认后缀名为.o,此时并没有静态链接库就是封装好的函数的归档文件.其后缀.a,全称为archive(归档).原创 2020-11-20 12:43:56 · 193 阅读 · 0 评论 -
符号及符号表是什么?
在编程语言中,不可避免的要定义全局变量,函数.在编译器编译源文件的时候,函数名转换为内存地址的引用,未定义的函数名要分配重定位条目,已初始化且初始化不为0变量要存入.data节,初始化为0的存入.bss节,未初始化的则指向COMMON伪节中.执行这些操作,需要一个合适的数据结构以组织这些信息和高效的获取数据.于是这一个个的函数名和全局变量名就称为符号,并有序的组织在一起,称为符号表.例图:Name是incr,Type是FUNC,Ndx是1,Size为26.解释: inct是一个占26byte的原创 2020-11-20 11:22:29 · 744 阅读 · 0 评论 -
内存从连续到离散(整块内存-->内存分段-->内存分页),大概脉络的随记,大白话讲解
分段程序载入内存,运行时的跳转位置引出 硬编码和重定位适用设备:硬编码:嵌入式,专用设备重定位:现代操作系统.硬编码:cpu执行时,在遇到关于内存地址的代码时,不翻译,直接执行程序关于内存地址的代码. 在单片机中,或者卫星中,设备的功能是单一的,执行的代码总是固定的,例如 总是从300这个内存位置开始执行播放音乐,则直接将播放音乐的代码烧在300处,事实上,现代操作系统的启动前,从硬盘载入的时的代码就是提前烧录在cpu上的.重定位:由操作系统将程序中的内存地址翻译到另一个内存地址(由绝对地址变为原创 2020-07-24 00:06:19 · 444 阅读 · 0 评论 -
Hadoop笔记
Hadoop安装的大概流程: Hadoop基于java开发,所以必须先安装JDK,并配置JDK的环境变量 Hadoop安装完成后,也必须配置Hadoop的环境变量 Hadoop还必须对配置文件进行相应的更该. 主要有:hadoop-env.sh --更改JAVA_HOME路径 core-site.xml --默认文件系统改为hdfs,hadoop的默认tmp目录 hdfs-si...原创 2020-07-22 20:32:26 · 107 阅读 · 0 评论 -
linux0.11启动时bootsect.s和setup.s的主要作用
cpu启动时为实模式,此时硬烧录的将cs=0xFFFF,ip=0x0,并自动开始执行0xFFFF0(ROM-BIOS的地址)的代码,BIOS会自检,并在0x0地址处设置中断向量表,此后实模式的int中断全部依赖此表,并将0磁道0扇区的512字节(引导扇区,放bootsect.s)读入内存0x7c000处,并跳转到此地址.bootsect.s只能占512字节,功能有限,所以需要setup.s, 首先bootsect.s将自身从0x7c000移动到0x90000(为setup.s将system移动到0x00原创 2020-07-04 00:35:18 · 1116 阅读 · 0 评论 -
x86架构所有寄存器和标志位详细信息(全名+作用)
AX(accumulator):累加寄存器BX(base):基址寄存器CX(count):计数寄存器DX(data):数据寄存器SP(Stack Pointer):堆栈指针寄存器BP(Base Pointer):基址指针寄存器SI(Source Index):源变址寄存器DI(Destination Index):目的变址寄存器IP(Instruction Pointer):指令指针寄存器CS(Code Segment)代码段寄存器DS(Data Segment):数据段寄存器SS(S转载 2020-05-23 14:43:56 · 1804 阅读 · 0 评论 -
8086cpu BIOS根据中断号得到中断程序入口地址
8086系统在存储器的最低1KB区域(00000H~003FFH)建立一个中断向量表,存放256个中断类型的中断向量。这1024个单元被分成256组,每组包括4个字节单元,存储一个中断向量的段基址和段内偏移地址,高2个字节用于存放段基址,低两个字节用于存放段内偏移地址。例如:(00AB 0BA9) => 0BA9:00AB(cs:ip)在执行某一条INT n指令时,CPU首先对断点和现场进行保护,然后将中断指令中的中断类型号n乘以4,得到一个地址,这个地址就是n号中断服务子程序的入口地址在中断向量转载 2020-05-22 23:33:23 · 11348 阅读 · 1 评论 -
windows注册表参数(%1,%2,%v)
windows注册表是不区分大小写的.参数含义%1文件路径%2系度统默认的打印机%3文件扇区%4端口%D文件路径%L文件长路径%V文件路径%W当前文件的父目录的路径参考:https://blog.youkuaiyun.com/meng_suiga/article/details/79485855...原创 2020-04-17 22:27:15 · 7702 阅读 · 1 评论 -
c#操作注册表
RegistryKey 类(表示 Windows 注册表中的项级节点)定义:[System.Runtime.InteropServices.ComVisible(true)]public sealed class RegistryKey : MarshalByRefObject, IDisposable命名空间:Microsoft.Win32程序集:mscorlib.dllRegis...原创 2020-04-17 22:16:50 · 173 阅读 · 0 评论 -
c# 整数数字的具体类型
c#与java不同,数字类型并不是具体不变的,java若整数没有特定后缀,则默认为int型.浮点数默认为double型无后缀的数字 :类型与大小有关.(2147483647–Int32,9223372036854774807–Int64)有后缀的数字 :类型为后缀声明的类型.(1L–Int64,9223372036854774807UL–UInt64)Console.WriteLine(21...原创 2020-04-02 21:38:46 · 297 阅读 · 0 评论 -
使用命令行编译c#程序
c#编译器名为csc(c sharp compile),只要安装了framework框架,在框架版本目录下都会有默认的c#编译器(csc.exe),例如C:\Windows\Microsoft.NET\Framework64\v3.5目录会有csc.exe,只用把上述目录加入环境变量就可以使用csc编译.cs文件格式:csc -filename(带拓展名)但是,框架下默认的csc只支持c# ...原创 2020-03-28 13:34:16 · 563 阅读 · 0 评论 -
java的foreach与c#的foreach
语法:foreach(type var : object){ /* ... body of the function */}foreach必须定义一个临时变量(无法使用已经定义好的变量,也无法定义一个和外面名称冲突的变量),且作用域仅限于foreach的函数主体中(在函数外无法调用)....原创 2020-03-23 00:12:00 · 206 阅读 · 1 评论