摘要:
Bochs编程环境安装 写在前面 为了更好的记录自己学习过程以及踩过的坑,记录一下《操作系统真相还原》的编程环境安装。 安装过程参考了CSDN的这篇博客:安装Vmware Station 安装Ubuntu 装载配置Bochs 1. 本地安装环境 本机系统:win10 64位专业版,基于x64的处理器 阅读全文
摘要:
3.4 访问信息 一个x86_64的中央处理单元包含一组16个存储64位值的通用目的寄存器。 注意: 生成1字节和2字节数字的指令会保持剩下的字节不变。 生成4字节数字的指令会把高位4个字节置为0。 3.4.1 操作指示符 注意区分立即数和绝对寻址。 类型 格式 操作数值 名称 立即数 \(\$Im 阅读全文
摘要:
3.2 程序编码 linux> gcc -0g -o p p1.c p2.c gcc:指GCC C编译器 -0g:告诉编译器使用会生成符合原始C代码整体结构的机器代码的优化等级。 执行流程: C预处理器扩展源码,插入所有用#include命令指定的文件,扩展#define声明指定的宏。 编译器产生源 阅读全文
摘要:
2.4 浮点数 2.4.1 二进制小数 类似形如$b_mb_\cdotsb_1b_0.b_{-1}b_{-2}\cdotsb_{-n-1}b_{-n}$的表示法,其中$b_i$的取值范围为0或1,该表示法所表示的数定义如下: \[ \begin{equation} b=\sum_{i=-n}^{m} 阅读全文
摘要:
2.3 整数计算 2.3.1 无符号加法 对于满足$0 \leq x,\quad y<2^w$的整数$x$和$y$有: \[ x +_{w}^{u} y=\begin{cases} x+y,\quad x + y < 2^w\\ x + y - 2^w,\quad 2^w\leq x+y < 2^{ 阅读全文
摘要:
2.2 整数表示 2.2.1 整型数据类型 负数的范围比整数大1 2.2.2 无符号数的编码 对于向量 \[ \vec{x}=[x_{w-1},x_{w-2},...,x_{0}] \] 存在 \[ B2U(\vec{x})\dot{=}\sum_{i=0}^{w-1}{x_i2^i} \] 最大值 阅读全文
摘要:
2.1 信息存储 2.1.1 十六进制表示法 在c语言中,以0x或0X开头的数字常量被认为是十六进制的值。 进制转换 2.1.2 字数据的大小 字长:指指针数据的标称大小。 2.1.3 寻址和字节顺序 大端法和小端法 2.1.4 表示字符串 C语言中字符串被编码为一个以null,其值为0字符结尾的字 阅读全文
摘要:
erase函数的原型如下: string& erase ( size_t pos = 0, size_t n = npos ); iterator erase ( iterator position ); iterator erase ( iterator first, iterator last 阅读全文
摘要:
描述: classmethod修饰符对应的函数不需要实例化,不需要self参数,但第一个参数需要是表示自身类的cls参数,可以来类的属性,类的方法,实例化对象等。 返回值: 返回函数的类方法 实例1: #!/usr/bin/python # -*- coding: UTF-8 -*- class A 阅读全文
摘要:
把变量从内存中变成可存储或传输的过程称之为序列化,在Python中叫pickling。序列化之后,就可以把序列化后的内容写入磁盘,或者通过网络传输到别的机器上。反过来,把变量内容从序列化的对象重新读到内存里称之为反序列化,即unpickling。 Python提供了pickle模块来实现序列化。 阅读全文