如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
第三节8086/8088的指令系统(续)内容:二、算术运算指令(Arithmetic)1.加法指令2.减法指令作业:3-48,3-50,3-51复习内容:P89-100予习内容:P100-106二.算术运算指令(Arithmetic)内容:8086/8088提供加、减、乘、除、转换五种基本算术操作;利用十进制调整指令和ASCII调整指令对BCD码表示的十进制数进行算术运算;对带符号数与无符号数进行乘、除运算。(一)加法指令(Arithmetic)(二)减法指令(Subtraction)(三)乘法指令(Multiplication)(四)除法指令(Division)(五)转换指令特点:大部分都影响标志位,不同指令影响不同:(1)加、减法指令影响SF,ZF,AF,PF,CF,OF;(2)加1和减1指令不影响CF;(3)乘法指令影响CF,OF;(4)除法指令使大部分标志位的状态不确定;(5)对BCD码调整指令对标志位的影响不同;(6)转换指令对标志位无影响都可以用于字节、字的运算;双操作数指令除源为立即数外,其余必须有一个操作数为寄存器;单操作数指令不能为立即数。(一)加法指令(Arithmetic)8088具有5种加法操作指令:1、ADD(Addition)加法指令2、ADC(Addwithcarry)带进位加法指令3、INC(Incrementby1)加1指令4、AAA(ASCIIadjustforaddition)加法ASCII调整指令5、DAA(Decimaladjustforaddition)加法十进制调整指令1、ADD(Addition)加法指令指令格式:ADDdest,src;(dest)(dest)+(src)Src:立即数,寄存器,存储器。dest:寄存器,存储器。例:ADDCL,10;寄存器+立即数ADDDX,SI;寄存器+寄存器ADDAX,MEM;寄存器+存储器ADDDATA[BX],AL;存储器+寄存器ADDBYTEPTRALPHA[DI],30H;存储器+立即数特点:可以进行8位、16位的无符号数和带符号数的加法运算;源操作数和目标操作数不能同时为存储器,不能为段寄存器;指令影响标志位的情况:OF=1,8位带符号数相加,和超出范围(-128~+127),16位带符号数相加,和超出范围(-32768~+32767);CF=1,8位无符号数相加,和超过255,16位无符号数相加,和超过65535。其他条件标志(SF,AF,PF,ZF)根据定义设定。2、ADC(Addwithcarry)带进位加法指令格式:ADCdest,src;(dest)←(dest)+(src)+CFCF:进位标志CF的现行值(上条指令CF值)特点:与ADD同。用途:主要用于多字节运算中。类型举例:ADCCX,300;寄存器+立即数+CFADCAL,BL;寄存器+寄存器+CFADCDX,COUNT[SI];寄存器+存储器+CFADCBLOCK[DI],BX;存储器+寄存器+CFADCBYTEPTRMEM,6;存储器+立即数+CF用途举例:计算两个多字节数相加3B74AC60F8H+20D59E36C1H=?两个多字节数存放在:DATA1,DATA2的开始单元。程序:MOVCX,5MOVSI,0;清SICLC;清CFLOOPER:MOVAL,DATA2[SI]ADCDATA1[SI],ALINCSI;(SI)+1(SI)DECCX;(CX)-1(CX)JNZLOOPER;(CX)0转HLT;停机问题思考:(1)什么叫溢出?什么叫进位?(2)有进位就有溢出,没有进位就没有溢出?(1)溢出------是指带符号数的补码溢出。字长为n位带符号数,补码运算能表示范围为:-2n-1~+2n+1–1如果运算结果超出该范围,叫补码溢出,简称溢出。在溢出时,造成运算错误。进位------是指运算结果的最高位向更高位的进位。有进位,CF=1;无进位,CF=0(2)有进位就有溢出,没有进位就没有溢出?结论:有进位不一定有溢出,没有进位不一定没有溢出。数的表示范围:8位二进制数可以表示十进制数的范围:8位带符号十进制数的范围:-128~+1278位无符号十进制数的范围:0~25516位二进制数可以表示十进制数的范围:16位带符号十进制数的范围:-32768~+3276716位无符号十进制数的范围:0