0%

数据类型部分

整型
Java7 开始:允许通过加前缀 0b 写二进制数;允许为数字字面量加下划线:

  • 1_000_000
  • 0b1111_0000_0100

浮点型
由于二进制系统无法精确表示分数 1/10,故浮点数值不适用金融计算,此时应使用 BigDecimal 类。

常量 数值
Double.POSITIVE_INFINITY 正无穷
Double.NEGATIVE_INFINITY 负无穷
Double.NaN 非数字
阅读全文 »

正则表达式即以行为单位,通过特殊符号查询删除替换某特定字符串的方法,在支持的工具里通用

基础正则表达式

语系
避免编码造成的区别,建议使用特殊符号

特殊符号 意义
:alnum: A-Z a-z 0-9
:alpha: A-Z a-z
:upper: A-Z
:lower: a-z
:digit: 0-9
阅读全文 »

(没有遵循标题格式…因为显示的差别太小了…

控制转移指令

无条件转移指令

段内直接转移

1
2
3
4
5
6
JMP SHORT 目标标号
;(IP) ← (IP)+8位位移量、、
;8 位短转移
JMP NEAR PTR 目标标号
;(IP) ← (IP)+16位位移量
;16 位近转移

段内间接转移
用寄存器或存储单元的内容

1
2
JMP 字地址指针
;(IP) ← (EA)
阅读全文 »

算术运算指令

双操作数指令必须有一个操作数在寄存器中(除源操作数是立即数的情况)
单操作数指令不允许使用立即数

条件标志位
CF 有进位为 1 无进位为 0
ZF 结果为零
SF 符号
OF 溢出,若两个操作数符号相同而结果的符号与之相反时为 1

加法指令

1
2
3
4
5
6
7
8
9
ADD DST,SRC

ADC DST,SRC
;(DST) ← (SRC)+(DST)+CF
;带进位加法指令

INC OPR
;(OPR) ← (OPR)+1
;加 1 指令
阅读全文 »

数理逻辑 -> 命题逻辑

范式
真值表的规模会随命题变元(文字)的数量呈指数增长,使用范式替代真值表

  • 有限个简单合取式(短语)的析取称 析取范式
  • 有限个简单析取式(子句)的合取称 合取范式

否定联结词仅出现在文字之前
单独的文字可看作子句 / 短语 / 合取范式 / 析取范式
单独的短语 / 子句也可构成析取范式 / 合取范式

阅读全文 »

shell

用户默认取得的 shell 记录于 /etc/passwd,默认是 bash
上一次登录的历史命令记录在 ~/.bash_histroy,本次登录的会在注销后记录进去
内置命令和外部命令

1
2
3
# type [-ta] name
-t 仅显示执行时的依据
-a 显示所有含 name 的命令

内置命令是 shell 解释程序内建的,由 shell 直接执行,不需要派生新的进程;外部命令 shel会创建一个新的进程,新的进程在 PATH 变量内所列出的目录中寻找特定命令执行,默认 shell 将等待直到该进程结束

阅读全文 »

这篇里的指令都不影响标志位

通用数据传送指令

1
MOV DST,SRC ;传送指令

目不能为 CS IP 或立即数
存储单元和段寄存器之间不能直接传送数据,要用通用寄存器为桥梁
立即数不能直接送到段寄存器,同样要用通用寄存器为桥梁


1
2
3
4
5
6
PUSH SRC ;进栈指令
;(SP) ⬅ (SP) -2
;((SP+1), (SP)) ⬅ (SRC)
POP DST ;出栈指令
;(DST) ⬅ ((SP+1), (SP))
;(SP) ⬅ (SP) +2
阅读全文 »

文件

vim 编辑文件时会新建 .filename.swp 文件,记录所作操作,当 vim 被不正常中断(或他人正在编辑
)时暂存文件不会消失,继续编辑时允许如下操作:

  • R 加载暂存文件的内容,恢复未保存的工作,记得离开 vim 后手动删掉暂存文件
  • D 确定暂存文件无用,删除并新建本次使用的 .swp
  • O 以只读打开,不进行编辑行为,用于他人正在编辑
阅读全文 »

数据寻址方式

立即数寻址
操作数直接存放于指令

1
MOV AX,1234H    ;即1234H

寄存器寻址
操作数存放于 CPU 的某个寄存器中,不需访问存储器速度快
8 位操作数寄存器可以是 AH AL BH BL CH CL DH DL
16 位操作数寄存器可以是 AX BX CX DX SP BP SI DI

阅读全文 »

磁盘分区程序

1
2
3
4
5
6
7
# fdisk [-l] 设备名称
-l :输出对应设备的所有的分区,未指定设备则显示系统内能找到的所有分区

相关命令 m 查看
cylinder 可以通过 +sizeM 让系统自动分配

# partprobe <==强制内核重新读取分区表(不重启更新分区表信息)

无法处理 2TB 以上的磁盘分区,使用 parted 命令
设备名称不应该加上数字如 /dev/hdc1 因为分区针对的是整个硬盘设备

阅读全文 »