资源描述:
《《的指令系统续》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第三节8086/8088的指令系统(续)内容:二、算术运算指令(Arithmetic)1.加法指令2.减法指令作业:3-48,3-50,3-51复习内容:P89-100予习内容:P100-1061二.算术运算指令(Arithmetic)内容:8086/8088提供加、减、乘、除、转换五种基本算术操作;利用十进制调整指令和ASCII调整指令对BCD码表示的十进制数进行算术运算;对带符号数与无符号数进行乘、除运算。(一)加法指令(Arithmetic)(二)减法指令(Subtraction)(三)乘法指令(Multiplication)(四)除法指令(Division)(五)转换指令2特点
2、:大部分都影响标志位,不同指令影响不同:(1)加、减法指令影响SF,ZF,AF,PF,CF,OF;(2)加1和减1指令不影响CF;(3)乘法指令影响CF,OF;(4)除法指令使大部分标志位的状态不确定;(5)对BCD码调整指令对标志位的影响不同;(6)转换指令对标志位无影响都可以用于字节、字的运算;双操作数指令除源为立即数外,其余必须有一个操作数为寄存器;单操作数指令不能为立即数。3(一)加法指令(Arithmetic)8088具有5种加法操作指令:1、ADD(Addition)加法指令2、ADC(Addwithcarry)带进位加法指令3、INC(Incrementby1)加1指令4
3、、AAA(ASCIIadjustforaddition)加法ASCII调整指令5、DAA(Decimaladjustforaddition)加法十进制调整指令41、ADD(Addition)加法指令指令格式:ADDdest,src;(dest)(dest)+(src)Src:立即数,寄存器,存储器。dest:寄存器,存储器。例:ADDCL,10;寄存器+立即数ADDDX,SI;寄存器+寄存器ADDAX,MEM;寄存器+存储器ADDDATA[BX],AL;存储器+寄存器ADDBYTEPTRALPHA[DI],30H;存储器+立即数5特点:可以进行8位、16位的无符号数和带符号数的加法运
4、算;源操作数和目标操作数不能同时为存储器,不能为段寄存器;指令影响标志位的情况:OF=1,8位带符号数相加,和超出范围(-128~+127),16位带符号数相加,和超出范围(-32768~+32767);CF=1,8位无符号数相加,和超过255,16位无符号数相加,和超过65535。其他条件标志(SF,AF,PF,ZF)根据定义设定。6例MOVAL,7EH;(AL)=7EHMOVBL,5BH;(BL)=5BHADDAL,BL;(AL)=7EH+5BH=D9H影响标志位的情况:SF=1,结果最高位=1ZF=0,结果不等于0AF=1,D3位向D4有进位PF=0,”1”的个数为奇数CF=0,
5、无进位OF=1,和超过+127(两个正数相加,结果为负;反之亦是)72、ADC(Addwithcarry)带进位加法指令格式:ADCdest,src;(dest)←(dest)+(src)+CFCF:进位标志CF的现行值(上条指令CF值)特点:与ADD同。用途:主要用于多字节运算中。类型举例:ADCCX,300;寄存器+立即数+CFADCAL,BL;寄存器+寄存器+CFADCDX,COUNT[SI];寄存器+存储器+CFADCBLOCK[DI],BX;存储器+寄存器+CFADCBYTEPTRMEM,6;存储器+立即数+CF8用途举例:计算两个多字节数相加3B74AC60F8H+20D5
6、9E36C1H=?两个多字节数存放在:DATA1,DATA2的开始单元。流程图多字节数内存存放9程序:MOVCX,5MOVSI,0;清SICLC;清CFLOOPER:MOVAL,DATA2[SI]ADCDATA1[SI],ALINCSI;(SI)+1(SI)DECCX;(CX)-1(CX)JNZLOOPER;(CX)0转HLT;停机10问题思考:(1)什么叫溢出?什么叫进位?(2)有进位就有溢出,没有进位就没有溢出?(1)溢出------是指带符号数的补码溢出。字长为n位带符号数,补码运算能表示范围为:-2n-1~+2n+1–1如果运算结果超出该范围,叫补码溢出,简称溢出。在溢出
7、时,造成运算错误。进位------是指运算结果的最高位向更高位的进位。有进位,CF=1;无进位,CF=011(2)有进位就有溢出,没有进位就没有溢出?结论:有进位不一定有溢出,没有进位不一定没有溢出。数的表示范围:8位二进制数可以表示十进制数的范围:8位带符号十进制数的范围:-128~+1278位无符号十进制数的范围:0~25516位二进制数可以表示十进制数的范围:16位带符号十进制数的范围:-32768~+3276716位无符号十进制数的范围