《汇编语言》学习笔记8——基本汇编指令

时间:2021-08-18 04:49:41

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