算术运算指令,逻辑运算指令,移位指令
a.加减法运算add,adc,inc,sub,sbb,dec,cmp,neg 【程序编程相关:http://www.myfaq.com】 aa.算术运算指令 【推荐阅读:修改abap help的字段text】 add esi,edi 【扩展信息:循环链表实验】 a.add,与8086功能,用法相同,不过支持32位操作,下面的语句都是合法的. add eax,dword ptr [1000h] b.adc,带进位的加法指令,即oprds+oprdd+cf,其中oprds代表源操作数,oprdd代表目的操作,cf代表进位标志位,功能与用法与8086相同,支持32位操作. c.sub,与8086相同,支持32位操作. d.sbb,带进位的减法指令,即oprdd-oprds-cf,其中oprds代表源操作数,oprdd代表目的操作数,cf代表进位标志位,功能与用法与8086相同,支持32位操作. e.dec,减1操作,功能与用法与8086相同,支持32位操作. f.cmp,比较操作,功能与用法与8086相同,支持32位操作. g.neg,求补操作,功能与用法与8086相同,支持32位操作. h.inc 加1操作,功能与用法与8086相同,支持32位操作. b.乘除法指令mul,div,imul,idiv a.mul,无符号数乘法指令,与8086功能用法一样,即指令中只给出一个操作,被乘数已默认,如果指令给出的操作数是32位的话,被乘数默认为eax,那么乘积将存放在edx:eax中,其中edx存放高32位,eax存放低32位,如果此时edx=0,即高32位为0的话,那么of=0,cf=0,否则被置1.如果指令给出的操数作是16位的话,被乘数默认为ax那么乘积将放在dx:ax中,其中dx中将存放高16位,ax中存放低16位.如果指令给出的操作数是8位的话,被乘数默认为al,那么乘积将放在ax,ah中存放高8位,al中存放低8位. b.div,无符号数的除法指令,与8086一样,指令给出一个操作数,被除数已默认.如果指令中给出的操作数为32,那么被除数将是edx:eax, 最终的商将存放在eax, 余数将存放在edx中.如果指令给出操作数为16位,那么被除数为eax,最终得到的商放在ax,余数放在eax的高16位.如果指令中给出的操作数为8位,那么被除数是16位,最终得到的商将放在al中,余数放在ah中. c.imul,有符号数的乘法指令,除了具有8086的用法外,有新的形式: c1.imul dst,src;将源操作数src与目的操作dst相乘,并将结果送往dst. c2.imul dst,src1,src2;将源操作数src1与源操作数src2相乘,并将结果送往dst.... 下一页