资源描述:
《微机原理第03章3算术逻辑移位串1》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第3章(3)第3章:3.4算术运算类指令算术运算类指令用来执行二进制的算术运算:加减乘除。这类指令会根据运算结果影响状态标志,有时要利用某些标志才能得到正确的结果;使用他们时请留心有关状态标志重点掌握加法指令:ADD、ADC、INC减法指令:SUB、SBB、DEC、CMP、NEG第3章:3.4.1加法和减法指令加法指令:ADD,ADC和INC减法指令:SUB,SBB,DEC,NEG和CMP他们分别执行字或字节的加法和减法运算,除INC和DEC不影响CF标志外,其他按定义影响全部状态标志位操作数组合:运算指令助记符reg,
2、imm/reg/mem运算指令助记符mem,imm/reg第3章:1.加和减指令ADDdest,src;加法:dest←dest+src;ADD指令使目的操作数加上源操作数,和的结果送到目的操作数SUBdest,src;减法:dest←dest-src;SUB指令使目的操作数减去源操作数,差的结果送到目的操作数第3章:例题3.7加法movax,7348h;AX=7348Haddal,27h;AL=48H+27H=6FH,AX=736FH;OF=0,SF=0,ZF=0,PF=1,CF=0第3章:例题3.7减法subah,0
3、f0h;AH=B3H-F0H=C3H,AX=C36EH;OF=0,SF=1,ZF=0,PF=1,CF=1movwordptr[200h],0ef00h;[200H]=EF00H,标志不变sub[200h],ax;[200H]=EF00H-C36EH=2B92H;OF=0,SF=0,ZF=0,PF=0,CF=0第3章:3.带进位加和减指令ADCdest,src;加法:dest←dest+src+CF;ADC指令除完成ADD加法运算外,还要加上进位CF,结果送到目的操作数SBBdest,src;减法:dest←dest-sr
4、c-CF;SBB指令除完成SUB减法运算外,还要减去借位CF,结果送到目的操作数第3章:例3.8无符号双字加法和减法movax,7856h;AX=7856Hmovdx,8234h;DX=8234Haddax,8998h;AX=01EEH,CF=1adcdx,1234h;DX=9469H,CF=0subax,4491h;AX=BD5DH,CF=1sbbdx,8000h;DX=1468H,CF=0DX.AX=82347856H+12348998H-80004491H=1468BD5DH第3章:3.比较指令CMP(compar
5、e)CMPdest,src;做减法运算:dest-src;CMP指令将目的操作数减去源操作数,但差值不回送目的操作数比较指令通过减法运算影响状态标志,用于比较两个操作数的大小关系cmpax,bxcmpal,100第3章:4.增量和减量指令INCreg/mem;增量(加1):reg/mem←reg/mem+1DECreg/mem;减量(减1):reg/mem←reg/mem-1INC指令和DEC指令是单操作数指令与加法和减法指令实现的加1和减1不同的是:INC和DEC不影响CF标志incsi;si←si+1decbytep
6、tr[si];[si]←[si]-1第3章:5.求补指令NEG(negtive)NEGreg/mem;reg/mem←0-reg/memNEG指令对操作数执行求补运算,即用零减去操作数,然后结果返回操作数求补运算也可以表达成:将操作数按位取反后加1NEG指令对标志的影响与用零作减法的SUB指令一样,操作结果不为零,CF=1,反之。NEG指令也是一个单操作数指令第3章:例题3.9求补运算movax,0ff64hnegal;AL=0-64H=9CH,AX=FF9CH;OF=0SF=1,ZF=0,PF=1,CF=1第3章:3.
7、4.2符号扩展指令(字节-字转换指令)符号扩展是指用一个操作数的符号位(最高位)形成另一个操作数,后一个操作数的高位是全0(正数)或全1(负数)符号扩展虽然使数据位数加长,但数据大小并没有改变,扩展的高部分仅是低部分的符号扩展符号扩展指令有两条,用来将字节转换为字,字转换为双字CBW;AL符号扩展成AXCWD;AX符号扩展成DX用途:用于有符号数的除法。例如:(AL)=A7H,则执行CBW后,AH的内容为FFH。第3章:例题3.10符号扩展moval,64h;AL=64H(机器数),表示10进制数100(真值)cbw;将
8、符号0扩展,AX=0064H,仍然表示100movax,0ff00h;AX=FF00H,表示有符号10进制数-256cwd;将符号位“1”扩展,DX.AX=FFFFFF00H;仍然表示-256第3章:3.4.3乘法和除法指令乘法指令分无符号和有符号乘法指令MULreg/mem;无符号乘法IMULreg/mem;有符号