【离散数学】偏序关系与全序关系的区别、解释(偏序集合、全序集合)

偏序关系全序关系都是公理集合论中的一种二元关系。
偏序集合:配备了偏序关系的集合。
全序集合:配备了全序关系的集合。

偏序:集合内只有部分元素之间在这个关系下是可以比较的。
比如比如复数集中并不是所有的数都可以比较大小,那么“大小”就是复数集的一个偏序关系。

全序:集合内任何一对元素在在这个关系下都是相互可比较的。
比如有限长度的序列按字典序是全序的。最常见的是单词在字典中是全序的。

偏序的定义
设R是集合A上的一个二元关系,若R满足:
Ⅰ 自反性:对任意x∈A,有xRx;
Ⅱ 反对称性(即反对称关系):对任意x,y∈A,若xRy,且yRx,则x=y;
Ⅲ 传递性:对任意x, y,z∈A,若xRy,且yRz,则xRz。
则称R为A上的偏序关系。

全序的定义
设集合X上有一全序关系,如果我们把这种关系用 ≤ 表述,则下列陈述对于 X 中的所有 a, b 和 c 成立:
如果 a ≤ b 且 b ≤ a 则 a = b (反对称性)
如果 a ≤ b 且 b ≤ c 则 a ≤ c (传递性)
a ≤ b 或 b ≤ a (完全性)

注意:完全性本身也包括了自反性。
所以,全序关系必是偏序关系。

【离散数学】单射、满射和双射的定义、区别

满射:对任意b,存在a满足f(a) = b。
Snip20160613_129
即:值域y是满的。每个y都有x对应。不存在某个y没有x对应的情况。

单射:(one-to-one function) 一对一函数。x不同则y不同。
Snip20160613_128
即:没有一个x对应两个y,也没有一个y有对应两个x。

双射:既是满射,也是单射。
Snip20160613_130
即:每个y都有x对应。而且都是一一对应。

【汇编】addr dw number number dw Y的意思:在ADDR单元中存放着数Y的地址

根据数据定义伪操作的格式:

其中变量(Variable)字段是可有可无的,它用符号地址表示,其作用与指令语句前的标号相同,但它后面不跟冒号。
如果语句中有变量,则汇编程序使其记以第一个字节的偏移地址。(例子中,A就是1存放处的地址)

所以说number 是 Y 的偏移地址
把number的值定义为word类型(dw),再把它存放入addr单元中,实现在ADDR单元中存放着数Y的地址。。

所以这两句的意思是:
addr单元处定义一个字节的值为number的变量
number处定义一个字节的值为Y的变量。。则number为Y的地址值

解释汇编中的AUGW LABEL WORD、ADDW LABEL WORD

LABEL定义ADDW(AUGW)WORD变量,但他自身没存储空间,而是和下面的ADDEND占一个空间,ADDW(AUGW)ADDEND(AUGEND)在存储器上占相同空间.一个为WORD变量类型,一个为DD变量类型。
这里,在ADDEND前申明了一个名为ADDW的标号并赋予其字(word)属性。ADDW是ADDEND的一个别名。
常用来将较小的数组成较大的数。

LABEL 一般用作定义变量和标号的属性,它是与紧接着的下一条变量和标号定义语句相关的,其类型可以为BYTEWORDDWORDQWORDNEARFAR等等。用法为:
buffer(变量) LABEL BYTE(类型)
例如:

Buffer1 LABEL WORD
Buffer2 DB 20 DUP (?)
通常,紧接着的下一条语句定义的类型与LABEL指定的类型不同。而实际上,Buffer1Buffer2的别名,两者指向内存中的同一个存储地址。换言之,同一组数据定义了两种不同的类型,在接受不同数据类型的访问时,可以指定相应的标号。如接受一个字类型数据访问时,使用Buffer1;接受字节类型数据访问时,使用Buffer2。否则因为数据类型不匹配,编译器编译时将出现异常。
lable本身不占有实际存储空间。

Sublime Text编写80×86汇编.asm文件的语法高亮插件

使用Sublime Text里面自带的Package Control安装。
使用shift+command(control)+P,输入install,选择Install Package回车~
Snip20160610_96

输入x86,选择x86 and x86_64 Assembly
Snip20160610_97

然后能看到左下角正在安装的提示~
Snip20160610_98

安装成功后重启软件就能使用了= =(只要文件名的后缀为.asm就可以自动高亮~)
Snip20160611_101