1.基本汇编指令
1.传送指令:MOV
格式:MOV OPD,OPS
操作:将OPS的值传送到OPD中
注意事项:
1.OPD不能是CS
2.不允许在两个存储单元之间传送
3.MOV影响所有标志位
4.OPD、OPS的数据类型要一致
5.OPD为CS时,OPS不能为立即数
2.进栈指令:PUSH
格式:PUSH OPD
操作:1.SP←SP-1 2.将OPD的高字节进栈 3.SP←SP-1 4.放入低字节
注意事项:
1.OPD必须为16位字
2.OPD不能为立即数
3.每次进栈后地址-2
4.先修改栈顶指针,后执行进栈操作
5.只允许对字进栈
3.出栈指令:POP
格式:POP OPD
操作:1.将SP所指向字节单元内容出栈到OPD低字节 2.SP←SP+1 3.将SP所指向字节单元内容出栈到OPD低字节 4.SP←SP+1
注意事项:
1.OPD必须为16位字
2.OPD不能为立即数
3.每次出栈后地址+2
4.先执行出栈操作,后修改栈顶指针
5.只允许对字出栈
进栈和出栈常用于程序中保留、恢复断点以及保护、恢复现场。
4.交换指令:XCHG
格式:XCHG AX,BX
操作:将AX,BX的 值互换
5.有效地址传送:LEA
格式:LEA OPD,OPS
注意事项:
1.OPS一定是存储器操作数
2.OPD不允许为立即数,段寄存器
6.加指令:
1.加法指令:ADD
格式:ADD OPD,OPS
操作:OPD = OPD+OPS
注意事项:
1.不允许将两个存储单元相加
2.OPD、OPS都不允许为段寄存器
3.影响所有标志位
2.带进位加法指令:ADC
格式:ADC OPD,OPS
操作:OPD = OPD+OPS+CF CF为进位标志
注意事项与ADD相同,多用于多字节/字的运算,以便低字节/字相加时产生的进位加至最高字节中。
3.加1指令:INC
格式:INC OPD
操作:OPD = OPD+1
注意事项:
1.OPD不允许为立即数,不允许为段寄存器。
2.不影响进位标志CF
7.减指令:
1.减法指令:SUB
格式:SUB OPD,OPS
操作:OPD = OPD-OPS
注意事项与ADD一致
2.带借位减法指令:SBB
格式:SBB OPD,OPS
操作:OPD = OPD-OPS-CF
注意事项与ADC一致
3.减1指令:DEC与INC一致
8.求补指令:NEG
1.各位取反,末尾加1
2.对一个操作数求补,相当于用0减该操作数
3.对一个操作数连续求补两次,其值不变
4.除对0求补(CF=0)以外的情况,CF=1
5.对正数补码求补为其负数补码,反之一样
9.比较指令:CMP