微机指令
AX:累加器ADD,BX:基址寄存器BASE,
CX:计数寄存器COUNTER,DX:数据寄存器DATA
SP:堆栈指针寄存器,指示堆栈在内存中的相对位置。
BP:基数指针寄存器,存放数据在内存中的基地址,使寻址方式更为灵活。
SI:源操作数变址寄存器,存放源数据的地址。
DI:目的操作数变址寄存器,存放目的数据的地址。
1直接寻址:MOV AL, ES:[2CH] ;从ES附加段偏移地址为2CH的单元取数→AL
2寄存器间接寻址:MOV AX , [BX] ;从DS数据段中由BX所指向的地址开始的两单元内容送入AX 默认BP SP在SS段 AX BX CX DX SI DI在DS段:
3寄存器相对寻址:MOV AX,[SI+100H]如SI=2000H,则将DS段2100H~2101H的内容送入AX,DS和SI有毛关系?
(也称为带位移量的间接寻址,位移量可正可负。常用于找一维数组)
4基址加变址的寻址:MOV AX,[BX+SI] ;将BX和SI中的内容之和所指向的存储单元开始的两个字节送入AX (通常将EBX EBP BX和BP称为基址寄存器,通常将ESI EDI SI和DI称为变址寄存器。BP默认在SS段其它都在DS段同上一样)
5相对的基址加变址寻址:MOV AX,[BP+SI+0050] ;将ES段的由BP和SI中的内容与0050相加作为有效地址。
6相对的带比例因子的变址寻址:IMUL EBX,[ESI*4+7] ; ESI的内容乘以4在加上7形成有效地址
7基址加比例因子的变址寻址:MOV EAX,[EBX][ESI*4] 《===》MOV EAX,[EBX+ESI*4] ;将DS段由EBX+ESI*4所指向的单元开始的四个字节送入EAX
8相对的基址加比例因子的变址寻址:MOV EAX,[EDI*4][EBP+80]=== [EDI*4+EBP+80]
一、and指令:逻辑与指令,按位进行与运算
例如指令:
mov al,01100011B
and al,00111011B
(第三,7,8位为0)
执行后:al=00100011B
通过该指令可将操作对象的相应位设为0,其他位不变
例如:
将al的第六位设为0的指令是:and al,10111111B
AND OR原文章链接
微机原理——指令系统——算数运算指令(ADD、ADC、SUB、SBB、INC、DEC、NEG、CMP、MUL、IMUL、DIV、IDIV、CBW、CWD、BCD调整)》,
ADC是ADD+CF,SBB是SUB(减)-CF
NOP定义在库函数intrins.h中,表示空循环一个机器指令的时间,
6M中表示2us;
12M中表示1us;
24M中表示0.5us(微妙);
1s=1000ms=1000 000us;