(arg)argument:自变量,变元
(reg)register:寄存器
(seg)segment:段寄存器
(mem)memory:存储器(内存单元?)
一.各寄存器
1.数据寄存器:AX(accumulator 累加器)、BX(base address 基址寄存器 “过渡寄存器”)、CX(counter 计数器)、DX(data 数据寄存器):可拆分为L和H,将16位拆分为低八位和高八位
2.地址指针寄存器:SP(堆栈指针寄存器)、BP(基址指针寄存器)
SP(start pointer):栈顶指针,指向栈顶
BP(base pointer):基址指针,段地址默认在SS中,可以定位物理地址。指向哪里?一直指在最低端?
3.变址寄存器:SI、DI,用于指令间的变址寻址和间接寻址
DI(destination source):目的变址寄存器,一般与ds连用,确定某个储存单元的地址
SI(source index):源变址(什么是源地址?)寄存器,默认短地址和DI一样,和ds连用
[注]:这两个属于变址寄存器.可以和bx.bp联用,但是和bx连用时,段地址在DS中,和bp联用时,段地址在SS中.也可以单独使用,单独使用时,段地址默认在DS中,想要越段使用,加上段前缀即可.
在串指令操作中,si和ds联用,确定目标源地址,di和es(附加段寄存器)联用,确定传送的目的地址.说白了就是,分别寻址数据段和附加段.
在串指令中,si和di具有自加和自减功能
4.段寄存器:
CS:Code Segment 代码段
DS:Date Segment 数据段
ES:Extra Segment 附加段(啥时候用)
SS:Stack Segment 堆栈段
5.控制寄存器:
IP(introduction point):指令指针寄存器,内容为下一条要执行指令的偏移地址
FLAGS:标志寄存器
分控制标志:CF(进位标志)、PF(奇偶标志)、AF(辅助进位标志(第四位的进位情况))、ZF(零标志)、SF(符号标志)、OF(溢出标志)
和状态标志:TF(跟踪标志)、IF(中断标志)、DF(方向标志)
存储器编址规则(十六进制)
指令地址:CSX10H+IP
堆栈操作地址:SSX10H+SP
操作数地址:DS(ES)X10H+偏移地址
二.常用指令意义和规则
1.数据传递指令mov
2.运算指令:add adc(带进位加法) inc(加一) sub sbb(带借位减法) dec(减一)
3.比较指令与转移指令
4.循环指令
5.逻辑指令:
and:与
or:或
not:非
xor:异或,常用于寄存器清零
neg:求补,使该数变为绝对值相等,符号相反的另一数
6. 变量操作指令
7.地址相关指令:
lea:lea ax, [bx] 传偏移地址
lds:lea ax, [bx] 传地址指针,传给reg与ds
les:lea ax, [bx] 传地址指针,传给reg与es(extra segment)
8.移位指令(位运算?)
9.堆栈指令:
push
pop